StoreKitPlus will use semver after 1.0.
Until then, deprecated features may be removed in any minor version, and breaking changes introduced.
This version adds more utilities.
BasicProduct
is a new, lightweight product struct.Product
has new ways of calculating yearly savings.
This version makes StoreKitPlus use Swift 6.
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.
StoreService
has new.standard
shorthands.StoreService
has newcontext
-based function versions.StandardStoreService
no longer accepts a context, and will no longer keep it in sync.
StoreProductService
has been deprecated.StorePurchaseService
has been deprecated.StoreSyncService
has been deprecated.
StandardProductSerice
now lets you inject custom services, if needed.
This version fixes an async error that could cause purchases to update the context on a background thread.
StoreKitPlus now uses Swift 5.9, which requires Xcode 15.
This version also adds support for visionOS, although the purchase operation doesn't work.
Product
has a newproducts(for:)
that uses a product representable collection.ProductRepresentable
has a new function to fetch all available products in a context.
This release breaks up the StoreService
protocol into multiple protocols.
This is done to simplify implementing custom services, mocking in unit tests etc.
StandardProductService
is a new service that takes care of fetching products.StandardPurchaseService
is a new service that takes care of purchasing products and restoring purchases.StoreService
has been split up into three protocols:StoreProductService
,StorePurchaseService
andStoreSyncService
.StoreContext
has a newproduct(withId:)
function.
StoreService
now inheritsStoreProductService
,StorePurchaseService
andStoreSyncService
.StandardStoreService
now implementsStoreProductService
,StorePurchaseService
andStoreSyncService
.StandardStoreService
now uses nested service implementations to make its own logic easier to overview.
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.
StoreContext
is a new, observable type.StoreService
is a new protocol for comunicating with StoreKit.StandardStoreService
is a new class for comunicating with StoreKit.ProductRepresentable
is a new protocol for providing local products.ValidatableTransaction
is a new protocol for transaction validation.