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
Davide De Rosa
88f40525cf
Fix warning about script w/o output
2022-10-08 08:41:22 +02:00
Davide De Rosa
145c9cbcc9
Drop old script fixing frameworks bug
2022-10-05 21:58:21 +02:00
Davide De Rosa
63c3ac80b4
Attempt beta release
2022-10-04 22:37:53 +02:00
Davide De Rosa
ecb3138817
Attempt beta release
2022-09-25 08:55:15 +02:00
Davide De Rosa
496d993e3d
Attempt beta release
2022-09-23 23:07:40 +02:00
Davide De Rosa
1364d5153e
Attempt beta release
2022-09-23 22:57:36 +02:00
Davide De Rosa
be6726fbd8
Attempt beta release
2022-09-23 21:56:37 +02:00
Davide De Rosa
7fe63ba796
Use versioned TunnelKit
2022-09-23 21:54:40 +02:00
Davide De Rosa
db6f7bdf28
Revisit app metadata and screenshots
...
- Add script to import localized metadata
- Update app name, subtitle, keywords
- Update App Store description
- Replace "OpenVPN" with "VPN"
- Add .conf file extension (WireGuard)
- Drop PIA (404)
- Drop trailing notices
- Update README snapshots (Mac versions unused)
- Update App Store screenshots
- Revert to legacy launch screen (SwiftUI method stretches)
2022-09-15 17:41:22 +02:00
Davide De Rosa
38bdbc3697
Move diagnostics to settings
2022-09-12 22:58:37 +02:00
Davide De Rosa
940e0cf8c9
Attempt beta release
2022-09-05 22:35:22 +02:00
Davide De Rosa
f36d7596d0
Integrate settings with about screen
...
Move everything to SettingsView and remove invite actions.
2022-08-27 23:15:51 +02:00
Davide De Rosa
f465108a0a
Attempt beta release
2022-08-16 12:43:20 +02:00
Davide De Rosa
92ffc382cb
Reconnect VPN without disabling it
...
Retain on-demand flag to avoid leaks during reconnection.
2022-08-05 07:40:43 +02:00
Davide De Rosa
9195d426e4
Attempt beta release
2022-07-18 08:03:24 +02:00
Davide De Rosa
b26e334881
Get Mac strings from main bundle
...
Alter bundle in SwiftGen configuration file.
2022-07-18 07:55:56 +02:00
Davide De Rosa
04faf57d4c
Send app to background if started hidden
...
Sandbox had to be enabled in order to submit binary to App Store
Connect, therefore command line arguments cannot be used to tell
if the app was started by the launcher.
However, given that launcher starts app in hidden state, we can
safely assert that if the app is hidden on start, it was started
by the launcher.
See f33380b4e2
Also drop automatic signing on Mac bundle and unused utils.
2022-07-18 07:55:56 +02:00
Davide De Rosa
32e548421f
Attempt beta release
2022-07-17 14:50:05 +02:00
Davide De Rosa
781291940f
Enforce window appearance on 'Show' after closure
2022-07-16 21:24:53 +02:00
Davide De Rosa
3f4b55a003
Implement Mac bundle with system menu
...
Use bundle as a means to provide Mac APIs to Catalyst app.
In order to cross the @objc wall set by the Mac Bundle mechanism,
Swift structures cannot be used directly and must be bridged
through ObjC facades.
Create NSMenu in MVVM style and install it on app launch. Make
sure to do it in AppDelegate.applicationDidFinishLaunching(),
because doing it as early as in PassepartoutApp.init() would
crash Mac code.
Use .representedObject to own view models.
With menu in place, app can be sent to background when main window
is closed. Requires multiple documents support for app not to die
instantly.
2022-07-16 17:39:42 +02:00
Davide De Rosa
df0d40c556
Add launcher target
...
- Launch main app in background then die
- Do not launch app if already running
- Launch app binary relative to launcher location
2022-06-25 16:53:38 +02:00
Davide De Rosa
7ba9879c8c
Revisit constants structure
...
Move some stuff back to App:
- Constants, and split library-dependent
- InApp entities and constants
Flatten global constants hierarchy.
2022-06-25 14:36:28 +02:00
Davide De Rosa
3c9511cd0c
Only support Catalyst where required
...
- App
- Tunnels
2022-06-25 13:28:28 +02:00
Davide De Rosa
9a8477225e
Refactor library into domain + impl
2022-06-23 23:31:01 +02:00
Davide De Rosa
8504998bbb
Reorganize app-specific shared code into AppShared
2022-06-19 14:41:26 +02:00
Davide De Rosa
02a9db057f
Update TunnelKit
...
- Set explicit tunnel log path
- OpenSSL 1.1.1o
2022-06-19 13:33:49 +02:00
Davide De Rosa
10b4c321c8
Separate context responsibilities
...
- Split Core and App context
- Move .shared instantiation to extension
Context may differ by target.
2022-06-16 13:42:53 +02:00
Davide De Rosa
14b42fbea5
Persist managers state to generic key-value store
...
Move all persisted state out of AppManager to where it really
belongs. To do that, inject a shared KeyValueStore object into
managers that need to persist part of their state in a strongly
typed manner.
Below are persisted states:
- PersistenceManager
- persistenceAuthor
- ProfileManager
- activeProfileId
- UpgradeManager (formerly AppManager)
- didMigrateToV2 (migrate former value)
- VPNManager
- tunnelLogFormat
- masksPrivateData
A similar approach is used for app-specific preferences, by using
a strongly typed enum (AppPreference) together with SwiftUI
@AppStorage property wrapper.
Worth moving logging logic into a specific LogManager.
Finally, drop any former view dependency on AppManager, as states
are now accessed through specific managers.
2022-06-16 13:42:37 +02:00
Davide De Rosa
127ba28a8c
Run SwiftGen manually
...
Build phase may raise concerns in CI.
2022-06-16 13:42:21 +02:00
Davide De Rosa
83cdd460e4
Attempt beta release
2022-05-21 19:15:48 +02:00
Davide De Rosa
a2d4ed370e
Revisit sidebar with per-profile VPN toggles
2022-05-21 19:15:37 +02:00
Davide De Rosa
ddce671c62
Move theme extensions to non-reusable
2022-05-18 11:33:29 +02:00
Davide De Rosa
b1d77cccbc
Attempt beta release
2022-05-18 11:18:57 +02:00
Davide De Rosa
160338e62a
Add credits in Mac about
2022-05-17 19:57:19 +02:00
Davide De Rosa
4c2a471b9f
Attempt beta release
2022-05-17 19:34:13 +02:00
Davide De Rosa
6c798c8b19
Bump build
2022-05-17 16:43:14 +02:00
Davide De Rosa
16d618df0e
Show info menu in ProfileView on iPad/Mac
...
Use .navigationBarTrailing to avoid artifact on Catalyst (item
relocates when first clicked).
Rename menu files too.
2022-05-16 11:18:58 +02:00
Davide De Rosa
743facca6b
Improve Catalyst appearance
...
- Revert to more "stable" iPad idiom
- Set accent color the proper way
- Use .tint when available
- Unify navigation style by idiom
- Retain navigation bars in sidebar/detail
- Lighten sidebar appearance
- Fix Menu style (dropdown -> button)
- Use native Picker (dropdown)
- Use switch toggles rather than checkboxes
- Replace .actionSheet with .alert
- Increase minimum row height
CAVEAT: on Mac with iPad idiom, having a Section in .sidebar
produces artifacts. Header keeps changing height for no reason.
Retain Section on iPad multitasking only to not break navigation.
2022-05-15 22:24:36 +02:00
Davide De Rosa
683a8e7d82
Attempt beta release
2022-05-05 11:07:49 +02:00
Davide De Rosa
092233b546
Attempt beta release
2022-05-04 23:16:01 +02:00
Davide De Rosa
c2676cbdf6
Attempt beta release
2022-05-04 19:03:22 +02:00
Davide De Rosa
9e9cd018eb
Revert "Enable "DNS Settings" capability"
...
This reverts commit 75650b1f0a
.
2022-05-04 09:01:27 +02:00
Davide De Rosa
3c0e511e84
Split again OrganizerView and ProfilesList
...
On iOS 14, Organizer scrolls abruptly on profile selection. It
looks like this was introduced by merging ProfilesList into
OrganizerView.
Try to revert merge to split observation responsibilities.
Drop unused AppManager in +Scene along the way.
2022-05-03 14:40:41 +02:00
Davide De Rosa
75650b1f0a
Enable "DNS Settings" capability
...
Maybe fixes #182
2022-05-02 00:04:56 +02:00
Davide De Rosa
87f2ebfd9e
Attempt beta release
2022-05-01 20:44:17 +02:00
Davide De Rosa
edc7cdf045
Merge List into OrganizerView
...
- Restore wrapping Section as it seems to fix multitasking
- Hide profiles section if empty
2022-05-01 19:19:31 +02:00
Davide De Rosa
107de2d843
Update packages
2022-04-30 00:14:52 +02:00
Davide De Rosa
0047d095fb
Adjust navigation style to all devices
...
- Mac
- Drop all styles
- Tweak hide title bar
- Hide navigation bar
- Restore single section for all profiles
- Allows using NavigationLink safely
- Indirectly fixes multitasking
- Retains selection on profile activation
- Clean up presentActiveProfile
- Leave active profile in its position
- Fixes Mac flashing row selection on profile activation
- Unify profile row appearance
- Use fixed .headline font
- Add subtitles to inactive profiles
- Use padding rather than fixed row height
CAVEATS:
- Do not preselect active profile on iPad launch, as doing so
seems to present two ProfileView on top of each other, one from
MainView and one from the NavigationLink.
- Do not touch .listStyle() of master view, as it seems to break
navigation esp. in iPad multitasking.
2022-04-29 19:29:47 +02:00