A subscription is not a screen, it is a ledger. StoreKit takes the money, the store sends events about it, and your database has to agree with both. The moment those three disagree, a paying customer loses access or a cancelled one keeps it, and you find out from a support email rather than a dashboard.
We run StoreKit with Adapty across the paid apps in this portfolio: purchase and restore on the phone, receipts and webhooks verified server-side, and reconciliation so that a renewal arriving while the app is closed still lands in the database. Trials are where this breaks quietly — a trial start is not revenue, and any app that reports it as revenue will hand you numbers you cannot use to make a decision.
Then there is the paywall itself, which is a product surface rather than a decoration. We build variants and test them on live traffic, because the price, the plan that is preselected and the first line of copy move conversion more than anything else on that screen.