Davide
f2a141a189
Purge stale NetworkExtension/keychain data ( #728 )
...
- [x] NE managers were not deleted when unable to be decoded to a
profile
- [x] Keychain items were not deleted on profile removal
- [x] Perform clean-up on app launch
- [x] Perform clean-up on app active
Prematurely merged as #727 then reverted, this is the complete PR.
2024-10-11 17:48:37 +02:00
Davide
8f6192c2b6
Fix extra team prefix in keychain group ( #721 )
...
Team ID already included in .xcconfig
Fixes #720
2024-10-11 03:45:20 +02:00
Davide
a0b9529870
Delete keychain entry on profile deletion
2024-10-11 00:25:26 +02:00
Davide
da87ca698a
Add initial support for providers ( #723 )
...
Initial integration of providers via API:
- Generic views and modifiers for provider/server selection
- Add in OpenVPNView
- Prepare in WireGuardView
Also:
- Introduce ProfileProcessor, move IAP processing there
- Move .asModuleView() to ModuleViewModifier for proper animation
- Use .themeModal() rather than .sheet()
2024-10-11 00:24:06 +02:00
Davide
d589f1162d
Reorganize shared objects ( #716 )
...
Mainly:
- Aggregate shared/mock entities in less scattered files
- Review package dependencies
Also:
- Decouple ProfileRepository from Core Data Repository in UtilsLibrary
(filters done by ProfileManager)
2024-10-10 16:20:36 +02:00
Davide
0aac8cd9f3
In-place NetworkExtension profiles ( #715 )
...
Profiles are being maintained in two places:
- Core Data
- NetworkExtension
Core Data is redundant for local profiles, so make NetworkExtension the
only source of truth.
2024-10-10 16:03:02 +02:00
Davide
f4505d0efd
Refactor ProfileEditor to leverage ProfileType ( #689 )
...
Closes #688
2024-10-06 13:41:02 +02:00
Davide De Rosa
17f1331de0
Bump version
2024-10-05 12:29:32 +02:00
Davide
f66193cf78
Several fixes in ProfileManager ( #685 )
...
- [x] Search not accounted for when reloading profiles
- [x] Remote profile being saved twice
- [x] Add some logging
2024-10-04 20:58:11 +02:00
Davide De Rosa
a306d61a84
Bump version
2024-10-04 15:54:41 +02:00
Davide De Rosa
c461fe27be
Bump version
2024-10-04 10:02:43 +02:00
Davide
5fb6f4f4d2
Refactor static functions/entities in Library ( #679 )
...
Reduce the impact of hidden dependencies on BundleConfiguration and
Constants.shared
Fixes #656
2024-10-04 09:58:42 +02:00
Davide De Rosa
2d32e099b7
Rename repositories
2024-10-04 02:43:18 +02:00
Davide
0917e47ea3
Granularize app features ( #671 )
...
Split .networkSettings and add .sharing for #668
2024-10-03 12:13:03 +02:00
Davide De Rosa
dcdcec4da7
Bump version
2024-10-02 13:46:27 +02:00
Davide
3ab80cd076
Fix incorrect VPN status in some cases ( #661 )
...
Regression following #636
2024-10-02 13:40:44 +02:00
Davide
51dbc3f246
Add App Intents extension stub ( #655 )
...
Just the Xcode metadata, no actual content.
2024-10-01 10:17:20 +02:00
Davide De Rosa
f4a17e6df8
Restore accidentally removed Package.resolved
2024-10-01 09:58:51 +02:00
Davide De Rosa
8616c002f9
Bump version
2024-10-01 08:05:09 +02:00
Davide De Rosa
6aa9abc35a
Bump version
2024-09-30 21:47:18 +02:00
Davide De Rosa
5640d4abca
Add another missing key
2024-09-30 21:27:06 +02:00
Davide De Rosa
c079f606a9
Bump version
2024-09-30 21:16:31 +02:00
Davide De Rosa
0df95f9fab
Bump version
2024-09-30 21:10:17 +02:00
Davide De Rosa
51cb1d2d38
Fix library about previous commit
2024-09-30 21:08:45 +02:00
Davide
4b1f6e547b
Fix some on-demand behavior ( #646 )
...
Fixes #644
Fixes #645
2024-09-30 19:35:41 +02:00
Davide De Rosa
3f60dee9a2
Add missing Info.plist document key
2024-09-30 19:00:09 +02:00
Davide De Rosa
6a1da55841
Bump version
2024-09-30 18:11:17 +02:00
Davide De Rosa
e9298218be
Bump version
2024-09-30 17:45:52 +02:00
Davide
0e4dd086ef
Import profiles with on-demand disabled ( #641 )
...
Make it friendly to Shortcuts automation by default.
2024-09-30 17:40:24 +02:00
Davide
4877c2bd20
Restrict paywall to on-demand rules ( #639 )
...
Rather than whole module.
Closes #638
2024-09-30 15:56:32 +02:00
Davide
a9fa6a2f62
Maintain one configuration per profile ( #636 )
...
Helps with automation. Install the VPN configuration before persisting a
profile, so that the 1:1 reference with OS settings is maintained.
Likewise, uninstall the VPN configuration after removing a profile.
This before-save hook also resolves a problem with multiple imports,
where multiple VPN permission alerts coalesce if no VPN configuration is
installed. Now the first import waits for the permission synchronously.
Fixes #618
2024-09-30 14:56:20 +02:00
Davide
989886c434
Fix description of parsing errors on import ( #623 )
...
Fixes #607
2024-09-28 00:01:01 +02:00
Davide
fbc6ece59d
Reorganize library into AppUI ( #621 )
...
Closes #611
2024-09-26 23:13:55 +02:00
Davide
4124ff5cae
Lock app with FaceID ( #609 )
...
Restore feature as-is from v2.
Closes #606
2024-09-25 19:32:07 +02:00
Davide De Rosa
b7e8e15d1b
Bump version
2024-09-24 17:56:27 +02:00
Davide De Rosa
41e8d2c5f5
Bump version
2024-09-24 11:20:00 +02:00
Davide De Rosa
d12677f657
Bump version
2024-09-23 15:28:46 +02:00
Davide
6cc86e8668
Import v3 code ( #597 )
...
Closes #565
2024-09-23 15:02:26 +02:00
Davide De Rosa
6bfda3487b
Attempt release
2024-09-22 16:29:08 +02:00
Davide De Rosa
9ada8e1a04
Fix again
2024-09-22 16:29:00 +02:00
Davide De Rosa
913a7c61b3
Try fix signing
2024-09-22 16:27:55 +02:00
Davide De Rosa
ea4028d33c
Attempt release
2024-09-22 16:20:20 +02:00
Davide De Rosa
ffb1a26e30
Set distribution certs for release
2024-09-22 16:20:07 +02:00
Davide De Rosa
d1d66dcbb3
Attempt release
2024-09-22 16:16:26 +02:00
Davide De Rosa
a98cedfd7d
Attempt release
2024-09-22 16:02:40 +02:00
Davide De Rosa
1a6c5fd303
Attempt release
2024-09-22 15:58:52 +02:00
Davide De Rosa
10cfc8e54a
Attempt release
2024-09-22 15:55:50 +02:00
Davide De Rosa
9e2b757ec5
Attempt release
2024-09-22 15:43:34 +02:00
Davide De Rosa
18b933d36e
Respect global macOS accent ( #490 )
2024-02-03 11:52:29 +01:00
Davide De Rosa
e3f4443cc0
Attempt release
2024-01-19 00:07:12 +01:00
Davide De Rosa
5fe9d7405f
Attempt release
2024-01-14 15:14:42 +01:00
Davide De Rosa
64d1131fdd
Update copyright
...
Closes #473
2024-01-14 14:36:55 +01:00
Davide De Rosa
cdd33c881d
Attempt release
2024-01-14 14:04:39 +01:00
Davide De Rosa
ea0fd51362
Attempt release
2024-01-11 18:18:23 +01:00
Davide De Rosa
4b909ebf8a
Attempt release
2024-01-11 17:52:31 +01:00
Davide De Rosa
917e712510
Attempt release
2024-01-11 16:47:40 +01:00
Davide De Rosa
63cbf39a8a
Attempt release
2024-01-11 00:16:47 +01:00
Davide De Rosa
328e2bafd6
Attempt release
2024-01-11 00:15:49 +01:00
Davide De Rosa
e8d8f27750
Attempt release
2024-01-10 18:51:03 +01:00
Davide De Rosa
821d4c79f4
Attempt release
2024-01-09 18:18:53 +01:00
Davide De Rosa
dde2d22eed
Revisit submission of OpenVPN diagnostic report ( #452 )
...
Some improvements:
- Suggest replacing the template with the description of the issue
- Attach app log
- Append purchased features
Also reuse the same body for `mailto:` reports, as metadata were not
being attached in that case.
Closes #377
2024-01-07 12:11:16 +01:00
Davide De Rosa
60ed10e45e
Attempt release
2024-01-06 00:10:22 +01:00
Davide De Rosa
87804e89d8
Attempt release
2024-01-06 00:07:26 +01:00
Davide De Rosa
978c74ad6e
Attempt release
2024-01-05 23:55:19 +01:00
Davide De Rosa
4836bbac18
Restore proper OpenVPN connectivity ( #447 )
2024-01-05 23:54:16 +01:00
Davide De Rosa
7295249cb8
Attempt release
2023-12-31 01:24:28 +01:00
Davide De Rosa
5c5697762b
Add minimal TV app
...
Closes #315
2023-12-31 01:21:38 +01:00
Davide De Rosa
1551b59f21
Use async in ProductManager ( #438 )
...
Drop legacy completion handlers. Push `Task` to the views.
Also:
- Group library tests in a test plan
- Fix a broken library dependency
2023-12-21 08:09:52 +01:00
Davide De Rosa
a0da930d98
Refactor and test ProductManager ( #437 )
...
Carefully drop the StoreKit and Kvitto dependencies for ProductManager
to be testable.
Rebuild test target completely to start writing meaningful tests in
general.
2023-12-20 20:43:39 +01:00
Davide De Rosa
fe127e258b
Fix package dependencies
2023-12-17 08:09:51 +01:00
Davide De Rosa
5cfa32dbb7
Add data count to WireGuard connections ( #430 )
...
Closes #312
2023-12-14 22:18:20 +01:00
Davide De Rosa
4a92acbeb9
Attempt release
2023-10-14 19:50:24 +02:00
Davide De Rosa
cc6c8a90d7
Bump version
...
Drop stale version in project.
2023-10-14 16:06:17 +02:00
Davide De Rosa
2596622a43
Attempt release
2023-10-10 23:01:19 +02:00
Davide De Rosa
12c08c132c
Update metadata and translations ( #365 )
2023-10-10 23:00:19 +02:00
Davide De Rosa
7de000148f
Level up to strict Concurrency ( #361 )
...
Trigger and resolve some additional Concurrency issues.
2023-09-10 20:36:52 +02:00
Davide De Rosa
c5cf0ca1d2
Shift async responsibility to ProductManager ( #360 )
...
SandboxChecker should not care about what actor is running on.
Better than #356
2023-09-10 19:08:31 +02:00
Davide De Rosa
9d72dc43a2
Attempt release
2023-09-10 11:21:59 +02:00
Davide De Rosa
0b755c1c77
Attempt release
2023-09-10 10:35:22 +02:00
Davide De Rosa
0872c27fce
Move CloudKit logic to PersistenceManager ( #355 )
...
Observe updates rather than execute operations imperatively. Also refine
responsibilities of AppContext and CoreContext.
2023-09-10 10:34:42 +02:00
Davide De Rosa
3891723356
Attempt release
2023-09-10 08:09:05 +02:00
Davide De Rosa
6b0a08a189
Attempt release
...
Fix sed syntax on Mac.
2023-09-10 01:08:07 +02:00
Davide De Rosa
a38e3fed7a
Look up TestFlight flag asynchronously ( #352 )
...
Xcode has been quite obnoxious recently with this issue. Start the app
with the most restrictive type (.undefined), relax restrictions after
looking up sandbox and app receipt.
2023-09-10 00:52:39 +02:00
Davide De Rosa
a4ca8cc996
Support iCloud sync as an option ( #350 )
...
Sync will be enabled on upgrade for consistency with current behavior,
and disabled for new installs.
Fixes #227
2023-09-09 20:29:04 +02:00
Davide De Rosa
a3cfde1950
Drop v2 migrations ( #348 )
2023-09-08 22:18:41 +02:00
Davide De Rosa
f159252e24
Replicate Diagnostics in Settings ( #342 )
...
As the only link to "Diagnostics" appears in the profile screen, when
there are no profiles the screen is unreachable. Replicate the same
entry in Settings.
2023-08-06 20:27:16 +02:00
Davide De Rosa
19e52bfd59
Attempt release
2023-07-30 18:01:44 +02:00
Davide De Rosa
388af4a73c
Attempt release
2023-07-30 17:47:41 +02:00
Davide De Rosa
db4c6094ea
Attempt release
2023-07-24 23:32:51 +02:00
Davide De Rosa
38cca79683
Attempt release
2023-07-23 13:59:56 +02:00
Davide De Rosa
6ede6f052a
Allow editing of OpenVPN endpoints ( #335 )
...
Hosts only:
- Add new
- Edit/delete existing
- Reorder
Closes #206
2023-07-23 12:45:47 +02:00
Davide De Rosa
1c3cbe02e5
Improve OpenVPN Endpoint UX ( #332 )
...
- Make selection linear by address
- Do not hide endpoints when automatic, show disabled
- Suggest manual endpoint required
- Pre-expand selected endpoint address
- Do not dismiss on selection, because selected value is not visible in
ProfileView
2023-07-22 17:10:16 +02:00
Davide De Rosa
0804c6b38e
Attempt release
2023-07-06 18:47:35 +01:00
Davide De Rosa
1935d9e92c
Attempt release
2023-07-06 11:10:10 +01:00
Davide De Rosa
fac06f58db
Use versioned TunnelKit
2023-07-06 11:09:59 +01:00
Davide De Rosa
cf43e1cd7b
Attempt release
2023-07-06 11:05:27 +01:00
Davide De Rosa
addbf8ab5f
Update TunnelKit with keychain fix
2023-07-06 11:05:14 +01:00
Davide De Rosa
b5d230f0b9
Attempt release
...
Use TunnelKit 6.1.0
2023-07-05 17:16:09 +01:00
Davide De Rosa
98e5e4cdde
Share common protocols across localized strings ( #324 )
2023-07-05 17:18:33 +02:00
Davide De Rosa
bf70c7c59a
Reorganize app folders ( #323 )
2023-07-04 22:29:43 +02:00
Davide De Rosa
bd6340ce77
Split reusable views into extensions ( #322 )
...
Like in #321
2023-07-03 17:37:16 +02:00
Davide De Rosa
de7e574fec
Do some housekeeping
...
- Upgrade Xcode project
- Fix Twitter link in README
2023-07-03 12:30:26 +01:00
Davide De Rosa
278efaf347
Refactor domain errors ( #310 )
2023-07-02 12:51:50 +02:00
Davide De Rosa
3a06d6c984
Do not use spaces in filenames
2023-06-18 10:05:10 +02:00
Davide De Rosa
7ccb10febc
Rethink library architecture ( #301 )
2023-05-24 18:19:47 +02:00
Davide De Rosa
40330cc87a
Attempt beta release
2023-04-18 18:15:39 +02:00
Davide De Rosa
1fd38790e4
Attempt beta release
2023-04-18 17:24:47 +02:00
Davide De Rosa
7a7a815979
Attempt beta release
2023-04-06 12:51:01 +02:00
Davide De Rosa
aec7f8eefe
Attempt beta release
2023-04-05 16:32:50 +02:00
Davide De Rosa
34e41ba93f
Attempt beta release
2023-04-04 18:59:44 +02:00
Davide De Rosa
d4d3d97081
Attempt beta release
2023-04-04 17:11:44 +02:00
Davide De Rosa
3678d01dc1
Prepare release
...
- Use versioned TunnelKit
- Update targets in README
2023-04-04 17:10:54 +02:00
Davide De Rosa
7e2e4d6caa
Import missing translations ( #280 )
2023-04-04 17:07:41 +02:00
Davide De Rosa
e050c0c8df
Catch WireGuard parsing errors properly ( #279 )
...
They could be reported as OpenVPN errors.
2023-04-03 08:48:18 +02:00
Davide De Rosa
33e0ceec04
Lock in background ( #275 )
...
There are plenty of situations where the app kind of stays in the
foreground, but goes to .inactive state. Lock screen could be
annoying in those cases.
2023-03-31 23:47:29 +02:00
Davide De Rosa
e9f11d1dbe
Attempt beta release
2023-03-25 17:07:58 +01:00
Davide De Rosa
76084dbd30
Attempt beta release
2023-03-20 15:07:26 +01:00
Davide De Rosa
2d00a05c4c
Attempt beta release
2023-03-20 14:14:20 +01:00
Davide De Rosa
325e10845d
Option to lock app when entering background ( #270 )
2023-03-20 11:00:01 +01:00
Davide De Rosa
7346bfc65c
Add 3D Touch items ( #267 )
...
- Enable/Disable VPN
- Reconnect (if enabled)
Move lifecycle operations to SceneDelegate.
2023-03-19 20:04:31 +01:00
Davide De Rosa
4a2dec9c6a
Attempt beta release
2023-03-19 16:11:09 +01:00
Davide De Rosa
4faeb85295
Attempt beta release
...
Update bundle in beta script.
2023-03-19 14:42:56 +01:00
Davide De Rosa
fbd32d8b26
Fine-tune SwiftLint ( #265 )
2023-03-19 14:41:53 +01:00
Davide De Rosa
1dda8dce98
Attempt beta release
2023-03-19 08:45:34 +01:00
Davide De Rosa
8d0fb5c9b5
Support DoH/DoT network settings in WireGuard profiles ( #264 )
2023-03-19 08:41:51 +01:00
Davide De Rosa
c85f3d894e
Restore DNS "Domain" setting ( #260 )
2023-03-17 22:16:04 +01:00
Davide De Rosa
f06f097f27
Add SwiftLint phase ( #262 )
2023-03-17 21:55:47 +01:00
Davide De Rosa
cecf64d871
Move Diagnostics view to Profile bottom ( #261 )
2023-03-17 21:46:53 +01:00
Davide De Rosa
2e10aab039
Extend authentication methods ( #259 )
...
* Add profile authentication method
- Persistent (default, fallback)
- Interactive (may expire through reconnections)
- TOTP (seed-based) - currently disabled
* Disable on-demand if login is interactive
* Present interactive prompt on VPN toggle
2023-03-17 16:49:35 +01:00
Davide De Rosa
6e6c212649
Move .killSwitch property to extras
2022-11-10 07:55:31 +01:00
Davide De Rosa
ba09dcffa7
Full OpenVPN XOR patch ( #245 )
2022-11-06 18:08:41 +01:00
Davide De Rosa
e2c976e58d
Attempt beta release
2022-10-31 14:18:07 +01:00
Davide De Rosa
e1a3e7992f
Update TunnelKit with .killSwitch option
...
Fixes #181
2022-10-30 11:54:52 +01:00
Davide De Rosa
aca431aac5
Run tests on PR ( #241 )
2022-10-30 11:53:53 +01:00
Davide De Rosa
dad6d820e9
Upgrade project to Xcode 14
2022-10-29 22:18:02 +02:00
Davide De Rosa
e4ec1e642d
Attempt beta release
2022-10-29 13:40:50 +02:00
Davide De Rosa
b2ec7f0422
Attempt beta release
2022-10-29 13:01:18 +02:00
Davide De Rosa
cdc05f0c10
Update TunnelKit
...
Split IP settings and routes. Now properly handling local routes.
2022-10-29 12:28:27 +02:00
Davide De Rosa
0f04bdcce3
Attempt beta release
2022-10-28 15:42:10 +02:00
Davide De Rosa
0bf1c71504
Update TunnelKit
...
- Default gateway not properly configured
2022-10-28 15:41:49 +02:00
Davide De Rosa
b431ce4f05
Attempt beta release
2022-10-27 00:43:41 +02:00
Davide De Rosa
e9b7be6334
Update TunnelKit
...
- Could encode but not decode profiles with IPv6 endpoints from
Core Data
- Improve options logging
2022-10-27 00:42:48 +02:00
Davide De Rosa
e1d8ec6066
Attempt beta release
2022-10-25 09:07:39 +02:00
Davide De Rosa
7c2d120a09
Update TunnelKit to fix 2.0.1 regressions
...
Fixes #237
2022-10-25 09:06:35 +02:00
Davide De Rosa
f6e0caaa73
Implement --remote-random-hostname
...
- Update TunnelKit
- Show in UI
2022-10-17 09:06:52 +02:00
Davide De Rosa
54dc2307e9
Attempt beta release
2022-10-16 10:09:35 +02:00
Davide De Rosa
c345265451
Attempt beta release
2022-10-16 08:36:17 +02:00
Davide De Rosa
f95e4f228d
Implement --route-nopull via TunnelKit ( #230 )
...
Use it internally to override server-pushed settings.
2022-10-13 19:09:51 +02:00
Davide De Rosa
54dc8a2556
Use MockVPN from TunnelKit
...
Rather than ad hoc strategy.
2022-10-12 22:37:40 +02:00
Davide De Rosa
1cf74d56d6
Update OpenSSL to 1.1.1q
2022-10-08 08:49:59 +02:00