joshdholtz / purchases-ios

In-app purchases and subscriptions for iOS made easy

Home Page:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿ˜ป In-App Subscriptions Made Easy ๐Ÿ˜ป

License Version Version Carthage compatible SwiftPM compatible

Purchases.framework (currently supported)

We're in the process of migrating the entire framework over to Swift ๐ŸŽ‰. The new framework is called RevenueCat.framework. While this migration is happening, you can (and should) still use the currently supported production version you know and love. If you'd like to help us by testing our beta, please feel free!

IMPORTANT: SPM integration note for users of our stable release:

Swift Package Manager (SPM) integration is currently not working as expected. If you wish to use the currently supported and stable Purchases framework (version 3.12.4), you'll need to specify < 4.0.0 or for your dependencies in Xcode. By default, Xcode will specify exactly 4.0.0 and that won't work because we haven't released that version yet, only 4.0.0-beta.x.

RevenueCat.framework Beta

Purchases and RevenueCat are clients for the RevenueCat subscription and purchase tracking system.

Purchases is the currently supported, production-ready, open source framework that provides a wrapper around StoreKit and the RevenueCat backend to make implementing in-app subscriptions in Swift or Objective-C easy - receipt validation and status tracking included!

RevenueCat is our next big release (what we've been calling Purchases V4). It is a rename of Purchases to RevenueCat, and now, 100% Swift. It contains all the same functionality (and almost exactly the same API) as Purchases. It's not a brand-new framework, but rather, a migration of the ObjC bits over to Swift with improved nullability, various bug fixes, and some new features. We're also going to be adding in StoreKit2 support before we ๐Ÿšข it, too! The framework is nearly production-ready, but we're going to keep it in beta while we continue to work on the StoreKit2 bits and iron out any remaining bugs folks find. Keep an eye out over the next few releases if you're excited to try out the StoreKit2 integration- we'll announce when we add it to the beta ๐Ÿ˜„

โš ๏ธ Beta build warning

Are you here because you saw a build warning about being on the Beta?

If you're cool being in the beta, there's nothing more for you to do ๐ŸŽ‰ If you think you've made a mistake:

Getting out of the beta ๐Ÿ˜ฟ

Swift package manager

  • First, you'll need to remove the ReveneCat package from your project.
  • Next, re-add it, but make sure you update the package's repo rules to use 3.0.0 < 4.0.0


  • You need to use Purchases pod instead of RevenueCat


  • You need to use github "RevenueCat/purchases-ios" ~> 3.12 in your Cartfile

Direct Integration

After you get out of the beta

Once you revert to version 3 of the framework you'll need to do a reverse migration. While not explicitly outlined in our API updates doc. You can see the differences between v3 and V4. The changes are mostly naming updates, so don't worry about having to refactor things beyond that.

RevenueCat SDK Features

โœ… Server-side receipt validation
โžก๏ธ Webhooks - enhanced server-to-server communication with events for purchases, renewals, cancellations, and more
๐Ÿ–ฅ macOS support
๐ŸŽฏ Subscription status tracking - know whether a user is subscribed whether they're on iOS, Android or web
๐Ÿ“Š Analytics - automatic calculation of metrics like conversion, mrr, and churn
๐Ÿ“ Online documentation up to date
๐Ÿ”€ Integrations - over a dozen integrations to easily send purchase data where you need it
๐Ÿ’ฏ Well maintained - frequent releases
๐Ÿ“ฎ Great support - Help Center

Getting Started

For more detailed information, you can view our complete documentation at

Or browse our iOS sample apps:

ezoic increase your site revenue


In-app purchases and subscriptions for iOS made easy

License:MIT License


Language:Swift 91.7%Language:Objective-C 6.8%Language:Ruby 1.0%Language:Shell 0.4%Language:C 0.1%