Contents

Choosing a StoreKit API for Apple In-App Purchases

Use the latest API to support Apple In-App Purchases in new or existing apps, or the original API to support Apple In-App Purchases in earlier operating systems.

Overview

The StoreKit framework provides two APIs to implement a store in your app and offer Apple In-App Purchases:

  • Apple In-App Purchase is a Swift-based API that provides App Store-signed transactions in JSON Web Signature (JWS) format, available starting in iOS 15, macOS 12, tvOS 15, watchOS 8, and visionOS 1.

  • Original API for Apple In-App Purchase provides transaction information using App Store receipts, available starting in iOS 3, macOS 10.7, tvOS 9, watchOS 6.2, and visionOS 1.

If your app has a minimum required operating system that the Apple In-App Purchase API supports, use this API to take advantage of Swift concurrency and simplified Apple In-App Purchase workflows. Use this API for visionOS apps that use multiple scenes.

Use the Original API for Apple In-App Purchase to maintain and update app versions that have a minimum required operating system of the following versions: macOS 11 or earlier, iOS 14 or earlier, iPadOS 14 or earlier, tvOS 14 or earlier, or watchOS 7 or earlier.

An app can use both the Apple In-App Purchase API and the Original API for Apple In-App Purchase if the app runs in iOS 15, macOS 12, tvOS 15, watchOS 8, and visionOS 1 or later. However, only the Apple In-App Purchase API supports multi-scene apps for visionOS.

Both APIs provide access to your data in the App Store, such as your configured Apple In-App Purchases and transaction information for your customers. Apple In-App Purchases that users make using either API are fully available to both APIs.

Use the Apple In-App Purchase API to access new features

The following features are available only with the Swift-based Apple In-App Purchase APIs:

Use the Original API to support certain features

You might need to use the Original API for Apple In-App Purchase for the following features, if your app supports them:

See Also

Deprecated