Releases: danielsaidi/StoreKitPlus
0.8.0
0.7.1
💡 Adjustments
BasicProductis nowSendable.
0.7.0
✨ Features
StoreServicenow lets you pass in optional purchase options.
0.6.0
This version removes deprecated code and adjusts some service terminology.
‼️ Breaking Changes
This version updates StoreService by renaming restorePurchases() to getValidProductTransations().
This should have been done in 0.4. As the function only returned transactions, this was very confusing.
By renaming it, we no longer risk calling it with the intention of restoring purchases, which it didn't do.
We can now use syncStoreData(to:) and restorePurchases(syncWith:) to perform the exact operation we want.
Since these changes involve protocol changes, the changes are breaking. They should hopefully be easy to fix.
0.5.0
This version adds more utilities.
✨ Features
BasicProductis a new, lightweight product struct.Producthas new ways of calculating yearly savings.
0.4.0
This version makes StoreKitPlus use Swift 6.
‼️ Important information
As a result of the Swift 6 transition, and due to data race problems, the store services no longer takes a context and keeps it in sync. This must be explicitly handled by the caller, for instance using the new context-based functions.
Furthermore, the service model is drastically simplified in this version. Instead of having multiple service types, StoreService handles it all.
✨ Features
StoreServicehas new.standardshorthands.StoreServicehas newcontext-based function versions.StandardStoreServiceno longer accepts a context, and will no longer keep it in sync.
🗑️ Deprecations
StoreProductServicehas been deprecated.StorePurchaseServicehas been deprecated.StoreSyncServicehas been deprecated.
0.3.1
This version fixes an async error that could cause purchases to update the context on a background thread.
0.3.0
StoreKitPlus now uses Swift 5.9, which requires Xcode 15.
This version also adds support for visionOS, although the purchase operation doesn't work.
✨ Features
Producthas a newproducts(for:)that uses a product representable collection.ProductRepresentablehas a new function to fetch all available products in a context.
0.2.0
This release breaks up the StoreService protocol into multiple protocols.
This is done to simplify implementing custom services, mocking in unit tests etc.
✨ Features
StandardProductServiceis a new service that takes care of fetching products.StandardPurchaseServiceis a new service that takes care of purchasing products and restoring purchases.StoreServicehas been split up into three protocols:StoreProductService,StorePurchaseServiceandStoreSyncService.StoreContexthas a newproduct(withId:)function.
💡 Behavior changes
StoreServicenow inheritsStoreProductService,StorePurchaseServiceandStoreSyncService.StandardStoreServicenow implementsStoreProductService,StorePurchaseServiceandStoreSyncService.StandardStoreServicenow uses nested service implementations to make its own logic easier to overview.
0.1.0
This is a first beta release of StoreKitPlus.
This version introduces a bunch of types that makes it easier to work with StoreKit in an abstract, protocol-driven way.
✨ Features
StoreContextis a new, observable type.StoreServiceis a new protocol for comunicating with StoreKit.StandardStoreServiceis a new class for comunicating with StoreKit.ProductRepresentableis a new protocol for providing local products.ValidatableTransactionis a new protocol for transaction validation.