Engineering guides / Native Apple app development
By Arte Soft engineering · 24 October 2026
StoreKit subscription development starts with entitlement rules
A paywall is the visible part of a subscription system. The harder work is deciding what a customer can use after a purchase, renewal, refund, expiry or interrupted request. Write those rules first so the app and backend do not disagree about who has access.
The decision to make
Separate product configuration from entitlement policy. A subscription may unlock features, include a recurring credit allowance or both. Those are different assets with different lifetimes. Define what carries over, what expires and what happens after a downgrade. A single Boolean called premium is often too vague to represent the actual commercial agreement.
Choose the authority for each decision. StoreKit supplies verified transaction information, while a server may maintain usage or account-linked balances. The interface should not invent access simply because a purchase sheet closed. Pending transactions and user cancellation need distinct handling so the app neither charges twice nor suggests that an unfinished purchase succeeded.
A useful scope of work
A scoped implementation includes product identifiers, localized product display, purchase handling, transaction updates and a documented entitlement model. If there is a backend, agree how transactions are linked to its account and how repeated delivery is deduplicated. Keep test products and production configuration traceable rather than assuming that a local StoreKit file proves the store setup.
Build a lifecycle test plan alongside the paywall. Cover a successful purchase, cancellation, pending approval, renewal, expiry and access on an existing installation. Validate the language shown before purchase against what is actually supplied. If recurring credits are included, identify the grant event and ensure a repeated event cannot create a second allowance.
Acceptance checks to agree before delivery
For a subscription release, review access and balances across the purchase lifecycle. Use the same documented product policy when inspecting the app and the server. These checks look beyond a successful payment sheet to the cases that commonly cause support disputes: repeated transactions, pending purchases, renewal grants and expiry.
- Unlock only after the agreed verified transaction path and show a recoverable state for pending purchases.
- Process the same transaction more than once without issuing duplicate features, credits or customer records.
- Demonstrate expiry and renewal behavior using the stated environment, without confusing sandbox timing with production.
- Display the store-provided product information and explain the difference between access duration and credit balance.
Constraints and what to send us
Send the intended plans, product types, current backend model and examples of customer support problems. Purchase architecture needs to account for reinstall and account changes before release. An attractive paywall cannot compensate for an inconsistent ledger. Final purchase behavior must be tested against the real App Store configuration as well as local development scenarios.
Our own product reference and a starting engagement
Subscription architecture and StoreKit implementation. GPT Realtime Assistant is an owned product using paid plans and credits, providing a concrete public reference for discussing this model. It is not a reusable commercial policy for every app. Begin by agreeing your entitlement and allowance rules before implementing their state transitions.
Relevant Arte Soft work
GPT Realtime Assistant is our own product or engineering project. It provides context for the work we discuss here; it is not a claim of identical results for every client deployment.
Sources and further reading
Need help with Subscription architecture and StoreKit implementation?
Send the current app, system or brief, the behaviour you need and your constraints. We can agree a discovery, implementation or repair scope with concrete acceptance criteria.
Discuss this with Arte Soft