Tags: russell-archer/StoreHelper
Tags
Enhances subscription purchase verification logic Improves the `isPurchased` and `isSubscribed` methods to check if the user has an active subscription to a higher-value product within the same subscription group. This ensures that the app correctly identifies the user's most valuable active subscription, especially in scenarios involving family sharing or subscription upgrades/downgrades. The `checkSuperceded` parameter is introduced to control this behavior, offering flexibility in subscription status verification. Adds a new `products(from:)` to retrieve `Product` objects from `ProductId` values. Adds new `StoreNotification` values to improve logging.
Supports transaction retrieval for older OS versions Ensures compatibility with older operating systems by providing an alternative method for retrieving current entitlements. This change addresses the deprecation of `Transaction.currentEntitlement(for:)` in newer iOS and macOS versions, while maintaining functionality on older versions.
Adds product availability management Introduces functionality to manage product availability, allowing products to be marked as not for sale with a specific reason. This feature provides methods to add or remove products from the `notForSale` collection, check if a product is for sale, and retrieve the reason why a product is not available. It enhances the user experience by displaying a reason for unavailability instead of a standard purchase button.
Adds "not for sale" product capability Allows marking products as "not for sale" and displaying a reason. This introduces a new `NotForSale` struct to represent products that are temporarily unavailable for purchase. The `StoreHelper` class now includes a `notForSale` property, a collection of `NotForSale` objects. The `ProductView` now checks if a product is in the `notForSale` collection and displays a message instead of the purchase button if it is.
PreviousNext