configure static method

Future<void> configure(
  1. PurchasesConfiguration purchasesConfiguration
)

Sets up Purchases with your API key and an app user id.

PurchasesConfiguration Object containing configuration parameters

Implementation

static Future<void> configure(
  PurchasesConfiguration purchasesConfiguration,
) async {
  var purchasesCompletedByToUse = PurchasesAreCompletedByType.revenueCat;
  var storeKitVersionToUse = purchasesConfiguration.storeKitVersion ??
      StoreKitVersion.defaultVersion;

  if (purchasesConfiguration.purchasesAreCompletedBy
      is PurchasesAreCompletedByMyApp) {
    purchasesCompletedByToUse = PurchasesAreCompletedByType.myApp;
    storeKitVersionToUse = (purchasesConfiguration.purchasesAreCompletedBy
            as PurchasesAreCompletedByMyApp)
        .storeKitVersion;

    if (purchasesConfiguration.storeKitVersion != null &&
        purchasesConfiguration.storeKitVersion !=
            StoreKitVersion.defaultVersion &&
        storeKitVersionToUse != purchasesConfiguration.storeKitVersion) {
      debugPrint(
          'Warning: The storeKitVersion in purchasesAreCompletedBy does not match the '
          'function\'s storeKitVersion parameter. We will use the value found in purchasesAreCompletedBy.');
    }

    if (storeKitVersionToUse == StoreKitVersion.defaultVersion) {
      debugPrint(
          'Warning: You should provide the specific StoreKit version you\'re using in '
          'your implementation when configuring PurchasesAreCompletedByMyApp, '
          'and not rely on the DEFAULT.');
    }
  }

  await _channel.invokeMethod(
    'setupPurchases',
    {
      'apiKey': purchasesConfiguration.apiKey,
      'appUserId': purchasesConfiguration.appUserID,
      'purchasesAreCompletedBy': purchasesCompletedByToUse.name,
      'userDefaultsSuiteName': purchasesConfiguration.userDefaultsSuiteName,
      'storeKitVersion': storeKitVersionToUse.name,
      'useAmazon': purchasesConfiguration.store == Store.amazon,
      'shouldShowInAppMessagesAutomatically':
          purchasesConfiguration.shouldShowInAppMessagesAutomatically,
      'entitlementVerificationMode':
          purchasesConfiguration.entitlementVerificationMode.name,
      'pendingTransactionsForPrepaidPlansEnabled':
          purchasesConfiguration.pendingTransactionsForPrepaidPlansEnabled,
      'automaticDeviceIdentifierCollectionEnabled':
          purchasesConfiguration.automaticDeviceIdentifierCollectionEnabled,
    },
  );
}