Files
purchases-ios/Sources/DocCDocumentation/DocCDocumentation.docc/Purchases.md
T
NachoSoto faf51e3d99 Introduced PurchasesDiagnostics to help diagnose SDK configuration errors (#1977)
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
2022-10-27 12:00:53 -07:00

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/shared
  • Purchases/isConfigured
  • Purchases/delegate
  • Purchases/logLevel
  • Purchases/logHandler

Configuring the SDK

  • Purchases/configure(withAPIKey:)
  • Purchases/configure(with:)-6oipy
  • PurchasesDiagnostics

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/simulatesAskToBuyInSandbox
  • Purchases/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/appUserID
  • Purchases/isAnonymous
  • 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:)

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/finishTransactions
  • Purchases/invalidateCustomerInfoCache()
  • Purchases/forceUniversalAppStore
  • Purchases/proxyURL
  • Purchases/verboseLogs
  • Purchases/verboseLogHandler
  • Purchases/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:)