Commit Graph

488 Commits

Author SHA1 Message Date
Davide De Rosa 5cf593ed2b Move strings generation to Core
Also fix missing account guidance on iOS.
2021-08-09 10:06:09 +02:00
Davide De Rosa 0ebddc6a68 Drop unused app strings and redo SwiftGen
Prefix is now just L10n without strings filename.
2021-08-07 14:00:35 +02:00
Davide De Rosa 31cd5be376 Reuse generic guidance strings
Tell by credentials purpose (web or specific).
2021-07-30 17:58:27 +02:00
Davide De Rosa 6487d10cb9 Add missing translations 2021-04-16 16:29:20 +02:00
Davide De Rosa 394762f5d6 Restrict features with purchase screen
- Providers
- Trusted networks
2021-02-04 14:09:24 +01:00
Davide De Rosa e59b6c8723 Upgrade Xcode project 2021-02-04 14:09:09 +01:00
Davide De Rosa 7d2ece0256 Share ProductManager in Core with conditionals
In order to share purchase review logic.

Refactor verification of product eligibility
2021-02-04 14:03:47 +01:00
Davide De Rosa 21e9f5c8cc Integrate new in-app purchases
- Share iOS bundle identifier with macOS
- Remove unused macOS donations (reuse iOS if needed)
- Add platform-specific "Full version"
- Skip fetching of legacy providers IAP
2021-02-04 14:03:47 +01:00
Davide De Rosa dd3cac40c6 Bundle macOS app with iOS 2021-02-02 21:25:59 +01:00
Davide De Rosa 5978705aa9 Enable testing on app targets 2021-01-28 19:39:32 +01:00
Davide De Rosa 8e1c2aea32 Add it macOS translation 2021-01-26 18:05:56 +01:00
Davide De Rosa 9fa40f6ec6 Share configuration l10n in Descriptible 2021-01-13 08:20:10 +01:00
Davide De Rosa 5f83313b79 Bump base build number 2021-01-06 18:01:28 +01:00
Davide De Rosa 8d31bdc22f Fix Xcode version in CI
Xcode was 12 instead of 12.2 and therefore OpenSSL was failing on
Apple Silicon arch (MacOSX arm64).
2021-01-06 17:36:00 +01:00
Davide De Rosa 4c1fe20160 Upgrade Xcode project 2021-01-03 22:28:08 +01:00
Davide De Rosa d4b7d47498 Merge macOS app and Core into repository
Temporarily drop env and fastlane.
2021-01-03 22:28:07 +01:00
Davide De Rosa ed0b12cd24 Use environment for testing full version 2020-12-27 16:56:59 +01:00
Davide De Rosa 1213212332 Move ProductManager to Core 2020-12-27 16:56:25 +01:00
Davide De Rosa 6b2b3fc59f Drop stale schemes 2020-11-23 18:15:09 +01:00
Davide De Rosa 6b07e7eb9e Fix wrong deployment target (14.2 -> 12.0) 2020-11-21 19:05:29 +01:00
Davide De Rosa 2f42099bd0 Update project and deprecated APIs 2020-11-15 22:21:31 +01:00
Davide De Rosa 267119b0fd Fix overridden deployment targets 2020-11-15 17:42:21 +01:00
Davide De Rosa 4887c27816 Update TunnelKit with VPN manager 2020-06-23 09:54:39 +02:00
Davide De Rosa c033c208bd Upgrade project 2020-05-23 17:59:53 +02:00
Davide De Rosa c51e578e53 Upgrade Xcode project 2020-02-28 17:28:18 +01:00
Davide De Rosa 6159221d0b Add/update translations
Legitimate:

- es
- fr
- it
- pl
- ru
- zh-Hans
2019-12-11 12:28:03 +01:00
Davide De Rosa 28a7dcdcf7 Update providers via web service
Reload products after update. Always re-list products!

Had to fix web services in Convenience, completion handler not
invoked from main queue.
2019-11-28 11:34:01 +01:00
Davide De Rosa 97f458385c Update to API v3
- Dynamic providers
- Add index.json to API
2019-11-28 09:57:34 +01:00
Davide De Rosa 1fd2d18653 Refactor trusted networks code 2019-11-21 09:15:24 +01:00
Davide De Rosa 70783f9dda Reuse Credits from Convenience 2019-11-20 23:14:19 +01:00
Davide De Rosa 99da23de8e Simulate full version through scheme arguments 2019-11-19 23:38:04 +01:00
Davide De Rosa 41030d2d17 Prepare Info.plist for localization 2019-11-02 12:18:44 +01:00
Davide De Rosa a9065bf9b7 Move Flags from Core to app 2019-11-02 11:18:43 +01:00
Davide De Rosa 1e6c5ba91b Design purchase screen
- Required product
- Full version
- Restore purchases
2019-11-01 16:17:30 +01:00
Davide De Rosa e99cc3669d Add stubs for purchase screen
With macro for presenting it everywhere.
2019-10-31 09:36:08 +01:00
Davide De Rosa e62aae16fc Add new in-app purchases
- Rename Donation to Product accordingly
- Infer product from provider name
2019-10-30 15:21:37 +01:00
Davide De Rosa 5f3ebfd9fe Drop VersionViewController
Reuse from Convenience.
2019-10-28 09:53:32 +01:00
Davide De Rosa e0a9fadac4 Add server network screen 2019-10-23 11:59:30 +02:00
Davide De Rosa 68da29474b Refactor import logic into HostImporter
Cover the parsing steps + passphrase. Leave name and credentials
as is.
2019-10-22 23:03:46 +02:00
Davide De Rosa 1c537727cb Enforce 64-bit archs
Work around "Too many symbol files" warning.
2019-10-11 14:37:27 +02:00
Davide De Rosa aef0201b00 Revert strip symbols (who touched it?)
Raises "Too many symbols" issue when uploading to App Store Connect.
2019-10-11 13:38:12 +02:00
Davide De Rosa 2cd6677e16 Replace with Convenience entities
- About
- Alerts
- Dialogs
- InApp
- Reviewer
- SingleOptionViewController
- StrongTableModel
2019-10-11 12:43:05 +02:00
Davide De Rosa 4e6b9b358b Revert "Temporarily use automatic signing"
This reverts commit f3a8e4ae25.
2019-09-22 20:58:23 +02:00
Davide De Rosa f3a8e4ae25 Temporarily use automatic signing 2019-09-11 10:03:48 +02:00
Davide De Rosa c9f807babd Upgrade project to Xcode 11
Disable code signing for frameworks.
2019-09-11 10:03:48 +02:00
Davide De Rosa 3c62a967c9 Use TunnelKit 2.0.3
Had to update CocoaPods 1.6.0 to 1.7.5
2019-09-07 00:14:01 +02:00
Davide De Rosa f90a84f1a4 Reuse Issue from Core 2019-09-05 22:50:56 +02:00
Davide De Rosa 3b9e3879ca Move InAppHelper to Core 2019-08-16 00:24:05 +02:00
Davide De Rosa 2c3e19eec1 Add zh-Hans to project localizations
Forgotten as usual!
2019-08-11 16:01:10 +02:00
Davide De Rosa 57c23085fb Add Settings bundle to leverage language selector
New in iOS 13.

Fixes #90
2019-07-27 10:01:59 +02:00
Davide De Rosa 2e362bf553 Reuse Core extensions
- NetworkChoice.choices()
- OpenVPN.* available options
- ConnectionProfile.clientNetworkSettings
2019-06-23 00:17:37 +02:00
Davide De Rosa 282728ae1e Move app-related strings in
Move Core strings to app target.

SwiftGen uses same bundle by default. No problem because Core
does not (and should not) any string internally.
2019-06-23 00:11:56 +02:00
Davide De Rosa 0bb5f1d9c0 Remove again spurious pt-br 2019-06-19 15:12:42 +02:00
Davide De Rosa c6e54de869 Fix strict pt localization 2019-06-13 10:19:07 +02:00
Davide De Rosa 08b3230b2c Work around Xcode breaking l10n
Localized intents are imported incorrectly, with .strings
files separate from the .intentdefinition. HARD TO BELIEVE (not
so much with such a broken IDE), when this happens, everything
breaks, including Localizable.strings. For some obscure reason,
the English strings are still reachable.

Workaround:

- Import Intents.intentdefinition
- Remove Intents.strings from project (reference only)
- Re-enable each localization for Intents.intentdefinition
- When asked, select "Use file"

See dc2de46327
2019-05-28 08:41:24 +02:00
Davide De Rosa ff57e4fd2c Remove Core test target 2019-05-28 08:41:24 +02:00
Davide De Rosa 04a00fdb98 Remove spurious macOS framework 2019-05-28 08:41:24 +02:00
Davide De Rosa ef300e07d2 Fix Swift version globally 2019-05-28 07:01:49 +02:00
Davide De Rosa 0a21237a47 Fix missing es localization
Delete stale directory.
2019-05-28 06:54:04 +02:00
Davide De Rosa 0bdfc2313b Update pods 2019-05-27 00:15:51 +02:00
Davide De Rosa 6ef7a97098 Symlink to submodules
Easier to switch to other directories.
2019-05-27 00:14:14 +02:00
Davide De Rosa 6ec7785d31 Isolate future submodules
- API
- Core

Prepend API version prefix to bundle path.
2019-05-27 00:14:14 +02:00
Davide De Rosa dc2de46327 Reimport Passepartout Resources
Normalize localized intents.
2019-05-27 00:14:13 +02:00
Davide De Rosa 84eb9d09c4 Rename Core targets
Fix import in Core umbrella header.
2019-05-27 00:13:33 +02:00
Davide De Rosa e50ed97b3f Translate es application 2019-05-27 00:06:49 +02:00
Davide De Rosa 190eab152c Translate es intents 2019-05-26 21:52:05 +02:00
Davide De Rosa 641890f4ab Integrate fr localization 2019-05-26 08:35:43 +02:00
Davide De Rosa 60b967ee3a Make provisioning ids dynamic via .xcconfig 2019-05-25 18:29:10 +02:00
Davide De Rosa 4197a33ec8 Integrate sv localization 2019-05-25 10:02:09 +02:00
Davide De Rosa 2dd8e5613a Integrate el localization
Shorten app subtitle for char limit.
2019-05-21 15:35:11 +02:00
Davide De Rosa 98f8b04f39 Integrate nl localization
Copy missing files from en-US.

Had to shorten app subtitle for char limit.
2019-05-20 14:17:45 +02:00
Davide De Rosa ef4bdcafa8 Reorder files 2019-05-17 13:07:18 +02:00
Davide De Rosa c6fbdca342 Move network settings to ad-hoc screen
Can now set gateway/DNS/proxy settings explicitly.

- Read from .ovpn (hosts only)
- Pull from server (PUSH_REPLY)
- Set manually
2019-05-01 23:00:28 +02:00
Davide De Rosa d9a0ebd923 Upgrade API to v2 (entities) 2019-04-25 21:30:43 +02:00
Davide De Rosa 24ea18b7a0 Restore pt-BR localization
Lost in some conflict...
2019-04-25 18:31:26 +02:00
Davide De Rosa 69515ee6a3 Add ru translations 2019-04-23 15:45:56 +02:00
Davide De Rosa c68d6b44cc Add de translation 2019-04-23 14:35:29 +02:00
Davide De Rosa fd9a165817 Use Locale for country names too
I hadn't thought it before!
2019-04-13 18:55:45 +02:00
Davide De Rosa cf8f0984a3 Cache pool models, do not rebuild each time
Invalidate on new infrastructure.
2019-04-11 23:38:16 +02:00
Davide De Rosa e0c8b478bb Unzip NordVPN external resources to cache 2019-04-11 19:11:08 +02:00
Davide De Rosa 35605ba89f Download resource with progress HUD 2019-04-11 19:01:59 +02:00
Davide De Rosa 4add7a695c Migrate to Swift 5
Last time was probably incomplete.
2019-04-11 16:51:12 +02:00
Davide De Rosa bb299335ad Add activity cell 2019-04-08 22:59:24 +02:00
Davide De Rosa 26453f9612 Add donation view controller 2019-04-07 15:29:10 +02:00
Davide De Rosa 895c19328e Add in-app donation identifiers 2019-04-07 15:29:10 +02:00
Davide De Rosa c542722f47 Regroup storyboard implementations 2019-04-07 08:52:16 +02:00
Davide De Rosa 920c704359 Externalize About storyboard 2019-04-07 08:52:16 +02:00
Davide De Rosa 0ba072c6dd Normalize intent localization 2019-04-06 22:46:30 +02:00
Davide De Rosa 97a72c7c02 Create PoolGroup for logical country/area grouping
When multiple nums (#) exist within a group.
2019-04-06 16:20:01 +02:00
Davide De Rosa 805737caea Translate all strings
Use "e-mail" everywhere.
2019-04-05 22:31:04 +02:00
Davide De Rosa e01f95d23b Translate intents 2019-04-05 19:49:20 +02:00
Davide De Rosa cbf6525354 Reorganize project for multiple languages 2019-04-05 19:49:20 +02:00
Davide De Rosa 7d417e14ee Add pool country flags 2019-04-05 11:59:39 +02:00
Davide De Rosa b9de756253 Move provider logos to own assets 2019-04-05 10:17:29 +02:00
Davide De Rosa f97b8447d9 Show provider logos in Organizer and Wizard 2019-04-05 00:52:36 +02:00
Davide De Rosa ab5517dcba Rename ParsingResult to Result
From ConfigurationParser in TunnelKit.
2019-04-04 19:26:08 +02:00
Davide De Rosa 921e57557d Render data count with closest unit
Set a 10% boundary (e.g. 100MB = 0.1GB).
2019-03-30 20:10:04 +01:00
Davide De Rosa 912ae63ead Convert resources to Base l10n
Could this fix the uploader issue with intents localization?
2019-03-30 19:25:06 +01:00
Davide De Rosa ae88fdfad6 Rename shortcut manager vc 2019-03-27 22:09:08 +01:00
Davide De Rosa d5b7a1e576 Show existing Siri shortcuts as first controller 2019-03-27 21:08:51 +01:00
Davide De Rosa 3eb9c6ae98 Localize Pool via country code + area 2019-03-21 22:21:42 +01:00
Davide De Rosa ed79c79df5 XXX: Restore intent definition w/o gen classes
Okay, it's causing "Invalid Siri Support" l10n warnings when
uploading to App Store Connect, but intents don't work without
this.

Back and forth from 5dd02e8 and a471161
2019-03-19 18:05:11 +01:00
Davide De Rosa a471161892 Fix again intent definition glitch 2019-03-18 23:11:41 +01:00
Davide De Rosa 220d1233af Restore intents definition in app target 2019-03-18 22:32:07 +01:00
Davide De Rosa 15602f7dc9 Pick profile/location for connection intent
- Host: ConnectVPN intent
- Provider: requires Pool selection
2019-03-18 22:13:36 +01:00
Davide De Rosa 1ea85ff32e Move shortcuts to separate storyboard 2019-03-18 21:18:40 +01:00
Davide De Rosa 1c103c639d Add shortcuts view controller stub 2019-03-18 20:54:47 +01:00
Davide De Rosa ebcf7da8c2 Restore valid archs (64-bit)
Suppress warnings on ASC uploads.

Introduced in e8678e4
2019-03-18 18:48:48 +01:00
Davide De Rosa 5dd02e8939 Fix glitch with intent l10n 2019-03-18 18:44:34 +01:00
Davide De Rosa 1b5070d667 Fix duplicated pods (Core + App)
Had to deintegrate and reintegrate CocoaPods.
2019-03-18 17:59:02 +01:00
Davide De Rosa 4b8d7814fc Normalize project version 2019-03-18 17:31:33 +01:00
Davide De Rosa c3e6e1ecd5 Move intents to Core target
Suppress responses for consistency.
2019-03-18 17:06:35 +01:00
Davide De Rosa c7f522f55e Create Passepartout-Core framework target
Move all sources to this target, out of Passepartout-iOS.

FIXME: TrustedNetworks uses ServiceViewController.RowType
FIXME: make iOS target depend on Core.
2019-03-18 11:19:24 +01:00
Davide De Rosa 1dc659dbe1 Localize intents definition
And drop redundant ConnectVPN intent subtitle.
2019-03-10 14:11:59 +01:00
Davide De Rosa e8678e4eea Set beta release
Update to recommended project settings.
2019-03-09 11:39:35 +01:00
Davide De Rosa 2e4d2162ac Define custom intents
- Connect
- Disable
- (Un)Trust current network
- (Un)Trust cellular network
- Move to location
2019-03-09 11:23:47 +01:00
Davide De Rosa f01027bca5 Add Siri capability 2019-03-09 08:45:48 +01:00
Davide De Rosa 9524a72f2b Work around TunnelKit/OpenSSL linking issue 2019-02-25 22:56:24 +01:00
Davide De Rosa 3f90a96744 Fix CocoaPods regression
Stick to 1.5.3 until they fix CocoaPods/CocoaPods#8333 properly.

Also, use TunnelKit with a proper OpenSSL version.

Fixes #34
2019-02-25 12:25:29 +01:00
Davide De Rosa 68b9cf0fdf Convert bundled API to a folder reference
Create intermediate directory for cached infrastructure.
2019-02-23 11:18:31 +01:00
Davide De Rosa 76c50e637d Add reviewer singleton
Prompt for rating after N events.
2018-12-10 12:47:53 +01:00
Davide De Rosa a486cb4265 List licenses/notices in full table 2018-12-04 10:33:19 +01:00
Davide De Rosa 3d5c2bb8f5 Move .ovpn parser to TunnelKit 2018-11-10 11:39:36 +01:00
Davide De Rosa 290cb6d25e Fix things broken by product renaming
Broken by 156f47b
2018-11-10 11:00:58 +01:00
Davide De Rosa c7cb00f679 Move ProfileKey to separate file 2018-11-06 11:16:34 +01:00
Davide De Rosa 389746180b Move PlaceholderConnectionProfile to separate file 2018-11-06 11:16:30 +01:00
Davide De Rosa 156f47bb65 Normalize product names
Remove platform suffix.
2018-11-06 11:01:44 +01:00
Davide De Rosa 3f1e98f8ac Delegate profile management from ConnectionService
Makes much more sense than dumb wizard notifications. Organizer is
already a ConnectionServiceDelegate.
2018-11-02 15:20:37 +01:00
Davide De Rosa 0d49d1abc8 Upgrade SwiftGen 2018-10-28 14:50:12 +01:00
Davide De Rosa 25523b5f61 Add stubs for imported hosts 2018-10-27 12:43:26 +02:00
Davide De Rosa 8c1e6d00ca Parse .ovpn file outside of wizard context 2018-10-27 12:33:17 +02:00
Davide De Rosa 821393af70 Refactor configurations in service extension
Reuse same directories of ConnectionService for storing
configuration files.
2018-10-27 09:42:41 +02:00
Davide De Rosa 76f2597424 Update TunnelKit and remove unused code
ConnectionProfileHolder
2018-10-26 19:05:25 +02:00
Davide De Rosa d087acd512 Migrate host configurations 2018-10-25 22:45:50 +02:00
Davide De Rosa 542a3e3721 Upgrade TunnelKit with configuration refactoring 2018-10-25 22:45:44 +02:00
Davide De Rosa 346a9490ec Save .ovpn internally associated to host profile 2018-10-23 12:57:11 +02:00
Davide De Rosa b93000819b Reuse Credits VC to add a Disclaimer 2018-10-18 10:19:08 +02:00
Davide De Rosa b9ec01945d Initial commit 2018-10-11 09:13:19 +02:00