mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-10 22:45:55 +05:45
Initial step for [CSDK-17]. Fixes [CSDK-523]. ### Changes: - Renamed `ReceiptParser` to `PurchasesReceiptParser` to avoid name collision with future SPM `ReceiptParser` - Exposed `ReceiptParser`, `AppleReceipt`, `PurchasesReceiptParser.Error` - Added new types to `SwiftAPITester` - Added docs to these types - Moved `LoggerType` to be available to `ReceiptParser` - Moved `DateFormatter+Extensions` to be available to `ReceiptParser` - Moved `Codable+Extensions` to be available to `ReceiptParser` - Created `ReceiptParserLogger` for `ReceiptParser` [CSDK-17]: https://revenuecats.atlassian.net/browse/CSDK-17?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [CSDK-523]: https://revenuecats.atlassian.net/browse/CSDK-523?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
160 lines
6.5 KiB
Markdown
160 lines
6.5 KiB
Markdown
# ``RevenueCat``
|
|
|
|
😻 In-App Subscriptions Made Easy 😻
|
|
|
|
## Overview
|
|
|
|
RevenueCat is a powerful, reliable, and free to use in-app purchase server with cross-platform support. Our open-source framework provides a backend and a wrapper around StoreKit and Google Play Billing to make implementing in-app purchases and subscriptions easy.
|
|
|
|
Whether you are building a new app or already have millions of customers, you can use RevenueCat to:
|
|
|
|
* Fetch products, make purchases, and check subscription status with our [native SDKs](https://docs.revenuecat.com/docs/installation).
|
|
* Host and [configure products](https://docs.revenuecat.com/docs/entitlements) remotely from our dashboard.
|
|
* Analyze the most important metrics for your app business [in one place](https://docs.revenuecat.com/docs/charts).
|
|
* See customer transaction histories, chart lifetime value, and [grant promotional subscriptions](https://docs.revenuecat.com/docs/customers).
|
|
* Get notified of real-time events through [webhooks](https://docs.revenuecat.com/docs/webhooks).
|
|
* Send enriched purchase events to analytics and attribution tools with our easy integrations.
|
|
|
|
Sign up to [get started for free](https://app.revenuecat.com/signup).
|
|
|
|
### RevenueCat SDK Features
|
|
| | RevenueCat |
|
|
| --- | --- |
|
|
✅ | Server-side receipt validation
|
|
➡️ | [Webhooks](https://docs.revenuecat.com/docs/webhooks) - enhanced server-to-server communication with events for purchases, renewals, cancellations, and more
|
|
🖥 | iOS, tvOS, macOS and watchOS 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](https://docs.revenuecat.com/docs) up to date
|
|
🔀 | [Integrations](https://www.revenuecat.com/integrations) - over a dozen integrations to easily send purchase data where you need it
|
|
💯 | Well maintained - [frequent releases](https://github.com/RevenueCat/purchases-ios/releases)
|
|
📮 | Great support - [Help Center](https://community.revenuecat.com)
|
|
|
|
- Important: You're viewing the documentation for RevenueCat iOS SDK version 4.
|
|
For documentation on version 3, visit [the docs for RevenueCat iOS SDK version 3.](https://sdk.revenuecat.com/ios/index.html)
|
|
|
|
## Migrating from Purchases v3
|
|
When transitioning between our V3 SDK, we ported our entire SDK into Swift.
|
|
Migrating from Objective-C to Swift required a number of API changes, but we feel that the
|
|
changes resulted in the SDK having a more natural feel for developers. In addition,
|
|
we introduced several new types and APIs.
|
|
|
|
Our <doc:V4_API_Migration_guide> provides information on how to migrate from V3 to V4.
|
|
|
|
## Getting Started
|
|
For more detailed information, you can view our complete documentation at [docs.revenuecat.com](https://docs.revenuecat.com/docs).
|
|
|
|
Or browse our iOS sample apps:
|
|
- [MagicWeather](https://github.com/RevenueCat/purchases-ios/tree/main/Examples/MagicWeather)
|
|
- [MagicWeather SwiftUI](https://github.com/RevenueCat/purchases-ios/tree/main/Examples/MagicWeatherSwiftUI)
|
|
|
|
## Topics
|
|
|
|
### Purchases
|
|
- ``Purchases``
|
|
|
|
### Configuring the SDK
|
|
- ``Purchases/configure(withAPIKey:)``
|
|
- ``Purchases/configure(with:)-6oipy``
|
|
- ``PurchasesDiagnostics``
|
|
|
|
### Displaying Products
|
|
- ``Offerings``
|
|
- ``Offering``
|
|
- ``Package``
|
|
- ``StoreProduct``
|
|
- ``SubscriptionPeriod``
|
|
|
|
- ``Purchases/offerings()``
|
|
- ``Purchases/getOfferings(completion:)``
|
|
- ``Purchases/products(_:)``
|
|
- ``Purchases/getProducts(_:completion:)``
|
|
|
|
### Making Purchases
|
|
- ``StoreTransaction``
|
|
|
|
- ``Purchases/purchase(package:)``
|
|
- ``Purchases/purchase(package:completion:)``
|
|
- ``Purchases/purchase(product:)``
|
|
- ``Purchases/purchase(product:completion:)``
|
|
|
|
### Making Purchases with Subscription Offers
|
|
- ``IntroEligibility``
|
|
- ``PromotionalOffer``
|
|
- ``StoreProductDiscount``
|
|
|
|
- ``Purchases/checkTrialOrIntroDiscountEligibility(productIdentifiers:)``
|
|
- ``Purchases/checkTrialOrIntroDiscountEligibility(productIdentifiers:completion:)``
|
|
- ``Purchases/checkTrialOrIntroDiscountEligibility(product:)``
|
|
- ``Purchases/checkTrialOrIntroDiscountEligibility(product:completion:)``
|
|
- ``Purchases/promotionalOffer(forProductDiscount:product:)``
|
|
- ``Purchases/getPromotionalOffer(forProductDiscount:product:completion:)``
|
|
- ``Purchases/purchase(package:promotionalOffer:)``
|
|
- ``Purchases/purchase(package:promotionalOffer:completion:)``
|
|
- ``Purchases/purchase(product:promotionalOffer:)``
|
|
- ``Purchases/purchase(product:promotionalOffer:completion:)``
|
|
|
|
### Subscription Status
|
|
- ``CustomerInfo``
|
|
- ``EntitlementInfo``
|
|
- ``EntitlementInfos``
|
|
- ``PurchasesDelegate``
|
|
|
|
- ``Purchases/getCustomerInfo(completion:)``
|
|
- ``Purchases/customerInfo(fetchPolicy:)``
|
|
- ``Purchases/customerInfoStream``
|
|
|
|
### Identifying Users
|
|
- ``Purchases/logIn(_:)-arja``
|
|
- ``Purchases/logIn(_:completion:)-4km90``
|
|
- ``Purchases/logOut()``
|
|
- ``Purchases/logOut(completion:)``
|
|
|
|
### Managing Subscriptions
|
|
- ``Purchases/syncPurchases()``
|
|
- ``Purchases/syncPurchases(completion:)``
|
|
- ``Purchases/restorePurchases()``
|
|
- ``Purchases/restorePurchases(completion:)``
|
|
- ``Purchases/beginRefundRequestForActiveEntitlement()``
|
|
- ``Purchases/beginRefundRequest(forEntitlement:)``
|
|
- ``Purchases/beginRefundRequest(forProduct:)``
|
|
- ``Purchases/showManageSubscriptions()``
|
|
- ``Purchases/showManageSubscriptions(completion:)``
|
|
|
|
### Parsing Receipts
|
|
- ``PurchasesReceiptParser``
|
|
- ``AppleReceipt``
|
|
|
|
### Subscriber Attributes
|
|
- ``Purchases/setAttributes(_:)``
|
|
- ``Purchases/setAd(_:)``
|
|
- ``Purchases/setEmail(_:)``
|
|
- ``Purchases/setDisplayName(_:)``
|
|
- ``Purchases/setKeyword(_:)``
|
|
- ``Purchases/setCampaign(_:)``
|
|
- ``Purchases/setCreative(_:)``
|
|
- ``Purchases/setAdGroup(_:)``
|
|
- ``Purchases/setPushToken(_:)``
|
|
- ``Purchases/setPushTokenString(_:)``
|
|
- ``Purchases/setMediaSource(_:)``
|
|
- ``Purchases/setPhoneNumber(_:)``
|
|
- ``Purchases/setAttributes(_:)``
|
|
- ``Purchases/collectDeviceIdentifiers()``
|
|
|
|
### Integrations
|
|
- ``Purchases/setAdjustID(_:)``
|
|
- ``Purchases/setAirshipChannelID(_:)``
|
|
- ``Purchases/setAppsflyerID(_:)``
|
|
- ``Purchases/setCleverTapID(_:)``
|
|
- ``Purchases/setFBAnonymousID(_:)``
|
|
- ``Purchases/setFirebaseAppInstanceID(_:)``
|
|
- ``Purchases/setMixpanelDistinctID(_:)``
|
|
- ``Purchases/setMparticleID(_:)``
|
|
- ``Purchases/setOnesignalID(_:)``
|
|
|
|
### Configuring the SDK with parameters (deprecated)
|
|
- ``Purchases/configure(withAPIKey:appUserID:)``
|
|
- ``Purchases/configure(withAPIKey:appUserID:observerMode:)``
|
|
- ``Purchases/configure(withAPIKey:appUserID:observerMode:userDefaults:)``
|
|
- ``Purchases/configure(withAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:)``
|