SKError.Code.unknown
Nothing is more frustrating than an error code that isn’t helpful. Such is the case with Apple StoreKit’s SKError.Code enumeration’s unknown case. This is a catch-all error code if one of the long list of error codes doesn’t match.
Apple suggests two things if this error is encountered:
- Development: Create a use a new App Store Connect test user
- Production: Sign-out then back in to App Store
There are likely other undocumented reasons why this error might get thrown. If neither of the potential resolutions above do not fix the issue, please reach out and we’ll try to help.
All SKError.Code cases
In addition to SKError Code Unknown, here is the complete SKError.Code enumeration list:
- clientInvalid: client not allowed to perform the attempted action
- paymentCancelled: User canceled a payment request
- paymentInvalid: one of the payment parameters not recognized by the App Store
- paymentNotAllowed: user not allowed to authorize payments
- storeProductNotAvailable: requested product is not available on the store
- cloudServicePermissionDenied: user not allowed to access Cloud service
- cloudServiceNetworkConnectionFailed: device could not connect to network
- privacyAcknowledgementRequired: user has not acknowledged Apple’s privacy policy for Apple Music
- unauthorizedRequestData: app attempting to use properly without required entitlement
- invalidOfferIdentifer: offer identifier is invalid
- invalidOfferPrice: price specified in App Store Connect is no longer valid
- invalidSignature: signature in a payment discount isn’t valid
- missingOfferParams: parameters are missing in a payment discount
- ineligibleForOffer: user is ineligible for subscription offer
- overlayCancelled: indicates cancellation of an overlay
- overlayInvalidConfiguration: the overlay’s configuration is invalid
- overlayPresentedInBackgroundScene: overlay displayed in background scene
- overlayTimeout: overlay timed out
- unsupportedPlatform: current platform doesn’t support overlays
- unknown: unknown or unexpected error occurred
A Final Word About StoreKit
If you are a Nami customer, you generally don’t need to worry about StoreKit implementation details since we take care of it for you. However, the Nami SDK does surface certain StoreKit messages for debugging purposes depending on the log level.