iOS Subscriptions are Hard
summary
Explains why StoreKit, receipt files, and servers make subscriptions messy and gives a practical rollout: start with on-device validation only for prototypes, move to server-side validation that persists raw receipts and unrolled transactions, refresh receipts roughly daily to keep active-subscriber counts accurate (scales past ~100k receipts), and add a signing server to support subscription offers; calls out missing price data in receipts and that App Store server notifications do not reliably signal renewals.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 0:24Why subscriptions are hard
- 7:26StoreKit transaction complexity
- 8:29Receipt files explained
- 10:14On-device receipt validation
- 15:31Server-side receipt validation
- 17:39Building a subscription server
- 20:28Verification and persistence
- 21:09Refreshing receipts daily
- 22:35Handling user identity
- 24:57Storing transactions
- 27:01Pending renewal info
- 30:11Tracking prices and revenue
- 33:27Server notifications
- 39:00Introductory prices and offers
- 41:46Summary and key takeaways
- 42:48Q&A
related talks
35mMaking the most of Subscriptions
42mThe recurring nightmare. Implementing cross platform in-app subscription purchases
46mSubscriptions on iOS: Deep Dive
44mTaking your users’ money: In-app billing from start to best practices
28mShip it Safe
32mA Guide to Using StoreKit2
22mLessons from a failed free trial strategy for subscription growth
44mBuild Features, Not Apps
