StoreKit 2

You can opt-in to use StoreKit2 for Apple In-App Purchases

To request StoreKit 2 usage, simply send an email to our support team or reach out to us via Intercom.

Purchasely, by default, uses StoreKit 1 to initiate and process purchases on iOS devices. However, if you wish to enable StoreKit 2 for users on iOS 15 and above, see requirements below, you can make a request to our support team. Our team will assist you in enabling StoreKit 2 for your application, ensuring a seamless purchasing experience for your users on the latest iOS devices. Users with devices below minimum requirements will continue to uses StoreKit 1 under the hood.

Configuration

Configuring StoreKit 2 with App Store Connect to allow Purchasely to verify transactions requires a few steps. Once completed, you can update your application settings in Purchasely console. This configuration is essential for using StoreKit 2 with Purchasely SDK.

Enable App Store Connect API access

  • Go to "Users and Access"

  • Select "Keys" under the "In-App Purchase" section

  • Click on the "+" button to generate a new API key

  • Choose a name for the key and click "Generate"

  • Download the API key file (.p8), and note the Key ID and Issuer ID. Keep the file secure, as you won't be able to download it again

Setup StoreKit2 on Purchasely Console

  • Go to "App Settings"

  • Select Apple App Store" under the "Store configuration" section

  • Fill in the Private Key Id from the key you generated

  • Upload your Private Key File (.p8)

  • Fill your Issuer Id

  • Click on Save in the top right corner

Implementation

In order to activate StoreKit 2 for compatible devices within the Purchasely SDK, follow these steps to update your implementation:

  1. Enable StoreKit 2 flag

    Add the storeKit2 flag to the Purchasely.start() method in your app's initialization code. This will enable StoreKit 2 for users on compatible devices (iOS 15 and above).

    Purchasely.start(
        withApiKey: "API_KEY",
        storekitSettings: StorekitSettings(
            shouldUseStorekit2IfAvailable: true, 
            simulateAskToBuy: false)
    )
  2. Handling purchases and restorations (Paywall Observer mode)

    If you are using the Purchasely SDK in Paywall Observer mode, it is essential to call Purchasely.syncPurchase() once a purchase or restoration has been processed. This allows the SDK to be aware of new transactions and ensures accurate data reporting for A/B tests and paywall conversion.

    After processing a purchase or restoration, call

    try await Purchasely.syncPurchase(for: "apple product id")

Complete code sample

Purchasely.start(
    withApiKey: "API_KEY",
    appUserId: "USER_ID",
    runningMode: .full,
    eventDelegate: nil,
    uiDelegate: nil,
    paywallActionsInterceptor: nil,
    storekitSettings: StorekitSettings(shouldUseStorekit2IfAvailable: true, simulateAskToBuy: false),
    logLevel: .debug,
    initialized: nil
)

// Call syncPurchase if you are in paywallObserver mode after your purchase has been done.
try await Purchasely.syncPurchase(for: "apple-product-id")

Purchasely SDK

  • iOS: 3.5.0

OS version (built with Xcode 14 or later)

  • iOS 15

  • iPadOS 15

  • macOS 12

  • tvOS 15

  • watchOS 8

Dernière mise à jour

© Purchasely 2020-2023