Build With RevenueCat

Build a customized mobile subscription business with RevenueCat. We do the heavy lifting of normalizing subscribers from any source and maintain a single source of truth for subscription status, so you can get back to building your app.

RevenueCat is a powerful, secure, reliable, and free to use in-app purchase server with global support. All you need to get started is an API key.

Get Started    REST API Endpoints

macOS / Catalyst

Instructions for installing Purchases SDK for macOS / Catalyst


XCode 10.2+
Minimum target: macOS 10.12+


New version available

Our version 3.0 SDK is available for macOS with a more powerful way to organize and configure products remotely.

Go to the new docs


Sharing subscriptions with iOS

iOS and macOS (including Catalyst) use different bundle Ids, meaning any purchase on either platform completely separate from each other. To share a subscription across both platforms a consistent user identifier needs to be set in the Purchases SDK.


The Purchases iOS SDK is also compatible with macOS, and can be installed either via CocoaPods or Carthage.

Install via CocoaPods

Add the following to your Podfile:

pod 'Purchases', '~> 2.6'

And then run:

pod install

This will add Purchases.framework to your workspace.

Install via Carthage

Add the following to your Cartfile:

github "revenuecat/purchases-ios" "2.6.0"

And then run:

carthage update --no-use-binaries


Make sure to include the --no-use-binaries to work around a bug in the most recent Carthage release.

Importing Purchases

You should now be able import Purchases

import Purchases
#import "RCPurchases.h"


Enable In-App Purchase for your project

Don't forget to enable the In-App Purchase capability for your project under Project Target -> Capabilities -> In-App Purchase

Next Steps

Updated about a year ago

macOS / Catalyst

Instructions for installing Purchases SDK for macOS / Catalyst

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.