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

Refund requests failing in production
We offer an in-app way for customers to request an Apple refund for an auto-renewable subscription using StoreKit2. Everything worked during testing and verification in the Sandbox and TestFlight phases, but now consistently fails in Production. We present the refund sheet on a button press: .refundRequestSheet(for: transactionID, isPresented: $isPresenting) { result in switch result { case .success(let status): // .success / .userCancelled handled here case .failure(let error): // -> .failed for every user } } We log the outcome of all the requests, success and cancel behaves as expected. Since RefundRequestError only has .duplicateRequest .failed and the localizedDescription is generic, we don't know why it is failing. We have already checked that the transaction are for verified, not revoked, non-upgraded and active subscriptions. The issue only happens in Production. Is there any way to get more information about why a refund request fails or what other configuration needs to verified for this to work? Is there an eligibility window or other non-specified limit that might result in these errors?
1
0
682
Jul ’26
Production StoreKit silently omits one approved auto-renewable subscription product — sandbox returns it correctly, sudden onset 2026-05-09
Hi all, Reporting an active production issue in case anyone else is seeing the same pattern, or has insight into what could cause this. Symptom As of 2026-05-09 morning, one specific auto-renewable subscription product is silently absent from Production StoreKit responses on our live App Store build. The product is still 'Approved' in App Store Connect, all metadata is intact, no error code is returned — the product simply does not appear in the products array. The other 3 products in the same subscription group continue to work normally. 100% of production users are affected. Setup App: live on App Store, version 1.0.0 (build 8) Subscription group with 4 auto-renewable products: standard_monthly_799 ✅ returns correctly standard_annual_6999 ✅ returns correctly unlimited_monthly_1299 ❌ MISSING from production response unlimited_annual_9999 ✅ returns correctly SDK: purchases_flutter (RevenueCat) → StoreKit Same physical device, same code, same RC config behaves correctly in Sandbox — all 4 products are returned and a sandbox purchase of unlimited_monthly_1299 succeeds. Timeline 2026-05-08: working correctly, purchases succeeding normally 2026-05-09 morning: product silently disappears from production StoreKit responses No app update was submitted between those dates No App Store Connect changes were made Onset was simultaneous across all production users at one timestamp What I've verified App Store Connect: Product status: Approved All territories enabled, all prices configured (no N/A in any territory) Subscription group correctly contains all 4 products No 'Submit for Review' pending changes Product attached to live app version 1.0.0 (8) Tax category: Match to parent app Family Sharing: Off (consistent with the working products) Paid Applications Agreement: Status: Active Banking and Tax forms: Active RevenueCat dashboard: All 4 products show Store Status: Approved Default offering contains all 4 packages iOS attachment for the affected product is intact No warnings or sync errors Sandbox StoreKit (today): flutter run (debug) on physical device → all 4 products returned flutter run --release on physical device → all 4 products returned Sandbox purchase of unlimited_monthly_1299 succeeds Production StoreKit (today, broken): App Store-downloaded 1.0.0 (8) on multiple users' devices Multiple Apple IDs / multiple devices / multiple regions — all reproduce Only unlimited_monthly_1299 affected; other 3 products fine Why this looks server-side Sudden simultaneous onset across all users No code or config change preceded onset Sandbox unaffected, only Production affected Single product affected, not the whole subscription group or app No error returned — silent omission only Cannot reproduce with locally signed builds, only with App Store-distributed binary This pattern is consistent with a server-side product indexing or fronting issue specific to one product in Production StoreKit. As a developer I don't have visibility into Apple's product-serving infrastructure to investigate further — looking for guidance from anyone who has seen this before. Questions for the community Has anyone else seen a single auto-renewable subscription silently drop out of Production StoreKit responses while remaining Approved in ASC, with no error code returned? Is there any internal product-state flag (beyond what's exposed in the ASC UI) that could cause Production StoreKit to silently omit a product? Anything similar to a hidden 'review hold' or 'price tier reconciliation' state? Has the asymmetry between RevenueCat package identifiers (Standard uses RC's $rc_monthly/$rc_annual default identifiers, Premium uses custom premium_monthly/premium_annual identifiers) ever been implicated in this kind of failure? RC support has been notified, but worth asking publicly. For anyone who has resolved a similar issue: what action ended up clearing it — ASC re-save, RC re-sync, Apple Support escalation, or did it self-resolve after Apple-side cache propagation? Filings in progress ASC Contact Us ticket: filed Apple DTS technical incident: filed RevenueCat support ticket: filed Feedback Assistant report: in progress Will update this thread with the resolution path once we have one. Thanks, — Kin Pong Lo (developer, Alice: AI English Tutor)
1
0
1k
Jul ’26
Guideline 3.1.1 – Consumable IAPs rejected after binary approved; asked for “new binary” though 1.8 already submitted
Hi, We received App Review feedback under Guideline 3.1.1 for our in-app purchases, and we’d appreciate guidance on the expected next step. What we submitted; We created and completed metadata for the new consumable IAPs (pricing, availability, review screenshots, localizations). We uploaded and submitted app version 1.8 with a recent binary (build processed/VALID in App Store Connect). We also submitted the consumable IAPs for review. Outcome: App version 1.8 was approved (currently Pending Developer Release). The consumable IAPs were returned with Developer Action Needed. Our confusion We already uploaded/submitted a new binary (1.8) for this release, and the consumable purchase flows are implemented in that binary (Store / offers). The app binary itself was approved, but the consumable IAPs were rejected with a request for another new binary. For a first-time expansion from Non-Consumable-only to Consumables, is a separate / subsequent binary submission always required even if the approved version already contains the purchase UI?
1
0
296
Jul ’26
Approved in-app purchase not returned by on-device StoreKit (SK1 & SK2), visible on public listing
I have a non-consumable in-app purchase that is Approved and visible on my app's public App Store product page, but on-device StoreKit returns no product for its identifier — for 5+ days now. App: Élec NF C 15-100 — Apple ID 6784323130 — bundle com.comptoirstudio.elec Product ID: elec_pro_avie (non-consumable, 9.99 EUR) What is confirmed correct: IAP status: Approved, Cleared for Sale in all territories Paid Applications Agreement: Active; Banking and Tax forms: complete, nothing pending The IAP appears in the "In-App Purchases" section of my live App Store listing The App Store Server API returns the product correctly (verified via RevenueCat) An In-App Purchase Key (.p8) is configured The failure: On-device SKProductsRequest (StoreKit 1) and Product.products(for:) (StoreKit 2) both return an empty product list for elec_pro_avie Reproduced in production (live v1.1.0/1.2.0) and TestFlight/sandbox Reproduced on multiple devices and Apple IDs (FR and US) Product identifier matches exactly; bundle ID matches This looks like a StoreKit product-catalog sync issue on Apple's side: server-side everything resolves, but the device-facing catalog never serves the product. Could an Apple engineer force a re-sync of this product, or advise what else could block on-device delivery? A TSI/ticket (submitted last Friday) has had no response yet. Thank you.
0
0
106
Jul ’26
In-App Purchase availability for the Russia region - recommended payment approach?
Hello, we are preparing an app that sells digital subscriptions consumed within the app and we fully understand that Guideline 3.1.1 requires such content to be sold through In-App Purchase. Our question concerns one specific case: In-App Purchase does not appear to be available for App Store accounts in the Russia region. For users in that region, what is the compliant way to offer a digital subscription? Would using an approved local third-party payment provider be acceptable when IAP is not available and if so, are there any conditions or entitlements we should be aware of? For all other regions where IAP is available, we plan to use In-App Purchase as required. Thank you! Kind regards
0
0
328
Jul ’26
Promotional offer error while testing with sandbox account
Hello everyone I'm testing promotional offers on for my app. I've setup a product with a promotional offer for it. I've also have our backend developer setup signature generating. However when I tried to purchase the offer from my app, I'm getting the error: `Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x149a7c330 {Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x149a7cba0 {Error Domain=AMSErrorDomain Code=305 "(null)"}}}} ` Also during the purchase process, I noticed the Xcode console printed out this: <SKPaymentQueue: 0x10d3fc210>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=VNM, NSUnderlyingError=0x149a7d320 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed Server canceled the purchase" UserInfo={AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=00008110-0001549C36BA401E, AMSDescription=Purchase Failed, NSDebugDescription=Purchase Failed Server canceled the purchase, AMSServerCorrelationKey=3Y44VA33BIC5CZCH5I7WLTQ5DA, AMSStatusCode=200, AMSServerPayload={ "cancel-purchase-batch" = 1; customerMessage = "Unable to process your request."; dialog = { defaultButton = ok; explanation = "Please try again later.\n\n[Environment: Sandbox]"; initialCheckboxValue = 1; "m-allowed" = 0; message = "Unable to process your request."; okButtonString = OK; }; failureType = ""; "m-allowed" = 0; metrics = { actionUrl = "sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy"; asnState = 0; dialogId = "MZCommerce.SystemError"; eventType = dialog; message = "Unable to process your re"; mtEventTime = "2026-07-15 06:14:16 Etc/GMT"; mtTopic = "xp_ase_payments/appstore_payments_ue"; options = ( OK ); }; pings = ( ); }, AMSFailureReason=Server canceled the purchase}}} Could someone please help me figure out what the problem is? Thanks in advance!.
0
0
108
Jul ’26
In app purchase not available in my country
Hi, I was creating an iOS app for my country Ethiopia that has in app purchase to unlock app features. The apple policy says for such payment, we must use Apple IAP but not external payment methods such as stripe or local. However, in my country, Ethiopia, Apple IAP is not available. My question is can I use local payment methods or guide users on how to pay using available payment methods in the country where Apple IAP is not available? I need to make sure my app is acceptable during review using local payment method just because Apple IAP is not available in my country. Thank you
0
0
325
Jul ’26
In App Purchase UI difference for tvOS
We're seeing differences in the purchase dialog and overall presentation when testing with Sandbox accounts compared to commercially available apps. Are these UI differences are expected and are simply a characteristic of the Sandbox testing environment, or if there are any configuration requirements that affect the purchase sheet appearance? It would be helpful to know whether developers should expect the production purchase UI to match App Store apps once the app is distributed through TestFlight/App Store, or if there are additional factors involved. Sandbox UI Expected UI
0
0
641
Jul ’26
In-App Purchases approved but Product.products(for:) returns empty array — 2+ weeks
My app Side A (Bundle ID: com.sighta.sidea, Apple ID: 6784347458) was approved and released on June 25, 2026. All 4 In-App Purchases have status "Approved" in App Store Connect, but they are not purchasable in the live app. Symptoms: Product.products(for:) returns an empty array in production (StoreKit 2) Console.app / storekitd logs confirm the request reaches Apple's servers but returns 0 products The App Store product page shows no "In-App Purchases" section "Submit for Review" button for the IAPs is grayed out in App Store Connect IAP Product IDs: com.sighta.sidea.pro (Non-Consumable) com.sighta.sidea.tip.small (Consumable) com.sighta.sidea.tip.medium (Consumable) com.sighta.sidea.tip.large (Consumable) What I've tried: Verified all IAP metadata is complete in App Store Connect Tested on multiple devices (iPhone 16, iPhone 17, iOS 26.5) Deleted and reinstalled the app Added retry logic (3 attempts, 3s delay) — no change Opened a Developer Support ticket 2+ weeks ago, no resolution This is a production bug affecting all users — nobody can purchase Pro or leave a tip. Has anyone seen this resolved? Is there a known backend propagation issue? Open ticket: 102927941095
0
0
318
Jul ’26
Time-sensitive launch failing: 1,134 in-app purchases stuck in review for 7 weeks — app already approved, 4 support requests unanswered
Hi App Review team, I'm posting here as a last resort after7 weeks with no movement and 4 unanswered support requests. I'm about to lose my launch window next week and I need someone at Apple to look at this. The situation: App: BMH Themes — App ID 6763770421 — Bundle ID com.bringmedinahome.bmhthemes Version 1.0 (Build 24): reviewed and APPROVED, currently "Ready for Distribution". In-app purchases: 904 are APPROVED, but 1,134 have been stuck in "Waiting for Review" for 7 weeks. The 1,134 stuck items are the exact same type as the 904 already approved — so this is clearly not a content issue. None of the 1,134 show any rejection or "Developer Action Needed" message. Nothing is pending on my side. I have submitted 4 support requests over the past weeks. None received a substantive response. Why this is urgent: My company is now legally registered, my VAT number is being issued, my business bank account is active, and my full marketing campaign is finalized for a launch next week. I cannot launch with 1,134 of my products frozen — releasing a half-empty catalog would waste the entire launch. These stuck in-app purchases are the ONLY remaining blocker. My request: Could someone please check whether these 1,134 in-app purchases are correctly queued, confirm whether there is an internal processing issue, and escalate to the App Review / in-app purchase team? The app is already approved — only these items are stuck. Thank you very much for any help.
1
0
691
Jul ’26
关于申请一次性兑换码的请教
"关于一次性兑换码我有一些疑问,希望大家能帮我解答,谢谢 我的构建版本目前的状态是【等待开发者发布】,现在的状态是不可以申请一次性兑换码的,需要是可分发状态,我想问一下这个可分发状态是属于那个阶段? 是我点了发布之后就是可分发吗,可分发是否就是上线了?如果我点定时发布是不是也是进入到可分发阶段?如果我设定预下载是不是就可以申请一次性兑换码了? 还是说我进行一些其他操作就可以申请正式的一次性兑换码了"
0
0
341
Jul ’26
Non-Consumable IAP stuck in ‘Developer Action Required’ – cannot link to version page
My Non-Consumable IAP was rejected with Guideline 3.1.1 and now has status ‘Developer Action Required’. The problem: On the version page in App Store Connect, the ‘In-App Purchases and Subscriptions’ section does not appear at the bottom. I cannot link the IAP to a new version submission. Every time I submit a new binary, Apple approves the app version but rejects the IAP afterward — even though I have no way to attach it to the version in the first place. This seems to be a circular issue: the IAP doesn’t appear on the version page because of its current status, but the only way to fix the status is to submit it with a new version. Has anyone experienced this and found a solution? Any help appreciated!​​​​​​​​​​​​​​​​
4
0
595
Jul ’26
How can I track origin of a sale?
I work with bloggers who write reviews about my app. I would like to track sales that originate on specific sites so I can pay them commissions, like an affiliate program. For example, if a person discovers our app by reading a review, I would like to give the blogger a URL to the App Store a UTM code so that I can track if the article generates sales of my app. if there is a 3rd party affiliate program management platform or software to do this, I might be open to using it. i’ve tried searching the web and other developers about this. It should be simple but it’s elusive if it’s out there at all.
2
0
1.7k
Jul ’26
Help understanding subscription rejection
I have a macOS app submission that Apple rejected because of the subscription view. The reason given is: One or more auto-renewable subscriptions are marketed in the purchase flow in a way that may mislead or confuse users about the subscription terms or pricing. Specifically: The auto-renewable subscription promotes the free trial, introductory pricing, or introductory period for the subscription more clearly and conspicuously than the billed amount. The rejection pointed to Apple's HIG for In-App Purchases and an the article Auto-renewable subscriptions. The image below shows two exemplars from Apple's HIG and our subscription view (using Apple's SubscriptionStoreView). I am having troubles squaring the reason for our rejection with Apple's own HIG examples. Does anyone know of a difference between our view and Apple's examples that would prompt the rejection? The only thing I can think of is to remove the "Try It Free " by changing the modifier from .subscriptionStoreButtonLabel(.multiline) to .subscriptionStoreButtonLabel(.price) (Meanwhile, Apple's rejection because of the subscription content seems to have broken my ability to sync the StoreKit content in AppStoreConnect with Xcode(?). I am still trying to resolve problem too.)
1
0
511
Jul ’26
Cannot load products in Sandbox
Hi, I'm trying to hook up some test in app purchases to test purchase code between our app and our app's backend. When I try to load products (requestProductData) with my Sandbox account, my product identifiers come back in the invalid product identifiers member of the response. My product says it's in "waiting for review" status in app store connect, and I'm logged in to the app store with my sandbox account on my device. We just accepted the paid apps agreement as well--is there some propagation time to that? The product ID I'm using (both in app store connect and in-app) is test_durable. Do I need to append the package name to that or something? I've dug through the docs and through the forums here and come up empty. I tried using the Xcode storekit test harness and the issue there is that because that doesn't actually talk to the store apis, I can't use that to test my backend correctly validating/processing the transactions. Thanks!
0
0
502
Jul ’26
Free App rejected for violating 3.1.1 Guideline
Apple has repeatedly rejected or iOS app (we have the app on Android as well) for an assumed violation of the IAP guideline. There is nothing to purchase. The app was accepted for almost 3 years without this objection. On the registration screen it said "unlock code" for one field and email for the other. We changed unlock code to User identity and they continued to reject it. I am the point where I may not be employed any longer over the repeated rejections. Each time I have noted the app is free. There is no paid content. This is impacted me, not paid yet, my client, current version is broken on iOS because of a mandatory server API change, and our apps users, who now have a non functioning app. Anyone else run into this, by now seemingly malicious, app review black hole? Did you resolve it?
3
0
567
Jun ’26
StoreKit 2 returns no products for auto-renewable subscriptions in TestFlight
Hi everyone, I’m having an issue where my TestFlight build cannot load auto-renewable subscription products from App Store Connect. The app is built with Flutter and uses StoreKit 2 through an in-app purchase implementation. The same subscription system works correctly on Google Play Billing and returns product details/prices there, but on iOS StoreKit returns no subscription products. I tested this on a real iPhone installed from TestFlight, not from Xcode debug and not using a local StoreKit configuration. The app requests four auto-renewable subscription product IDs. The IDs in code exactly match the product IDs in App Store Connect. The app diagnostics show: Platform: iOS StoreKit mode: StoreKit 2 Store available: true Requested IDs: 4 subscription product IDs Returned IDs: none Missing IDs: all requested product IDs Error source: app_store Error code: storekit_no_response Error message: StoreKit: Failed to get response from platform. Store note: The store accepted the query, but did not return details for these product IDs. Things I have already checked: Product IDs match exactly between Flutter code and App Store Connect Bundle ID matches the App Store Connect app record In-App Purchase capability is enabled Subscriptions are in one subscription group Subscription availability is set for all countries/regions The TestFlight build is installed on a real device Local StoreKit configuration was removed StoreKit reports store availability as true App Store Connect / In-App Purchase keys are configured for backend verification The same product-loading flow works on Google Play The current App Store Connect status for the subscriptions is: Subscriptions: Ready to Submit / Ready for Review Localizations: Prepare for Submission Also, the bank information is not submitted yet. My question is: can StoreKit in TestFlight return subscription product details while the first auto-renewable subscriptions are still only “Ready to Submit” and have not yet been submitted with an app version for review? Or will StoreKit return no products until: The first subscriptions are attached to an app version and submitted for review Subscription localizations are fully prepared/submitted Paid agreements, tax, and banking are fully completed Since StoreKit is available and accepts the product query, but returns zero products, I’m trying to understand whether this is expected App Store Connect behavior or if there is another configuration issue I should check. Thanks.
1
1
1k
Jun ’26
Can Product.products / SKProductsRequest be used only for display metadata when EU storefront uses ExternalPurchaseCustomLink only?
This is a StoreKit / ExternalPurchaseCustomLink clarification. Apple DTS asked me to post the follow-up question here. We are designing an SDK for apps that support EU external purchase. In EU storefronts, the app will use ExternalPurchaseCustomLink only: No App Store In-App Purchase will be offered to users. No Product.purchase() will be called. No SKPaymentQueue.add(_:) will be called. The actual purchase will happen only on our external website through the ExternalPurchaseCustomLink flow. Question: In this EU ExternalPurchaseCustomLink-only setup, is it acceptable and supported to call Product.products(for:) / SKProductsRequest only to fetch product display metadata from App Store Connect? The metadata would only be used to display the product list UI, for example: product title / display name localized price currency / priceLocale formatting information The returned Product / SKProduct would not be used to start an App Store purchase. Or should apps avoid Product.products(for:) / SKProductsRequest entirely in EU storefronts where only ExternalPurchaseCustomLink is offered, and use their own product catalog instead?
1
0
620
Jun ’26
New auto-renewable subscription not appearing in sandbox (getOfferings/StoreKit returns 0) after re-creating the product — new app, not yet approved
I have a new app (first version, not yet approved) with one auto-renewable subscription. Earlier in development, the subscription loaded and I could complete a sandbox purchase (the StoreKit sheet showed "Sandbox", the price, and my sandbox account). To resolve an App Store Connect submission deadlock, I deleted that subscription and created a new one with a new Product ID. Since then, the new subscription does NOT appear in the sandbox: StoreKit returns no products, so getOfferings (via RevenueCat) returns 0 packages — both during App Review and on my own development build signed into a sandbox account. Configuration (all verified): Subscription is "Ready to Submit" / "Waiting for Review" Available in all territories Paid Apps Agreement active; banking and tax complete Bundle ID and shared secret unchanged from when it worked App Review keeps rejecting under Guideline 2.1(b) ("プレミアムをはじめる" / purchase button unresponsive) because the product never loads. Questions: For a newly created IAP on a not-yet-approved app, how long does it take to become available in the sandbox? Is there a known propagation delay (24h+)? Does re-creating the product with a new Product ID reset or delay sandbox availability? Is anything required for a new product to be served in the sandbox before the app's first version is approved? Any guidance appreciated. Thanks!
1
0
633
Jun ’26
Refund requests failing in production
We offer an in-app way for customers to request an Apple refund for an auto-renewable subscription using StoreKit2. Everything worked during testing and verification in the Sandbox and TestFlight phases, but now consistently fails in Production. We present the refund sheet on a button press: .refundRequestSheet(for: transactionID, isPresented: $isPresenting) { result in switch result { case .success(let status): // .success / .userCancelled handled here case .failure(let error): // -> .failed for every user } } We log the outcome of all the requests, success and cancel behaves as expected. Since RefundRequestError only has .duplicateRequest .failed and the localizedDescription is generic, we don't know why it is failing. We have already checked that the transaction are for verified, not revoked, non-upgraded and active subscriptions. The issue only happens in Production. Is there any way to get more information about why a refund request fails or what other configuration needs to verified for this to work? Is there an eligibility window or other non-specified limit that might result in these errors?
Replies
1
Boosts
0
Views
682
Activity
Jul ’26
Production StoreKit silently omits one approved auto-renewable subscription product — sandbox returns it correctly, sudden onset 2026-05-09
Hi all, Reporting an active production issue in case anyone else is seeing the same pattern, or has insight into what could cause this. Symptom As of 2026-05-09 morning, one specific auto-renewable subscription product is silently absent from Production StoreKit responses on our live App Store build. The product is still 'Approved' in App Store Connect, all metadata is intact, no error code is returned — the product simply does not appear in the products array. The other 3 products in the same subscription group continue to work normally. 100% of production users are affected. Setup App: live on App Store, version 1.0.0 (build 8) Subscription group with 4 auto-renewable products: standard_monthly_799 ✅ returns correctly standard_annual_6999 ✅ returns correctly unlimited_monthly_1299 ❌ MISSING from production response unlimited_annual_9999 ✅ returns correctly SDK: purchases_flutter (RevenueCat) → StoreKit Same physical device, same code, same RC config behaves correctly in Sandbox — all 4 products are returned and a sandbox purchase of unlimited_monthly_1299 succeeds. Timeline 2026-05-08: working correctly, purchases succeeding normally 2026-05-09 morning: product silently disappears from production StoreKit responses No app update was submitted between those dates No App Store Connect changes were made Onset was simultaneous across all production users at one timestamp What I've verified App Store Connect: Product status: Approved All territories enabled, all prices configured (no N/A in any territory) Subscription group correctly contains all 4 products No 'Submit for Review' pending changes Product attached to live app version 1.0.0 (8) Tax category: Match to parent app Family Sharing: Off (consistent with the working products) Paid Applications Agreement: Status: Active Banking and Tax forms: Active RevenueCat dashboard: All 4 products show Store Status: Approved Default offering contains all 4 packages iOS attachment for the affected product is intact No warnings or sync errors Sandbox StoreKit (today): flutter run (debug) on physical device → all 4 products returned flutter run --release on physical device → all 4 products returned Sandbox purchase of unlimited_monthly_1299 succeeds Production StoreKit (today, broken): App Store-downloaded 1.0.0 (8) on multiple users' devices Multiple Apple IDs / multiple devices / multiple regions — all reproduce Only unlimited_monthly_1299 affected; other 3 products fine Why this looks server-side Sudden simultaneous onset across all users No code or config change preceded onset Sandbox unaffected, only Production affected Single product affected, not the whole subscription group or app No error returned — silent omission only Cannot reproduce with locally signed builds, only with App Store-distributed binary This pattern is consistent with a server-side product indexing or fronting issue specific to one product in Production StoreKit. As a developer I don't have visibility into Apple's product-serving infrastructure to investigate further — looking for guidance from anyone who has seen this before. Questions for the community Has anyone else seen a single auto-renewable subscription silently drop out of Production StoreKit responses while remaining Approved in ASC, with no error code returned? Is there any internal product-state flag (beyond what's exposed in the ASC UI) that could cause Production StoreKit to silently omit a product? Anything similar to a hidden 'review hold' or 'price tier reconciliation' state? Has the asymmetry between RevenueCat package identifiers (Standard uses RC's $rc_monthly/$rc_annual default identifiers, Premium uses custom premium_monthly/premium_annual identifiers) ever been implicated in this kind of failure? RC support has been notified, but worth asking publicly. For anyone who has resolved a similar issue: what action ended up clearing it — ASC re-save, RC re-sync, Apple Support escalation, or did it self-resolve after Apple-side cache propagation? Filings in progress ASC Contact Us ticket: filed Apple DTS technical incident: filed RevenueCat support ticket: filed Feedback Assistant report: in progress Will update this thread with the resolution path once we have one. Thanks, — Kin Pong Lo (developer, Alice: AI English Tutor)
Replies
1
Boosts
0
Views
1k
Activity
Jul ’26
Guideline 3.1.1 – Consumable IAPs rejected after binary approved; asked for “new binary” though 1.8 already submitted
Hi, We received App Review feedback under Guideline 3.1.1 for our in-app purchases, and we’d appreciate guidance on the expected next step. What we submitted; We created and completed metadata for the new consumable IAPs (pricing, availability, review screenshots, localizations). We uploaded and submitted app version 1.8 with a recent binary (build processed/VALID in App Store Connect). We also submitted the consumable IAPs for review. Outcome: App version 1.8 was approved (currently Pending Developer Release). The consumable IAPs were returned with Developer Action Needed. Our confusion We already uploaded/submitted a new binary (1.8) for this release, and the consumable purchase flows are implemented in that binary (Store / offers). The app binary itself was approved, but the consumable IAPs were rejected with a request for another new binary. For a first-time expansion from Non-Consumable-only to Consumables, is a separate / subsequent binary submission always required even if the approved version already contains the purchase UI?
Replies
1
Boosts
0
Views
296
Activity
Jul ’26
Approved in-app purchase not returned by on-device StoreKit (SK1 & SK2), visible on public listing
I have a non-consumable in-app purchase that is Approved and visible on my app's public App Store product page, but on-device StoreKit returns no product for its identifier — for 5+ days now. App: Élec NF C 15-100 — Apple ID 6784323130 — bundle com.comptoirstudio.elec Product ID: elec_pro_avie (non-consumable, 9.99 EUR) What is confirmed correct: IAP status: Approved, Cleared for Sale in all territories Paid Applications Agreement: Active; Banking and Tax forms: complete, nothing pending The IAP appears in the "In-App Purchases" section of my live App Store listing The App Store Server API returns the product correctly (verified via RevenueCat) An In-App Purchase Key (.p8) is configured The failure: On-device SKProductsRequest (StoreKit 1) and Product.products(for:) (StoreKit 2) both return an empty product list for elec_pro_avie Reproduced in production (live v1.1.0/1.2.0) and TestFlight/sandbox Reproduced on multiple devices and Apple IDs (FR and US) Product identifier matches exactly; bundle ID matches This looks like a StoreKit product-catalog sync issue on Apple's side: server-side everything resolves, but the device-facing catalog never serves the product. Could an Apple engineer force a re-sync of this product, or advise what else could block on-device delivery? A TSI/ticket (submitted last Friday) has had no response yet. Thank you.
Replies
0
Boosts
0
Views
106
Activity
Jul ’26
In-App Purchase availability for the Russia region - recommended payment approach?
Hello, we are preparing an app that sells digital subscriptions consumed within the app and we fully understand that Guideline 3.1.1 requires such content to be sold through In-App Purchase. Our question concerns one specific case: In-App Purchase does not appear to be available for App Store accounts in the Russia region. For users in that region, what is the compliant way to offer a digital subscription? Would using an approved local third-party payment provider be acceptable when IAP is not available and if so, are there any conditions or entitlements we should be aware of? For all other regions where IAP is available, we plan to use In-App Purchase as required. Thank you! Kind regards
Replies
0
Boosts
0
Views
328
Activity
Jul ’26
Promotional offer error while testing with sandbox account
Hello everyone I'm testing promotional offers on for my app. I've setup a product with a promotional offer for it. I've also have our backend developer setup signature generating. However when I tried to purchase the offer from my app, I'm getting the error: `Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x149a7c330 {Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x149a7cba0 {Error Domain=AMSErrorDomain Code=305 "(null)"}}}} ` Also during the purchase process, I noticed the Xcode console printed out this: <SKPaymentQueue: 0x10d3fc210>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=VNM, NSUnderlyingError=0x149a7d320 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed Server canceled the purchase" UserInfo={AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=00008110-0001549C36BA401E, AMSDescription=Purchase Failed, NSDebugDescription=Purchase Failed Server canceled the purchase, AMSServerCorrelationKey=3Y44VA33BIC5CZCH5I7WLTQ5DA, AMSStatusCode=200, AMSServerPayload={ "cancel-purchase-batch" = 1; customerMessage = "Unable to process your request."; dialog = { defaultButton = ok; explanation = "Please try again later.\n\n[Environment: Sandbox]"; initialCheckboxValue = 1; "m-allowed" = 0; message = "Unable to process your request."; okButtonString = OK; }; failureType = ""; "m-allowed" = 0; metrics = { actionUrl = "sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy"; asnState = 0; dialogId = "MZCommerce.SystemError"; eventType = dialog; message = "Unable to process your re"; mtEventTime = "2026-07-15 06:14:16 Etc/GMT"; mtTopic = "xp_ase_payments/appstore_payments_ue"; options = ( OK ); }; pings = ( ); }, AMSFailureReason=Server canceled the purchase}}} Could someone please help me figure out what the problem is? Thanks in advance!.
Replies
0
Boosts
0
Views
108
Activity
Jul ’26
In app purchase not available in my country
Hi, I was creating an iOS app for my country Ethiopia that has in app purchase to unlock app features. The apple policy says for such payment, we must use Apple IAP but not external payment methods such as stripe or local. However, in my country, Ethiopia, Apple IAP is not available. My question is can I use local payment methods or guide users on how to pay using available payment methods in the country where Apple IAP is not available? I need to make sure my app is acceptable during review using local payment method just because Apple IAP is not available in my country. Thank you
Replies
0
Boosts
0
Views
325
Activity
Jul ’26
In App Purchase UI difference for tvOS
We're seeing differences in the purchase dialog and overall presentation when testing with Sandbox accounts compared to commercially available apps. Are these UI differences are expected and are simply a characteristic of the Sandbox testing environment, or if there are any configuration requirements that affect the purchase sheet appearance? It would be helpful to know whether developers should expect the production purchase UI to match App Store apps once the app is distributed through TestFlight/App Store, or if there are additional factors involved. Sandbox UI Expected UI
Replies
0
Boosts
0
Views
641
Activity
Jul ’26
In-App Purchases approved but Product.products(for:) returns empty array — 2+ weeks
My app Side A (Bundle ID: com.sighta.sidea, Apple ID: 6784347458) was approved and released on June 25, 2026. All 4 In-App Purchases have status "Approved" in App Store Connect, but they are not purchasable in the live app. Symptoms: Product.products(for:) returns an empty array in production (StoreKit 2) Console.app / storekitd logs confirm the request reaches Apple's servers but returns 0 products The App Store product page shows no "In-App Purchases" section "Submit for Review" button for the IAPs is grayed out in App Store Connect IAP Product IDs: com.sighta.sidea.pro (Non-Consumable) com.sighta.sidea.tip.small (Consumable) com.sighta.sidea.tip.medium (Consumable) com.sighta.sidea.tip.large (Consumable) What I've tried: Verified all IAP metadata is complete in App Store Connect Tested on multiple devices (iPhone 16, iPhone 17, iOS 26.5) Deleted and reinstalled the app Added retry logic (3 attempts, 3s delay) — no change Opened a Developer Support ticket 2+ weeks ago, no resolution This is a production bug affecting all users — nobody can purchase Pro or leave a tip. Has anyone seen this resolved? Is there a known backend propagation issue? Open ticket: 102927941095
Replies
0
Boosts
0
Views
318
Activity
Jul ’26
Time-sensitive launch failing: 1,134 in-app purchases stuck in review for 7 weeks — app already approved, 4 support requests unanswered
Hi App Review team, I'm posting here as a last resort after7 weeks with no movement and 4 unanswered support requests. I'm about to lose my launch window next week and I need someone at Apple to look at this. The situation: App: BMH Themes — App ID 6763770421 — Bundle ID com.bringmedinahome.bmhthemes Version 1.0 (Build 24): reviewed and APPROVED, currently "Ready for Distribution". In-app purchases: 904 are APPROVED, but 1,134 have been stuck in "Waiting for Review" for 7 weeks. The 1,134 stuck items are the exact same type as the 904 already approved — so this is clearly not a content issue. None of the 1,134 show any rejection or "Developer Action Needed" message. Nothing is pending on my side. I have submitted 4 support requests over the past weeks. None received a substantive response. Why this is urgent: My company is now legally registered, my VAT number is being issued, my business bank account is active, and my full marketing campaign is finalized for a launch next week. I cannot launch with 1,134 of my products frozen — releasing a half-empty catalog would waste the entire launch. These stuck in-app purchases are the ONLY remaining blocker. My request: Could someone please check whether these 1,134 in-app purchases are correctly queued, confirm whether there is an internal processing issue, and escalate to the App Review / in-app purchase team? The app is already approved — only these items are stuck. Thank you very much for any help.
Replies
1
Boosts
0
Views
691
Activity
Jul ’26
关于申请一次性兑换码的请教
"关于一次性兑换码我有一些疑问,希望大家能帮我解答,谢谢 我的构建版本目前的状态是【等待开发者发布】,现在的状态是不可以申请一次性兑换码的,需要是可分发状态,我想问一下这个可分发状态是属于那个阶段? 是我点了发布之后就是可分发吗,可分发是否就是上线了?如果我点定时发布是不是也是进入到可分发阶段?如果我设定预下载是不是就可以申请一次性兑换码了? 还是说我进行一些其他操作就可以申请正式的一次性兑换码了"
Replies
0
Boosts
0
Views
341
Activity
Jul ’26
Our sandbox accounts don't work now.
Our sandbox accounts don't work now. We are testing our IAP product now, so we needed our sandbox accounts to be logged in, for purchaise test. Settings -> Developer -> Sandbox Apple Account screen - > log in : Not working Logged out status -> test app -> purchasing IAP product : Not working our 4 members of dev team have same problem now.
Replies
0
Boosts
0
Views
497
Activity
Jul ’26
Non-Consumable IAP stuck in ‘Developer Action Required’ – cannot link to version page
My Non-Consumable IAP was rejected with Guideline 3.1.1 and now has status ‘Developer Action Required’. The problem: On the version page in App Store Connect, the ‘In-App Purchases and Subscriptions’ section does not appear at the bottom. I cannot link the IAP to a new version submission. Every time I submit a new binary, Apple approves the app version but rejects the IAP afterward — even though I have no way to attach it to the version in the first place. This seems to be a circular issue: the IAP doesn’t appear on the version page because of its current status, but the only way to fix the status is to submit it with a new version. Has anyone experienced this and found a solution? Any help appreciated!​​​​​​​​​​​​​​​​
Replies
4
Boosts
0
Views
595
Activity
Jul ’26
How can I track origin of a sale?
I work with bloggers who write reviews about my app. I would like to track sales that originate on specific sites so I can pay them commissions, like an affiliate program. For example, if a person discovers our app by reading a review, I would like to give the blogger a URL to the App Store a UTM code so that I can track if the article generates sales of my app. if there is a 3rd party affiliate program management platform or software to do this, I might be open to using it. i’ve tried searching the web and other developers about this. It should be simple but it’s elusive if it’s out there at all.
Replies
2
Boosts
0
Views
1.7k
Activity
Jul ’26
Help understanding subscription rejection
I have a macOS app submission that Apple rejected because of the subscription view. The reason given is: One or more auto-renewable subscriptions are marketed in the purchase flow in a way that may mislead or confuse users about the subscription terms or pricing. Specifically: The auto-renewable subscription promotes the free trial, introductory pricing, or introductory period for the subscription more clearly and conspicuously than the billed amount. The rejection pointed to Apple's HIG for In-App Purchases and an the article Auto-renewable subscriptions. The image below shows two exemplars from Apple's HIG and our subscription view (using Apple's SubscriptionStoreView). I am having troubles squaring the reason for our rejection with Apple's own HIG examples. Does anyone know of a difference between our view and Apple's examples that would prompt the rejection? The only thing I can think of is to remove the "Try It Free " by changing the modifier from .subscriptionStoreButtonLabel(.multiline) to .subscriptionStoreButtonLabel(.price) (Meanwhile, Apple's rejection because of the subscription content seems to have broken my ability to sync the StoreKit content in AppStoreConnect with Xcode(?). I am still trying to resolve problem too.)
Replies
1
Boosts
0
Views
511
Activity
Jul ’26
Cannot load products in Sandbox
Hi, I'm trying to hook up some test in app purchases to test purchase code between our app and our app's backend. When I try to load products (requestProductData) with my Sandbox account, my product identifiers come back in the invalid product identifiers member of the response. My product says it's in "waiting for review" status in app store connect, and I'm logged in to the app store with my sandbox account on my device. We just accepted the paid apps agreement as well--is there some propagation time to that? The product ID I'm using (both in app store connect and in-app) is test_durable. Do I need to append the package name to that or something? I've dug through the docs and through the forums here and come up empty. I tried using the Xcode storekit test harness and the issue there is that because that doesn't actually talk to the store apis, I can't use that to test my backend correctly validating/processing the transactions. Thanks!
Replies
0
Boosts
0
Views
502
Activity
Jul ’26
Free App rejected for violating 3.1.1 Guideline
Apple has repeatedly rejected or iOS app (we have the app on Android as well) for an assumed violation of the IAP guideline. There is nothing to purchase. The app was accepted for almost 3 years without this objection. On the registration screen it said "unlock code" for one field and email for the other. We changed unlock code to User identity and they continued to reject it. I am the point where I may not be employed any longer over the repeated rejections. Each time I have noted the app is free. There is no paid content. This is impacted me, not paid yet, my client, current version is broken on iOS because of a mandatory server API change, and our apps users, who now have a non functioning app. Anyone else run into this, by now seemingly malicious, app review black hole? Did you resolve it?
Replies
3
Boosts
0
Views
567
Activity
Jun ’26
StoreKit 2 returns no products for auto-renewable subscriptions in TestFlight
Hi everyone, I’m having an issue where my TestFlight build cannot load auto-renewable subscription products from App Store Connect. The app is built with Flutter and uses StoreKit 2 through an in-app purchase implementation. The same subscription system works correctly on Google Play Billing and returns product details/prices there, but on iOS StoreKit returns no subscription products. I tested this on a real iPhone installed from TestFlight, not from Xcode debug and not using a local StoreKit configuration. The app requests four auto-renewable subscription product IDs. The IDs in code exactly match the product IDs in App Store Connect. The app diagnostics show: Platform: iOS StoreKit mode: StoreKit 2 Store available: true Requested IDs: 4 subscription product IDs Returned IDs: none Missing IDs: all requested product IDs Error source: app_store Error code: storekit_no_response Error message: StoreKit: Failed to get response from platform. Store note: The store accepted the query, but did not return details for these product IDs. Things I have already checked: Product IDs match exactly between Flutter code and App Store Connect Bundle ID matches the App Store Connect app record In-App Purchase capability is enabled Subscriptions are in one subscription group Subscription availability is set for all countries/regions The TestFlight build is installed on a real device Local StoreKit configuration was removed StoreKit reports store availability as true App Store Connect / In-App Purchase keys are configured for backend verification The same product-loading flow works on Google Play The current App Store Connect status for the subscriptions is: Subscriptions: Ready to Submit / Ready for Review Localizations: Prepare for Submission Also, the bank information is not submitted yet. My question is: can StoreKit in TestFlight return subscription product details while the first auto-renewable subscriptions are still only “Ready to Submit” and have not yet been submitted with an app version for review? Or will StoreKit return no products until: The first subscriptions are attached to an app version and submitted for review Subscription localizations are fully prepared/submitted Paid agreements, tax, and banking are fully completed Since StoreKit is available and accepts the product query, but returns zero products, I’m trying to understand whether this is expected App Store Connect behavior or if there is another configuration issue I should check. Thanks.
Replies
1
Boosts
1
Views
1k
Activity
Jun ’26
Can Product.products / SKProductsRequest be used only for display metadata when EU storefront uses ExternalPurchaseCustomLink only?
This is a StoreKit / ExternalPurchaseCustomLink clarification. Apple DTS asked me to post the follow-up question here. We are designing an SDK for apps that support EU external purchase. In EU storefronts, the app will use ExternalPurchaseCustomLink only: No App Store In-App Purchase will be offered to users. No Product.purchase() will be called. No SKPaymentQueue.add(_:) will be called. The actual purchase will happen only on our external website through the ExternalPurchaseCustomLink flow. Question: In this EU ExternalPurchaseCustomLink-only setup, is it acceptable and supported to call Product.products(for:) / SKProductsRequest only to fetch product display metadata from App Store Connect? The metadata would only be used to display the product list UI, for example: product title / display name localized price currency / priceLocale formatting information The returned Product / SKProduct would not be used to start an App Store purchase. Or should apps avoid Product.products(for:) / SKProductsRequest entirely in EU storefronts where only ExternalPurchaseCustomLink is offered, and use their own product catalog instead?
Replies
1
Boosts
0
Views
620
Activity
Jun ’26
New auto-renewable subscription not appearing in sandbox (getOfferings/StoreKit returns 0) after re-creating the product — new app, not yet approved
I have a new app (first version, not yet approved) with one auto-renewable subscription. Earlier in development, the subscription loaded and I could complete a sandbox purchase (the StoreKit sheet showed "Sandbox", the price, and my sandbox account). To resolve an App Store Connect submission deadlock, I deleted that subscription and created a new one with a new Product ID. Since then, the new subscription does NOT appear in the sandbox: StoreKit returns no products, so getOfferings (via RevenueCat) returns 0 packages — both during App Review and on my own development build signed into a sandbox account. Configuration (all verified): Subscription is "Ready to Submit" / "Waiting for Review" Available in all territories Paid Apps Agreement active; banking and tax complete Bundle ID and shared secret unchanged from when it worked App Review keeps rejecting under Guideline 2.1(b) ("プレミアムをはじめる" / purchase button unresponsive) because the product never loads. Questions: For a newly created IAP on a not-yet-approved app, how long does it take to become available in the sandbox? Is there a known propagation delay (24h+)? Does re-creating the product with a new Product ID reset or delay sandbox availability? Is anything required for a new product to be served in the sandbox before the app's first version is approved? Any guidance appreciated. Thanks!
Replies
1
Boosts
0
Views
633
Activity
Jun ’26