What does StoreKitError.notEntitled mean?
StoreKitError.notEntitled means the app does not have the entitlements that the StoreKit function it called requires.
Quick facts#
| Error | StoreKitError.notEntitled |
| Where | StoreKit 2, Swift (StoreKitError) |
| Available since | iOS 15.4, iPadOS 15.4, macOS 12.3, tvOS 15.4, watchOS 8.5, visionOS 1.0 |
| What the vendor says | The app does not have the appropriate entitlements to use the functionality. |
Cause#
- The app is missing an entitlement that the called StoreKit function requires. Apple documents the case in one line and does not list which functions or entitlements trigger it.
- Apple describes In-App Purchase as a capability: some app services need you to add a capability to the target in Xcode, which can edit the target's entitlements (Adding capabilities to your app).
- The case exists only from iOS 15.4 and macOS 12.3, so older systems report a different failure.
Fix#
- Open the target's Signing & Capabilities tab in Xcode and check that the capabilities your feature needs are present, including In-App Purchase.
- Confirm the app ID's capabilities in your Apple Developer account match the target, then rebuild and reinstall.
- If the failing call needs a special entitlement from Apple, request it first; the case name does not say which one.
- Log the call that threw the error so you can tell which function needed the entitlement.
Example#
Swift
import StoreKit
// notEntitled is an app configuration problem, not a customer problem: log it for yourself and hide the feature.
func syncPurchases() async {
do {
try await AppStore.sync()
} catch StoreKitError.notEntitled {
print("This build lacks an entitlement for this StoreKit call; check Signing & Capabilities")
} catch {
print("Sync failed: \(error)")
}
}Compile-checked: npm run check:snippets type-checks this snippet with swiftc against the Apple SDK (macOS target, checked 2026-10-03).
How the RevenueDot SDK reports it#
The RevenueDot purchases-ios fork maps StoreKitError.notEntitled to ErrorCode.storeProblemError (code 2). Because that code also covers temporary store failures, read the underlying error to tell them apart. See what storeProblemError means.
Related#
- What does storeProblemError (code 2) mean in the purchases SDK?
- What does StoreKitError.unsupported mean?
- What does configurationError (code 23) mean in the purchases SDK?
Source#
- Apple: StoreKitError.notEntitled
- Apple: Adding capabilities to your app
- RevenueDot purchases-ios: StoreKitError+Extensions.swift (how the SDK maps StoreKit 2 errors)
Checked: 2026-10-03