In-App Purchase

RSS for tag

Offer extra content, digital goods, and features directly within your app using in-app purchases.

Posts under In-App Purchase tag

200 Posts

Post

Replies

Boosts

Views

Activity

Locate the In-App Purchases and Subscriptions Section in App Store Connect
App Store Connect displays the In-App Purchases and Subscriptions section on your app's version page when your app has an In-App Purchase or subscription with a Ready to Submit status. To locate the In-App Purchases and Subscriptions section: In Apps, select the app you want to view. In the sidebar, select the app version. On the version page, scroll down to the In-App Purchases and Subscriptions section. For more information, see Submit an In-App Purchase.
0
0
2.1k
Jun ’26
In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
0
0
1k
Jun ’26
StoreKit storekit_no_response — queryProductDetails returns 0 products despite fully active Paid Apps Agreement
I'm seeing IAPError(code: storekit_no_response, source: app_store, message: "StoreKit: Failed to get response from platform.") when calling queryProductDetails() (via Flutter's in_app_purchase/in_app_purchase_storekit plugin) for all 6 of my app's In-App Purchase products. This happens consistently on a real device (iOS 18.7.9), including after a full device restart. I've followed the entire TN3186 checklist: Paid Apps Agreement: Active Banking: Active Tax Forms: Active Bundle ID matches App Store Connect and Certificates/Identifiers/Profiles In-App Purchase capability is enabled on the App ID All 6 product identifiers match exactly and are attached to the app version under review Pricing is set for all territories on all products None of this resolves the error. This also caused an App Store review rejection citing "In-app purchase products... could not be found in the submitted binary" for the same reason. Bundle ID: com.playadda.playadda Product IDs affected: gems_pack_100, gems_pack_500, gems_pack_1200, premium_monthly, battle_pass_s1, starter_pack Has anyone found a resolution to this specific error beyond the standard TN3186 checklist?
0
0
29
16h
Transaction.finish() is a no-op on iOS 27 beta 5; purchase() then replays the same transaction forever
Transaction.finish() doesn't clear a transaction on iOS 27 beta 5 — worked correctly through beta 4 — every repeat purchase after the first replays the same transaction with no confirmation sheet and no charge. StoreKit.Transaction.finish() does not clear a transaction on iOS 27 beta 5. The transaction remains in Transaction.unfinished indefinitely, and every subsequent Product.purchase() call for that product returns the same stale transaction instead of starting a new purchase — with no confirmation sheet, no charge, and no way for the app to tell it apart from a genuine purchase. Because the replayed result is .success carrying a VerificationResult that verifies normally, an app has no supported signal that nothing was bought. The only distinguishing traits are that the id and purchaseDate are unchanged and the call returns in ~10ms instead of making a server round-trip. Consequence: a consumable product can be purchased exactly once per device. Every later attempt silently no-ops while appearing to succeed. Steps to Reproduce On a device running iOS 27 beta 5, sign in to a newly created Sandbox Apple Account (Settings → Apps → App Store → Sandbox Account) with no prior purchase history. Install and launch a development build of an app offering a consumable IAP. Confirm Transaction.unfinished is empty. Purchase the consumable. The confirmation sheet appears and the purchase completes normally. await transaction.finish() on the returned transaction. Enumerate Transaction.unfinished again. Purchase the same consumable a second time. Expected Results Step 6: Transaction.unfinished is empty — the transaction was finished. Step 7: a confirmation sheet appears and a new transaction is created, with a new id and a current purchaseDate. Actual Results Step 6: the just-finished transaction is still listed in Transaction.unfinished. Step 7: no confirmation sheet appears. purchase() returns .success in ~0.01s carrying the same transaction — identical id and identical purchaseDate — and nothing is charged. This repeats indefinitely. Re-fetching the transaction from Transaction.unfinished and calling finish() on that instance does not clear it either, so there is no app-side way to drain the queue. Diagnostic Log Virgin sandbox account, empty queue, three consecutive taps on one product: unfinished before tip.small: [] purchase() returned after 18.10s tip.small: id=2000001221113013 purchaseDate=2026-08-13 22:36:26 +0000 --- await transaction.finish() --- unfinished after finishing 2000001221113013: [small#2000001221113013] unfinished before tip.small: [small#2000001221113013] purchase() returned after 0.01s tip.small: id=2000001221113013 purchaseDate=2026-08-13 22:36:26 +0000 unfinished before tip.small: [small#2000001221113013] purchase() returned after 0.01s tip.small: id=2000001221113013 purchaseDate=2026-08-13 22:36:26 +0000 The first call is a genuine purchase (18s round-trip, sheet shown). The transaction survives its own finish(). Calls two and three are replays of it. Notes Not reproducible against a local .storekit configuration in the Simulator, which always presents the confirmation sheet. Requires Apple's sandbox. Also reproduces on a TestFlight build billed to a real Apple ID, where it is worse: TestFlight purchase history cannot be reset, so the affected products stay permanently stuck for that account. It survives deleting and reinstalling the app, and a device reboot. Possibly the same underlying issue as the unanswered report at https://developer.apple.com/forums/thread/808648 (iOS 26/18, Nov 2025). Configuration Device: iPhone 16 Pro Max OS: iOS 27 beta 5 Products: consumable in-app purchases API: StoreKit 2 (Product.purchase(), Transaction.finish(), Transaction.unfinished)
2
0
100
18h
iOS 27 Beta: StoreKit FinishTransactionRequest repeatedly fails with requestEncodeFailed
I am experiencing a StoreKit issue on iOS 27 Beta with eFootball™ 11.0.0 (jp.konami.pesactionmobile). After an in-app purchase, the app becomes stuck on an infinite loading screen during login. If I manage to log in, the in-game Shop also remains stuck loading. I investigated the issue using macOS Console and found that StoreKit repeatedly attempts to finish the same production transaction every approximately 2–3 seconds. The relevant logs are: Starting request FinishTransactionRequest(...) Failed to encode request parameters NSCocoaErrorDomain Code=3840 Error finishing transaction: StoreKitServiceError StoreKitInternalError.requestEncodeFailed The same transaction is repeatedly passed to FinishTransactionRequest, but the finish operation never succeeds. What I have confirmed The purchase itself was confirmed by Apple Support as successfully completed. The transaction is a Production transaction with the JPN storefront. Reinstalling eFootball does not resolve the issue. Restarting the iPhone does not resolve the issue. Signing out and back into "Media & Purchases" with the affected Apple Account does not resolve the issue. Network requests from the app itself are succeeding with HTTP 200 responses. The issue occurs when StoreKit attempts to finish the transaction. Most importantly, if I sign out of the affected Apple Account under Media & Purchases and sign in with a different Apple Account on the same iPhone, eFootball immediately works normally again — both login and the Shop load successfully. If I switch back to the original Apple Account, the issue returns. Steps to reproduce Use the affected Apple Account for Media & Purchases. Launch eFootball. Attempt to log in. The app remains stuck loading. Observe Console logs from storekitd. The same transaction repeatedly triggers FinishTransactionRequest. Each attempt fails with StoreKitInternalError.requestEncodeFailed. Expected behavior StoreKit should successfully finish the completed transaction, remove it from the unfinished transaction queue, and allow the app to continue normally. Actual behavior FinishTransactionRequest repeatedly fails with requestEncodeFailed, causing the same transaction to be processed indefinitely and preventing normal use of the app. Has anyone encountered the same behavior on iOS 27 Beta? Is this a known StoreKit issue, or is there any way to safely clear/finish the affected production transaction without restoring the device to the current public iOS release?
0
0
39
19h
Cancel subscription not working in TestFlight
Hi, I have deployed my app on Test Flight, I have two subscriptions, monthly and yearly. User can have one of them at a time and upgrade, downgrade to the other. Upgrade, downgrade, cancel from the Apple Settings worked fine in the sandbox environment when testing locally. Now when I have deployed the app on TestFlight, I was able to purchase the subscription successfully from my app. Now when I want to cancel my subscription from the Apple Settings it gives me the following error after confirming cancellation, 'Your request is temporarily unable to be processed. Please try again later.' Also the other subscription offer (yearly) is also not shown to which I could upgrade, even though in the sandbox I was able to upgrade downgrade from the settings. Another thing I have noticed is that the app Icon or name is not shown anywhere in settings with the subscription. Instead of app icon only empty square is shown. Even though app icon shows fine everywhere else. Can someone please help me figure out this issue?
23
15
4.9k
1d
Transaction.currentEntitlements returning NULL values
Hi, Overview In my project I am using a .storekit StoreKit configuration file that is synced. I have only non-consumable products Problem When I loop through Transaction.currentEntitlements after verification the properties such as transaction.productType are all NULL. Note I have called .finish on the transaction after the following: Processing Transaction.updates Processing purchasing a new product Environment: Xcode 27 Beta 5 iOS 26.6 Questions How can I resolve this? Am I missing something? Should I be using Transaction.latest(for:) instead of Transaction.currentEntitlements?
0
0
56
1d
StoreKit 2: Transaction.all and Transaction.currentEntitlements return empty for valid non-consumable purchases in production
FB: https://feedbackassistant.apple.com/feedback/22556883 We're seeing a small number of production users where both Transaction.currentEntitlements and Transaction.all return zero transactions for a valid, active, non-refunded non-consumable IAP. This makes it impossible to restore the purchase via any StoreKit 2 API. Environment: Xcode 26.4 (Build 17E192) iOS 26.4.1 Direct call to SK2 Transactions.all & Flutter in_app_purchase package v3.2.3 (uses SK2 on iOS 15+) Non-consumable IAP (one-time purchase) What we observe: AppStore.sync() triggers but the purchase stream returns 0 transactions Transaction.all returns empty Transaction.currentEntitlements also returns empty User is confirmed on the correct Apple ID Issue reproduces on both iPhone and Mac for the same Apple ID Issue appears to have started recently for users who previously had no problems Debug log from affected production user: [2026-04-20T08:50:10.744115Z] init: iapAvailable=true [2026-04-20T08:50:10.744566Z] init: isPremium=false [2026-04-20T08:50:10.744567Z] init: triggering silent restorePurchases [2026-04-20T08:50:45.974566Z] restore: started [2026-04-20T08:50:45.986848Z] restore: sk2Transactions count=0 [2026-04-20T08:50:45.993004Z] restore: sk2Direct isVerified=false active=null [2026-04-20T08:50:45.993011Z] restore: sk2Direct inconclusive — falling back to standard restore [2026-04-20T08:51:16.000851Z] restore: timed out after 30s — fallback isPremium=false [2026-04-20T08:51:16.000910Z] restore: completed — succeeded=false foundPurchase=false Unable to reproduce in sandbox — Transaction.all works correctly there. Appears specific to production for a small subset of users. Has anyone else seen this?
24
5
2.9k
1d
Transaction.currentEntitlements and subscription.status both return empty for active production subscription
Product: Auto-renewable annual subscription Environment: Production iOS version: 26.6 StoreKit version: StoreKit 2 I have an active subscription that shows correctly in the App Store app, but neither Transaction.currentEntitlements nor Product.SubscriptionInfo.Status (via subscription.status) return any record of it — both come back empty. What I've checked: Transaction.currentEntitlements — iterated fully, zero transactions found for this product ID Product.SubscriptionInfo.Status — checked independently as a second signal, also returns no active status for this product AppStore.sync() — called before checking entitlements, completes successfully, does not resolve the issue Settings → [Apple ID] → Subscriptions on-device — does not show this subscription "Restore Purchases" in-app — consistently reports nothing found Impact: Since my app gates access behind an active entitlement check, this means the user is stuck on the paywall screen indefinitely, despite having a valid, active, paid subscription. There's no client-side workaround, since every available StoreKit 2 API reports no entitlement exists. Code pattern (simplified): swift for await result in Transaction.currentEntitlements { if case .verified(let transaction) = result, transaction.productID == productID { // never reached for this product } } if let subscription = product.subscription { let statuses = try await subscription.status // statuses is empty / doesn't reflect the active subscription } This looks consistent with the pattern reported in thread 823454, where currentEntitlements and Transaction.all return empty for valid, non-refunded purchases in production for a small number of users. In my case, this is affecting a currently active subscription — not a refunded or expired one — and is reproducible on this account across multiple app builds. Has anyone found a reliable workaround, or is this being tracked by Apple as an active known issue beyond the fix already applied for the non-Gregorian calendar case (which doesn't apply here)?
0
0
50
1d
StoreKit 2 returns zero subscription products in Sandbox/TestFlight — FB24199369
StoreKit 2 returns zero subscription products in Sandbox/TestFlight — FB24199369 I’m experiencing an issue where StoreKit 2 returns zero subscription products in both Sandbox and TestFlight for my iOS app. App: Bundle ID: com.sleeplessnight.naengbiseo Subscription group: Naengbiseo Premium Product IDs: naengbiseo_premium_monthly naengbiseo_premium_yearly Although the production app uses RevenueCat, I reproduced the same issue in a separate minimal native SwiftUI app using StoreKit 2 directly, with no RevenueCat, Expo, React Native, or other third-party SDK involved. Native StoreKit 2 call: let products = try await Product.products(for: [ "naengbiseo_premium_monthly", "naengbiseo_premium_yearly" ]) Current native test result: STOREKIT_COUNTRY_CODE: KOR STOREKIT_STOREFRONT_ID: 143466 DIRECT_STOREKIT_COUNT: 0 Returned products: None Test environment: Physical iPhone StoreKit Configuration: None Sandbox Apple Account signed in Storefront: KOR In-App Purchase capability enabled Correct Bundle ID and Product IDs I have rechecked the following configuration: The subscriptions are available in the test storefront Subscription pricing is configured Subscription localization is configured Paid Apps Agreement, banking, and tax information are active App ID has In-App Purchase enabled The App Store/TestFlight build has the expected Bundle ID, provisioning, and signing configuration I also created a StoreKit Configuration file using “Sync this file with an app in App Store Connect”. The sync completed, but the resulting configuration contained: products: [] subscriptionGroups: [] The same subscriptions also fail to load in TestFlight. The subscription products currently show Rejected in App Store Connect because the associated app version was rejected. App Store Connect states that the subscriptions were returned because the associated app was rejected and will remain Rejected until resubmitted for review. However, App Review also stated: “In-App Purchase products do not need prior approval to function in review.” I have reviewed TN3186 and have not found a remaining developer-side configuration issue that explains why Product.products(for:) returns zero products. Since the issue reproduces in a minimal native StoreKit 2 app, this does not appear to be caused by RevenueCat or another third-party SDK. Feedback Assistant: FB24199369 Could an App Store Commerce / StoreKit engineer advise whether there is any remaining developer-side configuration that could cause this, or whether the subscription catalog / app association may need to be reprocessed on Apple’s side? Thank you.
1
0
93
2d
Cannot attach first In-App Purchase to app version — "In-App Purchases or Subscriptions" section missing (repeated 2.1(b) rejections)
Summary: The "In-App Purchases or Subscriptions" selection section does not appear on my app version page, so I cannot attach my first In-App Purchase to my build. This has caused four consecutive Guideline 2.1(b) rejections. Setup: App: Qmetra IQ (Apple ID 6791254506, Bundle ID com.vibecode.qmetraiq.londa9) First app release, never published App version 1.0, current build 1.0.1 (2) Non-consumable IAP: com.vibecode.qmetraiq.londa9.results (Apple ID 6792799431) IAP status: Ready to Submit App Review screenshot for the IAP: uploaded (1242×2688) Paid Apps Agreement signed, banking and tax complete, no open items under Business What I see: On the version page, the "In-App Purchases or Subscriptions" heading exists, but contains only an informational message ("...add an app version to your submission so the items are reviewed together..."). There is no button, link, checkbox, or "+" to select the IAP. The submission draft panel contains only the app version, with no way to add the IAP. Opening the draft from the IAP page shows only the IAP, with the warning "Cannot be submitted for review — add an app version for the selected platform", and the "Submit for Review" button greyed out. What I have tried: Removed the previous rejected submission from review, then rechecked the version page — section still absent Assigned a fresh build (1.0.1 build 2) and saved Re-saved the IAP metadata Resubmitted the app version alone — rejected again under 2.1(b) Replied in the review thread twice — no resolution Rejection reason each time: "one or more of the In-App Purchase products have not been submitted for review." Could an Apple staff member please forward this to App Store Connect Support or engineering so the In-App Purchase can be moved to In Review manually? Several older threads describing this exact bug were only resolved that way. Happy to share more details privately if needed. Thank you.
1
0
85
2d
In-App Purchases stuck In Review for 3-4 weeks — blocking sales of live content
Hi, I'm hoping someone from App Review can help, as email support has not resolved this. We publish digital magazine apps where each new issue is sold as a separate in-app purchase. Two of our IAPs have now been stuck in "Waiting for Review" / "In Review" for 3-4 weeks, well beyond the normal 24-48 hour turnaround we've seen on previous submissions. Because of this, we are currently unable to sell our product to paying customers. Readers cannot purchase the current issues at all. This is actively affecting live revenue, not just a delayed update. We've already sent two emails to Developer Support with no meaningful response beyond being asked to keep waiting, and a Contact Us request through App Store Connect has not moved things forward either. Could someone from App Review please look into why these specific IAP submissions have been stuck for so long, and help move them forward? I'm happy to provide the App ID / bundle ID and IAP product IDs privately to a verified Apple team member. Thank you for any help you can offer.
1
0
93
2d
In-App Purchases Stuck on “Ready for Review” After App Submission
Title: In-App Purchases Stuck on “Ready for Review” After App Submission I’m running into an issue in App Store Connect with several consumable In-App Purchases. I have four IAPs that currently show Ready for Review: MetaOp 250k Burst (Free Tier) MetaOp 250k Burst (Paid Tier) MetaOp 500k Burst (Free Tier) MetaOp 500k Burst (Paid Tier) I previously added these IAPs to a submission and later removed them. I have now submitted the app version again, and the app itself is showing Waiting for Review, but these four IAPs are still listed under Drafts as Ready for Review. The issue is that I cannot select them from the In-App Purchases list or attach them to the current submission. They also did not move into the submitted review package when I submitted the app. Has anyone seen this behavior before? Is there a way to reset these IAPs back to Prepare for Submission, or otherwise attach/submit them separately without withdrawing the app version that is already Waiting for Review?
0
0
45
2d
StoreKit 2: Does Transaction.currentEntitlements get updated when my app isn't running?
TL;DR: Does iOS automatically receive App Store transaction updates in the background when internet connection is available so the backing storage state of Transaction.currentEntitlements gets synced even when my app is not running? Or does iOS update Transaction.currentEntitlements only when my app is running? The long version: Imagine the following situation: A user has purchased a non-consumable IAP in my app and is granted the locked premium content. The IAP transaction is now present in Transaction.currentEntitlements (it's also cached locally). The user blocks internet access every time before my app gets opened (either enables the Airplane mode and/or disconnects from the Wi-Fi before launching my app). So from this point on, my app never gets a chance to connect to the internet. The user gets refunded for the IAP. The user uses their iPhone to browse the internet via Safari, checks emails, etc. Then, before launching my app, the user blocks internet access. My app gets is launched (without internet access) and reads entitlements from Transaction.currentEntitlements. The question is: does the StoreKit service know that the IAP has been refunded? Did iOS update the local cached storage of Transaction.currentEntitlements while the user was connected to the internet in step 4? Or will Transaction.currentEntitlements contain the old state from step 1 so the app won't know about the refund and the user will be able to use my app's premium content which has been refunded by now? Is the behavior the same for auto-renewable subscriptions as it is for non-consumable IAPs?
0
0
108
5d
Can a non-reader iOS app offer web-only subscription checkout on the US storefront?
We have a non-reader iOS app that sells a subscription unlocking digital features within the app. For users on the United States App Store storefront, we are considering adding a button that opens an external browser and directs the user to a web-based subscription checkout. The completed web purchase would unlock the same digital subscription entitlement in the iOS app. We understand that, following the May 2025 changes to App Review Guidelines 3.1.1 and 3.1.1(a), US storefront apps may include buttons, external links, or calls to action directing users to alternative purchasing methods without requiring the StoreKit External Purchase Link Entitlement. Could someone clarify the following? For a non-reader app on the US storefront, must Apple In-App Purchase remain available alongside the external web checkout? Can the app show only the web-based checkout to US storefront users while continuing to use Apple IAP in other storefronts? Does Guideline 3.1.1 still require every digital subscription available through web checkout to also be available through Apple IAP? If both methods are required, must they be displayed on the same screen, or is it sufficient for both to be reasonably accessible within the app? Is the applicable eligibility determined by the user’s App Store storefront rather than their physical location or IP address? Are there any additional disclosures, entitlements, reporting requirements, or App Review notes required for this US-only flow? We would appreciate references to the applicable current guidelines or official Apple documentation. This question concerns only the United States storefront. We understand that external-purchase programs in the EU and other regions have separate requirements. If you can also share about EU rules for web-based payment, that would be great.
0
0
79
1w
Unable to Submit Subscriptions for Review in App Store Connect
Hello, I am trying to submit my In-App Purchase subscriptions for review, but App Store Connect is preventing the submission. I have already created: A subscription group ("Piscineiros Pro") Two auto-renewable subscriptions All required metadata and review screenshots When I open the draft submission, I receive the following message: "Unable to Submit for Review. To submit your items for review, add an app version for the selected platform." However, my app version (iOS 4.8.3) already exists in App Store Connect and was previously submitted for review. I would like to understand: Do I need to create a new app version and upload a new binary before I can submit these subscriptions for review? Is it possible to associate the existing subscriptions with the currently rejected app version? What specific steps are required to submit these In-App Purchase products together with my app review? Thank you for your assistance. Best regards, Luiz Maueski
3
0
424
1w
App unable to load all requested Subscriptions and IAPs
I have two subscription in the same group and the same level 1. One is a monthly one and the other a yearly one. I also have an IAP for Lifetime Unlock. When my app requests for these it only loads Monthly. Debugging reveals that the ASC doesn't return the yearly subscription and the lifetime IAP. When I added a StoreKit config to the app, it correctly show the Yearly subscription as well and the view loads it appropriately. But the storekit config doesn't load IAP. I have checked things several tiles in ASC and in code. What can I do to fix this?
2
0
442
1w
In-App Subscriptions stuck in "Waiting for Review" after App Store Connect maintenance
Hello, We are experiencing an issue with App Store Connect and would like to know if anyone has encountered the same problem. Current status: Our app is already approved and live on the App Store. We created three new auto-renewable subscriptions. All three subscriptions have been stuck in "Waiting for Review" for several days. The subscriptions can no longer be edited (localization and review information are locked). The app review has already been completed, so there is no active app review in progress. During this period, Apple System Status reported an App Store Connect incident affecting submission of In-App Purchases and subscriptions. Since that incident was resolved, the subscriptions are still stuck in Waiting for Review. We have already contacted Apple Support and App Review multiple times but have not yet received any response. Has anyone experienced subscriptions remaining permanently in "Waiting for Review" after the App Store Connect maintenance? Is there anything that can be done from the developer side, or does this require Apple to manually reset the review state? Thank you.
2
0
418
1w
Confuse with in app purchase. Unable to Submit for Review.
I have created some products for in app purchase. But they cant be submitted. Somehow it stays in draft submission. It says: Unable to Submit for Review To submit your items for review, add an app version for the selected platform. But I didnt see where I should add an app version. My app has not launched yet anyway. Should I pass the submitted review first? the app bundle.
0
0
79
1w
Bug: First-time Non-Consumable IAP blocked by missing layout container on iOS Version 2.0.0
I am unable to link my new non-consumable In-App Purchase (idea_think_pro) to my draft update page (iOS 2.0.0).The product is fully configured with required screenshots and metadata, and displays the blue "Add for Review" button. However, clicking it shows the hard validation block: "Your first non-consumable in-app purchase must be submitted with a new app version."Simultaneously, the "In-App Purchases and Subscriptions" section is completely missing from my iOS 2.0.0 version page, even when no app build is attached. I have cleared all active submissions and browser caches. Please manually link Product ID idea_think_pro to App Version 2.0.0 on your database or reset my version layout cache.
2
0
259
1w
ExternalPurchaseCustomLink.isEligible is false on German storefront despite valid EU entitlement
We are implementing StoreKit External Purchase Link for an iOS app distributed in the European Union and are trying to determine whether we are missing a configuration step or encountering a StoreKit server-side eligibility issue. The failure is reproducible in a focused native Swift Xcode project that directly calls StoreKit: let eligible = await ExternalPurchaseCustomLink.isEligible The sample contains no Flutter code, PayPal SDK, networking, or application business logic. Configuration we have verified: The Account Holder accepted the StoreKit External Purchase Link Entitlement Addendum for EU Apps. StoreKit External Purchase Link is enabled and shown as Assigned for the App ID. The regenerated Development provisioning profile contains com.apple.developer.storekit.external-purchase-link = true. The installed app's signed entitlements contain the same value. The application-identifier and team-identifier match the intended App ID and team. The compiled Info.plist contains SKExternalPurchaseCustomLinkRegions with all 27 lowercase EU region codes, including "de". Germany is available for the app in App Store Connect. No local StoreKit Configuration file is enabled. Test environment: Physical iPhone running iOS 26.5.2 (23F84) Xcode 26.6 (17F113) Real German Media & Purchases Apple Account German Sandbox Apple Account StoreKit 2 storefront ID 143443, country code DEU StoreKit 1 also reports country code DEU AppStore.canMakePayments = true AppTransaction verifies in the Sandbox environment Clean build and reinstall using the regenerated Development profile Observed result: ExternalPurchaseCustomLink.isEligible = false For diagnostic purposes only, after observing false eligibility, we also requested both token types: ACQUISITION: StoreKitError.notAvailableInStorefront SERVICES: StoreKitError.notAvailableInStorefront A delayed recheck still reports storefront DEU and isEligible=false. Our production flow does not request tokens unless eligibility is true. We found the similar thread "Unable to enable eligibility for External Purchase Link APIs" (https://developer.apple.com/forums/thread/808349). In that case, the production Media & Purchases account had an unsupported storefront. In our case, both the real Media & Purchases account and the Sandbox account are German, and StoreKit itself reports DEU. We also found "External Purchase in Japan" (https://developer.apple.com/forums/thread/822618), where an Apple App Store Commerce Engineer requested a Feedback Assistant report with a sysdiagnose and screen recording for isEligible=false. Questions: Should ExternalPurchaseCustomLink.isEligible return true in a developer-signed Sandbox build when the entitlement, compiled Info.plist, German storefront, and account conditions are all satisfied, or is TestFlight/App Store approval required? Is there any additional App Store Connect storefront election, entitlement approval, or server-side activation step required beyond the EU addendum, Assigned capability, signed entitlement, and SKExternalPurchaseCustomLinkRegions? If this configuration is complete, could Apple verify whether eligibility has not propagated correctly for the German Development/StoreKit Sandbox environment, and which diagnostics should be included in a Feedback Assistant report? We have also opened a code-level support request and prepared a minimal native Swift reproduction project. Any guidance from StoreKit engineering would be appreciated.
0
0
197
1w
Locate the In-App Purchases and Subscriptions Section in App Store Connect
App Store Connect displays the In-App Purchases and Subscriptions section on your app's version page when your app has an In-App Purchase or subscription with a Ready to Submit status. To locate the In-App Purchases and Subscriptions section: In Apps, select the app you want to view. In the sidebar, select the app version. On the version page, scroll down to the In-App Purchases and Subscriptions section. For more information, see Submit an In-App Purchase.
Replies
0
Boosts
0
Views
2.1k
Activity
Jun ’26
In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
Replies
0
Boosts
0
Views
1k
Activity
Jun ’26
StoreKit storekit_no_response — queryProductDetails returns 0 products despite fully active Paid Apps Agreement
I'm seeing IAPError(code: storekit_no_response, source: app_store, message: "StoreKit: Failed to get response from platform.") when calling queryProductDetails() (via Flutter's in_app_purchase/in_app_purchase_storekit plugin) for all 6 of my app's In-App Purchase products. This happens consistently on a real device (iOS 18.7.9), including after a full device restart. I've followed the entire TN3186 checklist: Paid Apps Agreement: Active Banking: Active Tax Forms: Active Bundle ID matches App Store Connect and Certificates/Identifiers/Profiles In-App Purchase capability is enabled on the App ID All 6 product identifiers match exactly and are attached to the app version under review Pricing is set for all territories on all products None of this resolves the error. This also caused an App Store review rejection citing "In-app purchase products... could not be found in the submitted binary" for the same reason. Bundle ID: com.playadda.playadda Product IDs affected: gems_pack_100, gems_pack_500, gems_pack_1200, premium_monthly, battle_pass_s1, starter_pack Has anyone found a resolution to this specific error beyond the standard TN3186 checklist?
Replies
0
Boosts
0
Views
29
Activity
16h
Transaction.finish() is a no-op on iOS 27 beta 5; purchase() then replays the same transaction forever
Transaction.finish() doesn't clear a transaction on iOS 27 beta 5 — worked correctly through beta 4 — every repeat purchase after the first replays the same transaction with no confirmation sheet and no charge. StoreKit.Transaction.finish() does not clear a transaction on iOS 27 beta 5. The transaction remains in Transaction.unfinished indefinitely, and every subsequent Product.purchase() call for that product returns the same stale transaction instead of starting a new purchase — with no confirmation sheet, no charge, and no way for the app to tell it apart from a genuine purchase. Because the replayed result is .success carrying a VerificationResult that verifies normally, an app has no supported signal that nothing was bought. The only distinguishing traits are that the id and purchaseDate are unchanged and the call returns in ~10ms instead of making a server round-trip. Consequence: a consumable product can be purchased exactly once per device. Every later attempt silently no-ops while appearing to succeed. Steps to Reproduce On a device running iOS 27 beta 5, sign in to a newly created Sandbox Apple Account (Settings → Apps → App Store → Sandbox Account) with no prior purchase history. Install and launch a development build of an app offering a consumable IAP. Confirm Transaction.unfinished is empty. Purchase the consumable. The confirmation sheet appears and the purchase completes normally. await transaction.finish() on the returned transaction. Enumerate Transaction.unfinished again. Purchase the same consumable a second time. Expected Results Step 6: Transaction.unfinished is empty — the transaction was finished. Step 7: a confirmation sheet appears and a new transaction is created, with a new id and a current purchaseDate. Actual Results Step 6: the just-finished transaction is still listed in Transaction.unfinished. Step 7: no confirmation sheet appears. purchase() returns .success in ~0.01s carrying the same transaction — identical id and identical purchaseDate — and nothing is charged. This repeats indefinitely. Re-fetching the transaction from Transaction.unfinished and calling finish() on that instance does not clear it either, so there is no app-side way to drain the queue. Diagnostic Log Virgin sandbox account, empty queue, three consecutive taps on one product: unfinished before tip.small: [] purchase() returned after 18.10s tip.small: id=2000001221113013 purchaseDate=2026-08-13 22:36:26 +0000 --- await transaction.finish() --- unfinished after finishing 2000001221113013: [small#2000001221113013] unfinished before tip.small: [small#2000001221113013] purchase() returned after 0.01s tip.small: id=2000001221113013 purchaseDate=2026-08-13 22:36:26 +0000 unfinished before tip.small: [small#2000001221113013] purchase() returned after 0.01s tip.small: id=2000001221113013 purchaseDate=2026-08-13 22:36:26 +0000 The first call is a genuine purchase (18s round-trip, sheet shown). The transaction survives its own finish(). Calls two and three are replays of it. Notes Not reproducible against a local .storekit configuration in the Simulator, which always presents the confirmation sheet. Requires Apple's sandbox. Also reproduces on a TestFlight build billed to a real Apple ID, where it is worse: TestFlight purchase history cannot be reset, so the affected products stay permanently stuck for that account. It survives deleting and reinstalling the app, and a device reboot. Possibly the same underlying issue as the unanswered report at https://developer.apple.com/forums/thread/808648 (iOS 26/18, Nov 2025). Configuration Device: iPhone 16 Pro Max OS: iOS 27 beta 5 Products: consumable in-app purchases API: StoreKit 2 (Product.purchase(), Transaction.finish(), Transaction.unfinished)
Replies
2
Boosts
0
Views
100
Activity
18h
iOS 27 Beta: StoreKit FinishTransactionRequest repeatedly fails with requestEncodeFailed
I am experiencing a StoreKit issue on iOS 27 Beta with eFootball™ 11.0.0 (jp.konami.pesactionmobile). After an in-app purchase, the app becomes stuck on an infinite loading screen during login. If I manage to log in, the in-game Shop also remains stuck loading. I investigated the issue using macOS Console and found that StoreKit repeatedly attempts to finish the same production transaction every approximately 2–3 seconds. The relevant logs are: Starting request FinishTransactionRequest(...) Failed to encode request parameters NSCocoaErrorDomain Code=3840 Error finishing transaction: StoreKitServiceError StoreKitInternalError.requestEncodeFailed The same transaction is repeatedly passed to FinishTransactionRequest, but the finish operation never succeeds. What I have confirmed The purchase itself was confirmed by Apple Support as successfully completed. The transaction is a Production transaction with the JPN storefront. Reinstalling eFootball does not resolve the issue. Restarting the iPhone does not resolve the issue. Signing out and back into "Media & Purchases" with the affected Apple Account does not resolve the issue. Network requests from the app itself are succeeding with HTTP 200 responses. The issue occurs when StoreKit attempts to finish the transaction. Most importantly, if I sign out of the affected Apple Account under Media & Purchases and sign in with a different Apple Account on the same iPhone, eFootball immediately works normally again — both login and the Shop load successfully. If I switch back to the original Apple Account, the issue returns. Steps to reproduce Use the affected Apple Account for Media & Purchases. Launch eFootball. Attempt to log in. The app remains stuck loading. Observe Console logs from storekitd. The same transaction repeatedly triggers FinishTransactionRequest. Each attempt fails with StoreKitInternalError.requestEncodeFailed. Expected behavior StoreKit should successfully finish the completed transaction, remove it from the unfinished transaction queue, and allow the app to continue normally. Actual behavior FinishTransactionRequest repeatedly fails with requestEncodeFailed, causing the same transaction to be processed indefinitely and preventing normal use of the app. Has anyone encountered the same behavior on iOS 27 Beta? Is this a known StoreKit issue, or is there any way to safely clear/finish the affected production transaction without restoring the device to the current public iOS release?
Replies
0
Boosts
0
Views
39
Activity
19h
Cancel subscription not working in TestFlight
Hi, I have deployed my app on Test Flight, I have two subscriptions, monthly and yearly. User can have one of them at a time and upgrade, downgrade to the other. Upgrade, downgrade, cancel from the Apple Settings worked fine in the sandbox environment when testing locally. Now when I have deployed the app on TestFlight, I was able to purchase the subscription successfully from my app. Now when I want to cancel my subscription from the Apple Settings it gives me the following error after confirming cancellation, 'Your request is temporarily unable to be processed. Please try again later.' Also the other subscription offer (yearly) is also not shown to which I could upgrade, even though in the sandbox I was able to upgrade downgrade from the settings. Another thing I have noticed is that the app Icon or name is not shown anywhere in settings with the subscription. Instead of app icon only empty square is shown. Even though app icon shows fine everywhere else. Can someone please help me figure out this issue?
Replies
23
Boosts
15
Views
4.9k
Activity
1d
Transaction.currentEntitlements returning NULL values
Hi, Overview In my project I am using a .storekit StoreKit configuration file that is synced. I have only non-consumable products Problem When I loop through Transaction.currentEntitlements after verification the properties such as transaction.productType are all NULL. Note I have called .finish on the transaction after the following: Processing Transaction.updates Processing purchasing a new product Environment: Xcode 27 Beta 5 iOS 26.6 Questions How can I resolve this? Am I missing something? Should I be using Transaction.latest(for:) instead of Transaction.currentEntitlements?
Replies
0
Boosts
0
Views
56
Activity
1d
StoreKit 2: Transaction.all and Transaction.currentEntitlements return empty for valid non-consumable purchases in production
FB: https://feedbackassistant.apple.com/feedback/22556883 We're seeing a small number of production users where both Transaction.currentEntitlements and Transaction.all return zero transactions for a valid, active, non-refunded non-consumable IAP. This makes it impossible to restore the purchase via any StoreKit 2 API. Environment: Xcode 26.4 (Build 17E192) iOS 26.4.1 Direct call to SK2 Transactions.all & Flutter in_app_purchase package v3.2.3 (uses SK2 on iOS 15+) Non-consumable IAP (one-time purchase) What we observe: AppStore.sync() triggers but the purchase stream returns 0 transactions Transaction.all returns empty Transaction.currentEntitlements also returns empty User is confirmed on the correct Apple ID Issue reproduces on both iPhone and Mac for the same Apple ID Issue appears to have started recently for users who previously had no problems Debug log from affected production user: [2026-04-20T08:50:10.744115Z] init: iapAvailable=true [2026-04-20T08:50:10.744566Z] init: isPremium=false [2026-04-20T08:50:10.744567Z] init: triggering silent restorePurchases [2026-04-20T08:50:45.974566Z] restore: started [2026-04-20T08:50:45.986848Z] restore: sk2Transactions count=0 [2026-04-20T08:50:45.993004Z] restore: sk2Direct isVerified=false active=null [2026-04-20T08:50:45.993011Z] restore: sk2Direct inconclusive — falling back to standard restore [2026-04-20T08:51:16.000851Z] restore: timed out after 30s — fallback isPremium=false [2026-04-20T08:51:16.000910Z] restore: completed — succeeded=false foundPurchase=false Unable to reproduce in sandbox — Transaction.all works correctly there. Appears specific to production for a small subset of users. Has anyone else seen this?
Replies
24
Boosts
5
Views
2.9k
Activity
1d
Transaction.currentEntitlements and subscription.status both return empty for active production subscription
Product: Auto-renewable annual subscription Environment: Production iOS version: 26.6 StoreKit version: StoreKit 2 I have an active subscription that shows correctly in the App Store app, but neither Transaction.currentEntitlements nor Product.SubscriptionInfo.Status (via subscription.status) return any record of it — both come back empty. What I've checked: Transaction.currentEntitlements — iterated fully, zero transactions found for this product ID Product.SubscriptionInfo.Status — checked independently as a second signal, also returns no active status for this product AppStore.sync() — called before checking entitlements, completes successfully, does not resolve the issue Settings → [Apple ID] → Subscriptions on-device — does not show this subscription "Restore Purchases" in-app — consistently reports nothing found Impact: Since my app gates access behind an active entitlement check, this means the user is stuck on the paywall screen indefinitely, despite having a valid, active, paid subscription. There's no client-side workaround, since every available StoreKit 2 API reports no entitlement exists. Code pattern (simplified): swift for await result in Transaction.currentEntitlements { if case .verified(let transaction) = result, transaction.productID == productID { // never reached for this product } } if let subscription = product.subscription { let statuses = try await subscription.status // statuses is empty / doesn't reflect the active subscription } This looks consistent with the pattern reported in thread 823454, where currentEntitlements and Transaction.all return empty for valid, non-refunded purchases in production for a small number of users. In my case, this is affecting a currently active subscription — not a refunded or expired one — and is reproducible on this account across multiple app builds. Has anyone found a reliable workaround, or is this being tracked by Apple as an active known issue beyond the fix already applied for the non-Gregorian calendar case (which doesn't apply here)?
Replies
0
Boosts
0
Views
50
Activity
1d
StoreKit 2 returns zero subscription products in Sandbox/TestFlight — FB24199369
StoreKit 2 returns zero subscription products in Sandbox/TestFlight — FB24199369 I’m experiencing an issue where StoreKit 2 returns zero subscription products in both Sandbox and TestFlight for my iOS app. App: Bundle ID: com.sleeplessnight.naengbiseo Subscription group: Naengbiseo Premium Product IDs: naengbiseo_premium_monthly naengbiseo_premium_yearly Although the production app uses RevenueCat, I reproduced the same issue in a separate minimal native SwiftUI app using StoreKit 2 directly, with no RevenueCat, Expo, React Native, or other third-party SDK involved. Native StoreKit 2 call: let products = try await Product.products(for: [ "naengbiseo_premium_monthly", "naengbiseo_premium_yearly" ]) Current native test result: STOREKIT_COUNTRY_CODE: KOR STOREKIT_STOREFRONT_ID: 143466 DIRECT_STOREKIT_COUNT: 0 Returned products: None Test environment: Physical iPhone StoreKit Configuration: None Sandbox Apple Account signed in Storefront: KOR In-App Purchase capability enabled Correct Bundle ID and Product IDs I have rechecked the following configuration: The subscriptions are available in the test storefront Subscription pricing is configured Subscription localization is configured Paid Apps Agreement, banking, and tax information are active App ID has In-App Purchase enabled The App Store/TestFlight build has the expected Bundle ID, provisioning, and signing configuration I also created a StoreKit Configuration file using “Sync this file with an app in App Store Connect”. The sync completed, but the resulting configuration contained: products: [] subscriptionGroups: [] The same subscriptions also fail to load in TestFlight. The subscription products currently show Rejected in App Store Connect because the associated app version was rejected. App Store Connect states that the subscriptions were returned because the associated app was rejected and will remain Rejected until resubmitted for review. However, App Review also stated: “In-App Purchase products do not need prior approval to function in review.” I have reviewed TN3186 and have not found a remaining developer-side configuration issue that explains why Product.products(for:) returns zero products. Since the issue reproduces in a minimal native StoreKit 2 app, this does not appear to be caused by RevenueCat or another third-party SDK. Feedback Assistant: FB24199369 Could an App Store Commerce / StoreKit engineer advise whether there is any remaining developer-side configuration that could cause this, or whether the subscription catalog / app association may need to be reprocessed on Apple’s side? Thank you.
Replies
1
Boosts
0
Views
93
Activity
2d
Cannot attach first In-App Purchase to app version — "In-App Purchases or Subscriptions" section missing (repeated 2.1(b) rejections)
Summary: The "In-App Purchases or Subscriptions" selection section does not appear on my app version page, so I cannot attach my first In-App Purchase to my build. This has caused four consecutive Guideline 2.1(b) rejections. Setup: App: Qmetra IQ (Apple ID 6791254506, Bundle ID com.vibecode.qmetraiq.londa9) First app release, never published App version 1.0, current build 1.0.1 (2) Non-consumable IAP: com.vibecode.qmetraiq.londa9.results (Apple ID 6792799431) IAP status: Ready to Submit App Review screenshot for the IAP: uploaded (1242×2688) Paid Apps Agreement signed, banking and tax complete, no open items under Business What I see: On the version page, the "In-App Purchases or Subscriptions" heading exists, but contains only an informational message ("...add an app version to your submission so the items are reviewed together..."). There is no button, link, checkbox, or "+" to select the IAP. The submission draft panel contains only the app version, with no way to add the IAP. Opening the draft from the IAP page shows only the IAP, with the warning "Cannot be submitted for review — add an app version for the selected platform", and the "Submit for Review" button greyed out. What I have tried: Removed the previous rejected submission from review, then rechecked the version page — section still absent Assigned a fresh build (1.0.1 build 2) and saved Re-saved the IAP metadata Resubmitted the app version alone — rejected again under 2.1(b) Replied in the review thread twice — no resolution Rejection reason each time: "one or more of the In-App Purchase products have not been submitted for review." Could an Apple staff member please forward this to App Store Connect Support or engineering so the In-App Purchase can be moved to In Review manually? Several older threads describing this exact bug were only resolved that way. Happy to share more details privately if needed. Thank you.
Replies
1
Boosts
0
Views
85
Activity
2d
In-App Purchases stuck In Review for 3-4 weeks — blocking sales of live content
Hi, I'm hoping someone from App Review can help, as email support has not resolved this. We publish digital magazine apps where each new issue is sold as a separate in-app purchase. Two of our IAPs have now been stuck in "Waiting for Review" / "In Review" for 3-4 weeks, well beyond the normal 24-48 hour turnaround we've seen on previous submissions. Because of this, we are currently unable to sell our product to paying customers. Readers cannot purchase the current issues at all. This is actively affecting live revenue, not just a delayed update. We've already sent two emails to Developer Support with no meaningful response beyond being asked to keep waiting, and a Contact Us request through App Store Connect has not moved things forward either. Could someone from App Review please look into why these specific IAP submissions have been stuck for so long, and help move them forward? I'm happy to provide the App ID / bundle ID and IAP product IDs privately to a verified Apple team member. Thank you for any help you can offer.
Replies
1
Boosts
0
Views
93
Activity
2d
In-App Purchases Stuck on “Ready for Review” After App Submission
Title: In-App Purchases Stuck on “Ready for Review” After App Submission I’m running into an issue in App Store Connect with several consumable In-App Purchases. I have four IAPs that currently show Ready for Review: MetaOp 250k Burst (Free Tier) MetaOp 250k Burst (Paid Tier) MetaOp 500k Burst (Free Tier) MetaOp 500k Burst (Paid Tier) I previously added these IAPs to a submission and later removed them. I have now submitted the app version again, and the app itself is showing Waiting for Review, but these four IAPs are still listed under Drafts as Ready for Review. The issue is that I cannot select them from the In-App Purchases list or attach them to the current submission. They also did not move into the submitted review package when I submitted the app. Has anyone seen this behavior before? Is there a way to reset these IAPs back to Prepare for Submission, or otherwise attach/submit them separately without withdrawing the app version that is already Waiting for Review?
Replies
0
Boosts
0
Views
45
Activity
2d
StoreKit 2: Does Transaction.currentEntitlements get updated when my app isn't running?
TL;DR: Does iOS automatically receive App Store transaction updates in the background when internet connection is available so the backing storage state of Transaction.currentEntitlements gets synced even when my app is not running? Or does iOS update Transaction.currentEntitlements only when my app is running? The long version: Imagine the following situation: A user has purchased a non-consumable IAP in my app and is granted the locked premium content. The IAP transaction is now present in Transaction.currentEntitlements (it's also cached locally). The user blocks internet access every time before my app gets opened (either enables the Airplane mode and/or disconnects from the Wi-Fi before launching my app). So from this point on, my app never gets a chance to connect to the internet. The user gets refunded for the IAP. The user uses their iPhone to browse the internet via Safari, checks emails, etc. Then, before launching my app, the user blocks internet access. My app gets is launched (without internet access) and reads entitlements from Transaction.currentEntitlements. The question is: does the StoreKit service know that the IAP has been refunded? Did iOS update the local cached storage of Transaction.currentEntitlements while the user was connected to the internet in step 4? Or will Transaction.currentEntitlements contain the old state from step 1 so the app won't know about the refund and the user will be able to use my app's premium content which has been refunded by now? Is the behavior the same for auto-renewable subscriptions as it is for non-consumable IAPs?
Replies
0
Boosts
0
Views
108
Activity
5d
I need help/support: its my first ap
Hey, I am trying to submit but I keep getting these 2 errors :-) Unable to Submit for Review Your auto-renewable subscription must be submitted with its subscription group. To submit your items for review, add an app version for the selected platform. Problem is I cannot find where to do this. The UI is appaling.
Replies
3
Boosts
0
Views
392
Activity
6d
Can a non-reader iOS app offer web-only subscription checkout on the US storefront?
We have a non-reader iOS app that sells a subscription unlocking digital features within the app. For users on the United States App Store storefront, we are considering adding a button that opens an external browser and directs the user to a web-based subscription checkout. The completed web purchase would unlock the same digital subscription entitlement in the iOS app. We understand that, following the May 2025 changes to App Review Guidelines 3.1.1 and 3.1.1(a), US storefront apps may include buttons, external links, or calls to action directing users to alternative purchasing methods without requiring the StoreKit External Purchase Link Entitlement. Could someone clarify the following? For a non-reader app on the US storefront, must Apple In-App Purchase remain available alongside the external web checkout? Can the app show only the web-based checkout to US storefront users while continuing to use Apple IAP in other storefronts? Does Guideline 3.1.1 still require every digital subscription available through web checkout to also be available through Apple IAP? If both methods are required, must they be displayed on the same screen, or is it sufficient for both to be reasonably accessible within the app? Is the applicable eligibility determined by the user’s App Store storefront rather than their physical location or IP address? Are there any additional disclosures, entitlements, reporting requirements, or App Review notes required for this US-only flow? We would appreciate references to the applicable current guidelines or official Apple documentation. This question concerns only the United States storefront. We understand that external-purchase programs in the EU and other regions have separate requirements. If you can also share about EU rules for web-based payment, that would be great.
Replies
0
Boosts
0
Views
79
Activity
1w
Unable to Submit Subscriptions for Review in App Store Connect
Hello, I am trying to submit my In-App Purchase subscriptions for review, but App Store Connect is preventing the submission. I have already created: A subscription group ("Piscineiros Pro") Two auto-renewable subscriptions All required metadata and review screenshots When I open the draft submission, I receive the following message: "Unable to Submit for Review. To submit your items for review, add an app version for the selected platform." However, my app version (iOS 4.8.3) already exists in App Store Connect and was previously submitted for review. I would like to understand: Do I need to create a new app version and upload a new binary before I can submit these subscriptions for review? Is it possible to associate the existing subscriptions with the currently rejected app version? What specific steps are required to submit these In-App Purchase products together with my app review? Thank you for your assistance. Best regards, Luiz Maueski
Replies
3
Boosts
0
Views
424
Activity
1w
App unable to load all requested Subscriptions and IAPs
I have two subscription in the same group and the same level 1. One is a monthly one and the other a yearly one. I also have an IAP for Lifetime Unlock. When my app requests for these it only loads Monthly. Debugging reveals that the ASC doesn't return the yearly subscription and the lifetime IAP. When I added a StoreKit config to the app, it correctly show the Yearly subscription as well and the view loads it appropriately. But the storekit config doesn't load IAP. I have checked things several tiles in ASC and in code. What can I do to fix this?
Replies
2
Boosts
0
Views
442
Activity
1w
In-App Subscriptions stuck in "Waiting for Review" after App Store Connect maintenance
Hello, We are experiencing an issue with App Store Connect and would like to know if anyone has encountered the same problem. Current status: Our app is already approved and live on the App Store. We created three new auto-renewable subscriptions. All three subscriptions have been stuck in "Waiting for Review" for several days. The subscriptions can no longer be edited (localization and review information are locked). The app review has already been completed, so there is no active app review in progress. During this period, Apple System Status reported an App Store Connect incident affecting submission of In-App Purchases and subscriptions. Since that incident was resolved, the subscriptions are still stuck in Waiting for Review. We have already contacted Apple Support and App Review multiple times but have not yet received any response. Has anyone experienced subscriptions remaining permanently in "Waiting for Review" after the App Store Connect maintenance? Is there anything that can be done from the developer side, or does this require Apple to manually reset the review state? Thank you.
Replies
2
Boosts
0
Views
418
Activity
1w
Confuse with in app purchase. Unable to Submit for Review.
I have created some products for in app purchase. But they cant be submitted. Somehow it stays in draft submission. It says: Unable to Submit for Review To submit your items for review, add an app version for the selected platform. But I didnt see where I should add an app version. My app has not launched yet anyway. Should I pass the submitted review first? the app bundle.
Replies
0
Boosts
0
Views
79
Activity
1w
Bug: First-time Non-Consumable IAP blocked by missing layout container on iOS Version 2.0.0
I am unable to link my new non-consumable In-App Purchase (idea_think_pro) to my draft update page (iOS 2.0.0).The product is fully configured with required screenshots and metadata, and displays the blue "Add for Review" button. However, clicking it shows the hard validation block: "Your first non-consumable in-app purchase must be submitted with a new app version."Simultaneously, the "In-App Purchases and Subscriptions" section is completely missing from my iOS 2.0.0 version page, even when no app build is attached. I have cleared all active submissions and browser caches. Please manually link Product ID idea_think_pro to App Version 2.0.0 on your database or reset my version layout cache.
Replies
2
Boosts
0
Views
259
Activity
1w
ExternalPurchaseCustomLink.isEligible is false on German storefront despite valid EU entitlement
We are implementing StoreKit External Purchase Link for an iOS app distributed in the European Union and are trying to determine whether we are missing a configuration step or encountering a StoreKit server-side eligibility issue. The failure is reproducible in a focused native Swift Xcode project that directly calls StoreKit: let eligible = await ExternalPurchaseCustomLink.isEligible The sample contains no Flutter code, PayPal SDK, networking, or application business logic. Configuration we have verified: The Account Holder accepted the StoreKit External Purchase Link Entitlement Addendum for EU Apps. StoreKit External Purchase Link is enabled and shown as Assigned for the App ID. The regenerated Development provisioning profile contains com.apple.developer.storekit.external-purchase-link = true. The installed app's signed entitlements contain the same value. The application-identifier and team-identifier match the intended App ID and team. The compiled Info.plist contains SKExternalPurchaseCustomLinkRegions with all 27 lowercase EU region codes, including "de". Germany is available for the app in App Store Connect. No local StoreKit Configuration file is enabled. Test environment: Physical iPhone running iOS 26.5.2 (23F84) Xcode 26.6 (17F113) Real German Media & Purchases Apple Account German Sandbox Apple Account StoreKit 2 storefront ID 143443, country code DEU StoreKit 1 also reports country code DEU AppStore.canMakePayments = true AppTransaction verifies in the Sandbox environment Clean build and reinstall using the regenerated Development profile Observed result: ExternalPurchaseCustomLink.isEligible = false For diagnostic purposes only, after observing false eligibility, we also requested both token types: ACQUISITION: StoreKitError.notAvailableInStorefront SERVICES: StoreKitError.notAvailableInStorefront A delayed recheck still reports storefront DEU and isEligible=false. Our production flow does not request tokens unless eligibility is true. We found the similar thread "Unable to enable eligibility for External Purchase Link APIs" (https://developer.apple.com/forums/thread/808349). In that case, the production Media & Purchases account had an unsupported storefront. In our case, both the real Media & Purchases account and the Sandbox account are German, and StoreKit itself reports DEU. We also found "External Purchase in Japan" (https://developer.apple.com/forums/thread/822618), where an Apple App Store Commerce Engineer requested a Feedback Assistant report with a sysdiagnose and screen recording for isEligible=false. Questions: Should ExternalPurchaseCustomLink.isEligible return true in a developer-signed Sandbox build when the entitlement, compiled Info.plist, German storefront, and account conditions are all satisfied, or is TestFlight/App Store approval required? Is there any additional App Store Connect storefront election, entitlement approval, or server-side activation step required beyond the EU addendum, Assigned capability, signed entitlement, and SKExternalPurchaseCustomLinkRegions? If this configuration is complete, could Apple verify whether eligibility has not propagated correctly for the German Development/StoreKit Sandbox environment, and which diagnostics should be included in a Feedback Assistant report? We have also opened a code-level support request and prepared a minimal native Swift reproduction project. Any guidance from StoreKit engineering would be appreciated.
Replies
0
Boosts
0
Views
197
Activity
1w