passepartout-apple/Passepartout/Library/Sources/CommonLibrary/Business
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
..
Bundle+Extensions.swift Reorganize library into AppUI (#621) 2024-09-26 23:13:55 +02:00
ExtendedTunnel.swift Encapsulate behavior on app active (#812) 2024-11-05 10:41:02 +01:00
InMemoryProfileRepository.swift Fine-tune profile management with additional attributes (#807) 2024-11-03 23:35:45 +01:00
NEProfileRepository.swift Review ProfileManager observation logic (#809) 2024-11-04 10:10:17 +01:00
PassepartoutConfiguration+Extensions.swift Reorganize shared objects (#716) 2024-10-10 16:20:36 +02:00
ProfileManager.swift Refactor in-app entities for StoreKit/Kvitto integration (#820) 2024-11-06 13:20:12 +01:00
ProfileProcessor.swift Refactor AppContext creation and profile processing (#810) 2024-11-04 23:34:22 +01:00
ProfileRepository.swift Merge AppLibrary into CommonLibrary (#806) 2024-11-03 13:16:13 +01:00
ProviderFavoritesManager.swift Fine-tune profile management with additional attributes (#807) 2024-11-03 23:35:45 +01:00