passepartout-apple/Passepartout/App
Davide d8c4e87239
Refactor in-app entities for StoreKit/Kvitto integration (#820)
Refactoring:

- Get receipts from StoreKit Transaction.currentEntitlements
- Search for the originally purchased build in the local receipt anyway
(Kvitto)
- Fall back to release receipt (Kvitto), if any, for feature eligibility
in TestFlight builds
- Parse and verify expiration date in subscriptions
- Decouple in-app identifier composition from BundleConfiguration
- Fix user level features only applied when a receipt was not found

Testing:

- Add StoreKit configuration
- Fake purchases with PP_FAKE_IAP
- Fake user level with PP_USER_LEVEL

Then for reactive receipt reload, detect app activation differently:

- iOS/tvOS on .scenePhase
- macOS on launch and NSWorkspace.didActivateApplicationNotification

As to features:

- Credit former "Full version" purchasers with all current AND future
features, except the Apple TV
2024-11-06 13:20:12 +01:00
..
Assets.xcassets Show in Mac status bar plus Login Item (#773) 2024-10-29 11:40:11 +01:00
Platforms Refactor in-app entities for StoreKit/Kvitto integration (#820) 2024-11-06 13:20:12 +01:00
en.lproj Lock app with FaceID (#609) 2024-09-25 19:32:07 +02:00
App.entitlements Fix extra team prefix in keychain group (#721) 2024-10-11 03:45:20 +02:00
App.plist Show in Mac status bar plus Login Item (#773) 2024-10-29 11:40:11 +01:00
AppDelegate.swift Refactor library targets (#799) 2024-11-02 10:11:59 +01:00
LaunchScreen.storyboard Import v3 code (#597) 2024-09-23 15:02:26 +02:00
PassepartoutApp.swift Refactor in-app entities for StoreKit/Kvitto integration (#820) 2024-11-06 13:20:12 +01:00