Skip to content

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

References