StoreKit, subscriptions, offers, and entitlement state
A purchase button does not grant durable access. Entitlement state comes from verified transactions and must survive relaunch, restoration, renewal changes, refunds, revocation, expiration, and offline periods.
Design the capability
- An entitlement actor observes transaction updates, verifies results, derives current access, and finishes handled transactions.
- Represent loading, entitled, expired, revoked, billing retry, grace period, pending, and unavailable states where applicable.
- Use a StoreKit configuration for deterministic local products and transaction scenarios before sandbox account tests.
- Keep product identifiers and display metadata typed. Server validation and notifications belong behind a narrow account boundary when required.
Validation boundary
No StoreKit configuration, sandbox account, App Store Connect product, purchase sheet, server notification, refund, or device transaction was exercised.
Series navigation
- Previous: Part 106: Core ML, Vision, Natural Language, and on-device intelligence
- Next: Part 108: Apple Pay, passes, Wallet, and transaction UX
- Series index: Zero to iOS Hero