TN3188: Troubleshooting In-App Purchases availability in the App Store
Verify your In-App Purchases are approved and available for sale in the App Store.
Overview
When launching your app in the App Store, the app may not display your In-App Purchases. To offer In-App Purchases in your app, call products(for:) with a list of product identifiers (Product ID) matching these products in App Store Connect. Product.products(for:) returns an array that includes an instance of Product for each of the In-App Purchases. Update your app’s UI with these returned instances, which contain all In-App Purchase data configured in App Store Connect for your app.
If Product.products(for:) fails to return a Product instance for your In-App Purchases, it may be due to the following reasons:
Your In-App Purchases are missing or don’t exist in the App Store.
Your In-App Purchases exist in the App Store, but they are unapproved and unavailable.
Validate your product identifier list
To verify your product identifier list, perform these steps:
In your Xcode project, Preparing your app for distribution your app’s CFBundleIdentifier.
In App Store Connect, find the app that matches your app’s bundle ID.
Verify each product identifier in your list matches the product identifier (
Product ID) of an In-App Purchase created for the app in App Store Connect.
Review the status of your In-App Purchases
In App Store Connect, submit your In-App Purchases for review. To submit an In-App Purchase for review, the In-App Purchase must have the Ready to Submit status. If the In-App Purchase doesn’t have this status, complete any missing information such as price or localization for the subscription group display name. For more information about submitting In-App Purchases, see Submit for review.
After Apple completes review of your In-App Purchases, confirm that the status of each In-App Purchase you submitted is Ready to Submit. If App Store Connect shows Ready to Submit or Ready to Submit for an In-App Purchase, handle the status as described in the following table:
Status | Perform action |
|---|---|
Developer Action Needed | Update the In-App Purchase information. For more information, see View And Edit In App Purchase Information. |
Developer Removed from Sale | Select the countries or regions where you want to sell the In-App Purchase. For more information, see Set Availability For In App Purchases. |
Review the availability of your In-App Purchases
A customer’s Apple Account country or region determines the App Store country or region where they can purchase content. For example, an account set to Canada can only purchase In-App Purchases from the App Store in Canada. If your In-App Purchase is available in all countries or regions of the App Store except Canada, products(for:) won’t return a Product instance for your In-App Purchase on a device with an Apple Account set to Canada. In App Store Connect, you can select or deselect the countries or regions where your In-App Purchases are available on the App Store. For more information, see Set availability for in-app purchases.
After you confirm the status of your In-App Purchases is Ready to Submit, review their availability in App Store Connect. Confirm you select all the countries or regions where you want to sell the In-App Purchases. For instance, select all the countries and regions supported by the App Store to make your In-App Purchases available for sale in every App Store.
Retry your product request later
After Apple approves your In-App Purchases, it may take some time for the In-App Purchases to be available in all the countries or regions you select in App Store Connect.
Revision History
2025-04-29 First published.
See Also
Latest
TN3205: Low-latency communication with RDMA over ThunderboltTN3206: Updating Apple Pay certificatesTN3179: Understanding local network privacyTN3190: USB audio device design considerationsTN3194: Handling account deletions and revoking tokens for Sign in with AppleTN3193: Managing the on-device foundation model’s context windowTN3115: Bluetooth State Restoration app relaunch rulesTN3192: Migrating your iPad app from the deprecated UIRequiresFullScreen keyTN3151: Choosing the right networking APITN3111: iOS Wi-Fi API overviewTN3191: IMAP extensions supported by Mail for iOS, iPadOS, and visionOSTN3134: Network Extension provider deploymentTN3189: Managing Mail background traffic loadTN3187: Migrating to the UIKit scene-based life cycleTN3186: Troubleshooting In-App Purchases availability in the sandbox