mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-10 22:45:55 +05:45
Finishes [CSDK-451].
This new small public API allows users to quickly figure out if
everything in the SDK is correctly configured in a simple way:
```swift
let diagnostics = PurchasesDiagnostics.default
do {
try await diagnostics.testSDKHealth()
} catch {
print(error)
}
```
The specific underlying errors will provide information about what
failed.
We can continue growing this to check for more specific things, but for
now it does 4 things:
- Verify API connectivity: networking issues, firewalling, etc.
- Verify API key is correct
- Verify `Offerings` are configured correctly
- Verify that all products in `Offerings` are configured correctly and
found in `StoreKit`
This new API is covered by:
- API testers
- Unit tests
- Integration tests (both on `SK1` and `SK2`)
_I've taken the "shortcut" of making this `async` only (while still
compatible with Objective-C), which means it's not compatible with iOS
12.x. But that made the implementation a lot simpler, which I think is a
useful tradeoff._
### Depends on:
- #1970
- #1971
- #1973
- #1974
- #1975
- #1976
[CSDK-451]:
https://revenuecats.atlassian.net/browse/CSDK-451?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
4.0 KiB
4.0 KiB
RevenueCat/Purchases
@Metadata { @DocumentationExtension(mergeBehavior: override) }
Purchases is the main entry point of the RevenueCat SDK.
It provides access to all its features.
Overview
The Purchases class can be used to access all the features of the RevenueCat SDK.
Most features require configuring the SDK before using it.
Topics
Interacting with the SDK
Purchases/sharedPurchases/isConfiguredPurchases/delegatePurchases/logLevelPurchases/logHandler
Configuring the SDK
Purchases/configure(withAPIKey:)Purchases/configure(with:)-6oipyPurchasesDiagnostics
Displaying Products
Purchases/offerings()Purchases/getOfferings(completion:)Purchases/products(_:)Purchases/getProducts(_:completion:)
Making Purchases
Purchases/purchase(package:)Purchases/purchase(package:completion:)Purchases/purchase(product:)Purchases/purchase(product:completion:)Purchases/simulatesAskToBuyInSandboxPurchases/canMakePayments()
Making Purchases with Subscription Offers
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:)Purchases/presentCodeRedemptionSheet()
Subscription Status
Purchases/getCustomerInfo(completion:)Purchases/customerInfo(fetchPolicy:)Purchases/customerInfoStream
Identifying Users
Purchases/appUserIDPurchases/isAnonymousPurchases/logIn(_:)-arjaPurchases/logIn(_:completion:)-4km90Purchases/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:)
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/collectDeviceIdentifiers()
Integrations
Purchases/setAdjustID(_:)Purchases/setAirshipChannelID(_:)Purchases/setAppsflyerID(_:)Purchases/setCleverTapID(_:)Purchases/setFBAnonymousID(_:)Purchases/setFirebaseAppInstanceID(_:)Purchases/setMixpanelDistinctID(_:)Purchases/setMparticleID(_:)Purchases/setOnesignalID(_:)
Advanced Configuration
Purchases/finishTransactionsPurchases/invalidateCustomerInfoCache()Purchases/forceUniversalAppStorePurchases/proxyURLPurchases/verboseLogsPurchases/verboseLogHandlerPurchases/allowSharingAppStoreAccount
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:)