// the find
RevenueCat/purchases-ios
In-app purchases and subscriptions made easy. Support for iOS, watchOS, tvOS, macOS, and visionOS.
RevenueCat's iOS SDK wraps StoreKit 1 and 2 behind a unified API and syncs purchase state to their backend for receipt validation, analytics, and cross-platform entitlement tracking. It's the standard choice for iOS apps that need subscriptions without building server-side receipt validation from scratch. You're buying into their hosted backend — the SDK is the client half of a paid service.
StoreKit 2 support is solid and the SK1/SK2 abstraction is well-handled, so you don't have to branch your code for OS versions. The entitlements model is genuinely useful — decoupling product IDs from feature access means you can restructure your offerings without shipping an app update. Test coverage is serious: separate xctestplans for SK1, SK2, offline, load shedding, and custom entitlements. The AdMob adapter for tracking ad revenue alongside IAP revenue in one dashboard is a nice touch that most competitors don't have.
This is fundamentally a client SDK for a SaaS backend, not a self-contained library — if RevenueCat goes down or changes pricing, you have a migration problem, not just a build failure. The SDK does phone home on every app launch to fetch offerings and validate entitlements, which adds a network dependency to your paywall flow. Offline entitlement computation exists but requires a separate `CustomEntitlementComputation` variant with a different API surface, so it's not a drop-in fallback. Documentation references external docs.revenuecat.com heavily; the repo itself gives you little guidance on what the SDK actually does vs. what requires backend configuration.