StoreKit

RSS for tag

Support in-app purchases and interactions with the App Store using StoreKit.

Posts under StoreKit tag

200 Posts

Post

Replies

Boosts

Views

Activity

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?
19
3
928
5h
error occured when to use apple in app purchase
Hi, I got the error( IAPError(code: storekit_no_response, source: app_store, message: StoreKit: Failed to get response from platform., details: null) ) when run the code ( final InAppPurchase _iap = InAppPurchase.instance; Set kids = {‘some_available_product_id’} _iap.queryProductDetails(_kIds); ) from flutter I don’t know why this happened, can you let me know this?
0
0
28
9h
App Subscription "Confirm with Apple Device" UI
My tvOS app includes the purchase of subscriptions, and I am updating the code with Storekit 2.0. I have seen other apps that present the "Confirm with Apple Device" UI upon selection of a product, but for me I only ever see an alert confirming the purchase. I have tested this using Xcode storekit data and a sandbox account. I have also attempted using Storekit views and passing the UIWindowScene to the purchase(confirmIn: ) parameter, but neither made any difference. Is there some limitation that prevents that UI from showing in debug builds?
0
0
35
12h
Can I use Product.products(for:) for display-only on EU storefronts with External Purchase?
I'm implementing EU external purchase using ExternalPurchaseCustomLink. No IAP transactions are offered on EU storefronts — payment happens entirely on our external website. I want to call Product.products(for:) on EU storefronts solely to fetch localized product metadata (displayName, displayPrice, currency formatting) for display. Product.purchase() will never be called. Is it acceptable to use Product.products(for:) for read-only product info display on EU storefronts where only external purchase is offered?
1
0
95
13h
Promoted In-App Purchase not loading during App Review: “Donation product is not available yet”
Hello Apple Developer Community, My iOS app was rejected during App Review because the promoted In-App Purchase donation product showed this error: “Donation product is not available yet” App Review details: Device: iPad Air 11-inch (M3) OS: iPadOS 26.4.2 Internet connection: Active Last reviewed build: 1.0.0 (1) App is iPhone only In-App Purchase type: Consumable donation product The app uses StoreKit to load the donation product from App Store Connect. On my side, the product is configured in App Store Connect and works during testing, but App Review reported that the product was not available when they tested it. I would like to confirm the correct setup for a promoted In-App Purchase / donation product before resubmitting the app. Questions: My In-App Purchase product, which is added under In-App Purchase Information in App Store Connect, is currently showing the status “Waiting for Review” while my app build has been submitted for review. Could this be the reason my app is showing the following StoreKit error? “Check the local StoreKit configuration or App Store Connect setup for com.xxxxxxxxx.xxx.xxxx.” I would like to confirm whether an IAP product that is still “Waiting for Review” can be loaded by App Review during testing, or whether it must be approved together with the app before StoreKit can return the product successfully. The product ID in my app matches the product ID in App Store Connect, and the app uses StoreKit to load the product. Can App Review test a promoted In-App Purchase before the app itself is approved? Is there any delay after creating or editing an In-App Purchase before it becomes available to App Review? For an iPhone-only app reviewed on iPad, can this affect StoreKit product loading or promoted In-App Purchase availability? Any guidance on the correct App Store Connect setup would be appreciated. Thank you.
1
0
124
20h
StoreKit Product.products(for:) returns empty / fails during App Review
Hi, My macOS app was rejected because the reviewer saw "Couldn't load purchase options" on the paywall. The same build works correctly for me. Product.products(for:) either throws or returns an empty array, triggering the error UI. Has anyone else experienced this specifically during App Review? Is there anything specific about the review environment that could cause StoreKit to fail to fetch products? Thank you.
1
0
56
1d
Clarification on App Store Review Guideline for multi-person subscription model
Hi everyone, I am working on an iOS app with a subscription-based model, and I need some clarification regarding App Store Review Guideline. The app allows one account holder to manage access for multiple people under the same account. Each person may need subscription-based access to certain digital features within the app. In this scenario, the subscription requirement is not limited to a single user under one Apple ID. The account holder may add multiple members/dependents, and access may vary based on the subscription status associated with those people. My question is: If the subscription is managed through our backend and the app locks or unlocks digital features based on that subscription status, would Apple consider this a violation for not using In-App Purchase? I would like to understand whether Apple expects In-App Purchase to be implemented in this type of multi-person subscription model, even when the subscription is managed at the account/member level rather than as a simple single-user plan. Any guidance or experience with similar review scenarios would be helpful. Thanks.
1
0
38
1d
"Unable to Manage Sandbox Test Account - Popup Closes on 'Manage' Click"
Issue: Sandbox test account stuck in a loop when trying to access account management Environment: iOS version: [iOS 26.4.2] Device: iPhone 12 Steps to Reproduce: Created sandbox test credentials on Apple Developer site (App Store Connect → Users and Access → Sandbox → Testers) On iPhone, navigated to Settings → Developer → Sandbox Apple Account Clicked "Sign In" and entered sandbox test email and password Successfully verified using verification codes (both email and phone number) Clicked on the signed-in sandbox account A popup appears with "Manage" option Clicked "Manage" Expected Behavior:- Should open sandbox account management interface Actual Behavior:- Popup immediately closes and the same popup reappears. Clicking "Manage" again produces the same result - an endless loop preventing access to account management. Has anyone encountered this issue with sandbox test accounts? Is there a known workaround or fix for this behavior?
0
1
45
1d
StoreKit 2: currentEntitlements fails for Thai users on iOS 26
On devices configured to use the Buddhist calendar (primarily Thai users) Transaction.currentEntitlements returns an empty async sequence even when the customer holds a legitimate, non-revoked, non-expired entitlement for a non-consumable in-app purchase or subscription. The same transaction is correctly returned by Transaction.all. Switching the device calendar back to Gregorian immediately restores correct behavior: the entitlement is yielded by currentEntitlements again. No reinstall, sign-out, or AppStore.sync() is required. The defect is purely client-side, deterministic, and reproducible at will. Is this a known bug introduced in iOS 26? It is causing me significant problems with in-app purchase validation and restore flows in that market. Is anyone else experiencing this issue?
1
1
196
3d
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)
0
0
54
3d
Free trial for one-time purchase: Is the $0 IAP workaround still recommended in 2026?
[Repost: Somehow my original thread from Jan was deleted. I called dev support and they said to post again, if there's a better channel to get answer for this, please let me know.] I’m an indie dev with a paid, one-time-purchase app (Dash Calc, $4 USD), and sales have been rough. In a crowded category, an upfront-paid app feels like a tough sell without a way to try it first. I’d like to offer a simple 7-day free trial followed by a single lifetime purchase, but App Store Connect still doesn’t officially support trials for paid apps. In Jan 2023, an App Store Commerce Engineer recommended the $0 non-consumable IAP + paid non-consumable IAP workaround: https://developer.apple.com/forums/thread/722874 I haven’t implemented it yet, but the subsequent discussion suggests the approach is overly complex. Handling refunds, reinstalls, activation timing, and purchase history requires non-obvious logic, and some developers report customer confusion and drop-off when presented with a $0 trial IAP. Has anything improved since 2023? Any new StoreKit APIs or App Store Connect changes that make this simpler or less error-prone? Is the $0 non-consumable IAP still the recommended approach in 2026? Any updated policy guidance for time-limited access on one-time purchases? I’m happy to use the workaround if it’s still the official path—I just want to confirm there isn’t a better option now.
6
0
263
4d
Unlocking a demo mode without IAP
I am aware of the following in the App Review Guidelines; 3.1.1 If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc. The app itself operates normally, but imposes limits after a limited time of use. Purchasing the full version removes these limits. This is a one-time IAP, not a subscription. My app is aimed at professionals within the entertainment industry, and will only ever be used within a theatre or other similar venue. I do not intend to provide any other paid route to the full version than via the App Store. However, what I would like to do is provide free use at certain events and to students in their educational venues (e.g. college theatres etc)- is it acceptable to use an external mechanism (e.g. a server based API) to temporarily remove the limitations whilst in that venue? Or, likewise, provide an extension to the free trial period for specific uses. Note this is not a purchase, as there is no payment. Therefore there is no revenue outside of the App Store (which surely is the point of the mandate to use IAP for this purpose) Also, it's not fully 'unlocking' the app (the user doesn't get the full version, they just aren't bound by the trial limit timer when within that venue or for a limited time) I'm aware that another route would be to put a different version of the app in the store that requires a username and password for use (for example) and then provide those credentials to log in - as there's lots of apps that follow that model, but it seems clunky to require the user to download a different app.
1
0
185
4d
Transaction.currentEntitlements returns empty for offer code subscriptions redeemed via Safari
Users who redeemed offer codes via the Safari URL template (apps.apple.com/redeem?ctx=offercodes&id=...) have active subscriptions confirmed in iPhone Settings → Subscriptions (expiring April 2027). However, Transaction.currentEntitlements returns zero results in the app. AppStore.sync() has been called. Transaction.all also returns no Production transactions. The offer “Radius Inner Circle” is configured as: Free for the first year, does not auto-renew, and is tied to a yearly auto-renewable subscription product. Approximately 20 production users are affected. The subscription exists on Apple’s servers but never appears in the StoreKit 2 local transaction database. Is there a known issue with offer codes redeemed via Safari not populating Transaction.currentEntitlements? Is there an alternative API to query subscription status server-side? App ID: 6760574186 Bundle ID: com.michaelhills.Radius
1
0
96
5d
Store Kit 2 iOS system purchase confirmation dialog not consistent.
I'm running into an issue where it appears the product transaction is being cached and not showing a new iOS system popup dialog to confirm the purchase. This is affecting testing, and I need a solution to have iOS issue a new purchase transaction every time. Here's what happens, I call the following which always succeeds. try await product.purchase(options: [.appAccountToken(appToken)]) I'm signed into a developer sandbox account with a resubscribe every 5 minutes. After cancelling a subscription, I attempt to resubscribe using the same code as above. Frequently, the code executes without iOS showing the popup system dialog to confirm the purchaser. After waiting a period of time, iOS then resets itself and allows me to purchase again. What I want is an option the forces the iOS system confirm purchase dialog to show up every time the code executes. How do I fix this? iOs 26.4.1, iPhone 17 Pro.
1
0
133
5d
Korea subscription consent: Timing mismatch between push notifications and Settings consent option
Hi all, I've been observing what appears to be a timing mismatch in how Apple handles Korea trial-to-paid consent, and I wanted to see if other developers are seeing the same thing. Per Korean regulations effective Feb 14, 2025, Apple must obtain explicit user consent before converting a free trial to a paid subscription. Apple handles this via email, push notifications, and an in-app consent option accessible from Settings > Subscriptions. For a 7-day trial in the Republic of Korea storefront, I'm observing: Consent push notifications (Agree to continue your subscription without interruption) start arriving ~1 day after trial redemption, at roughly hourly frequency. However, when the user taps the push and navigates to Settings > Subscriptions, there is no consent option available. The only visible action is "Cancel Free Trial". The consent option only becomes available around day 4 of the trial (i.e., 3 days before renewal, matching Apple's documented messaging cadence [1]). For the first ~3 days, users receive hourly push notifications they cannot act on. The only way to stop them is to cancel the subscription entirely. This is happening across multiple apps in the Korean App Store, so it appears to be a platform-level behavior rather than an app-specific issue. Is anyone else observing this behavior? Any insight from Apple engineers or other developers would be greatly appreciated. [1] https://developer.apple.com/help/app-store-connect/reference/in-app-purchases-and-subscriptions/consent-for-subscription-offer-conversions
1
0
196
5d
Auto-renewable subscription showing as "One-time charge" on live app — blocking all installs (case 102883643138 unanswered for 6 days)
Our live production app Padel Club Pro (Apple ID 6763061435, Bundle ID com.padelclubpro.app) has been blocked from all new installs since launch due to StoreKit incorrectly displaying our auto-renewable subscription as a "One-time charge" on the App Store install sheet. The issue: Tapping the install button on the App Store opens the StoreKit purchase confirmation sheet showing "R499.99 / One-time charge" instead of presenting the app as a free download with the subscription available in-app. The app's base price is set to Free in App Store Connect. The subscription is approved and configured correctly as auto-renewable. Subscription details: Product ID: com.padelclubpro.app.monthly Status: Approved Subscription Duration: 1 month Introductory Offer: Free for the first week (active across 175 countries) What I've verified: App base price is set to Free Paid Applications Agreement is fully signed and active (tax forms, banking complete) No phantom non-consumable IAPs exist (In-App Purchases section is empty) RevenueCat App-Specific Shared Secret is set correctly RevenueCat product mapping correctly points $rc_monthly to the subscription product Reproduced on multiple physical devices using multiple different Apple IDs (none had previously interacted with the app) Issue has persisted for 6+ days, ruling out CDN propagation delay Apple Support case: Filed case 102883643138 six days ago — only received automated confirmation, no response since despite two follow-up emails. Suspected cause: The auto-renewable subscription appears to be approved as a standalone product but is not properly bound to the live build/version on Apple's StoreKit servers, causing StoreKit to fall back to a default "One-time charge" display. Question: Has anyone encountered this before? Is there a known fix on the developer side, or does this require Apple engineering to re-bind the subscription server-side? Any guidance on how to escalate the support case would be appreciated — this is a critical production-blocking issue and we have not been able to acquire a single user since launch. Thank you in advance.
1
0
61
5d
Tesflight eCommerce error, Beta testers outside the US, for our MacOS App, are being told their ID is not valid in the US Store
Beta testers outside the US, for our MacOS App, are being told their ID is not valid in the US Store and that they must switch to a store in their country. Yet the store switch fails Essentially beta testers outside the US cannot do testflight sandbox eCommerce for the Mac version of our app. Note that eCommerce on the Mac works for US based testers and eCommerce for the iOS/iPadOS works for testers in all territories. Many of these testers are in India, the UK and Canada. We believe that this is incorrect, that storeKit is not correctly detecting the AppStore Region for mac based testflight eCommerce. At this point we have 382 testers, most outside the US and we can only Beta Test our app with US users. Attached are images of the messages that are coming from storeKit: Here is a link to a video from a user in Canada who is demonstrating the problem (cut and paste into browser) https://youtu.be/kB818wfVld4 Here is another link to a video from a user in Canada who is demonstrating the problem (cut and paste into browser). https://youtu.be/7uAZKo8wpfU We see that there is another post with a similar problem. Similar eCommerce Problem Because eCommerce works in all territories on iOS/iPadOS but ONLY in the US for Mac we suspect that this is an error that either a DBA or a coder will need to fix. Any insights from anyone would be appreciated.
14
5
1.9k
5d
Apple Media Services T&C pop-up
I had published an App, and my app has App Clip supported. The issue I faced is that I had received complaints where the user keep seeing the pop up "Apple Media Services Terms and Conditions Have Changed" when user clicked on the "Open" Button in the App Clip. What we had tried so far: Let user switch the Apple Id's region to our supported region. Let user try to log out and log in to Apple Id within the supported region.
3
0
425
1w
SKStoreReviewController requestReviewInScene: does not display review prompt in debug builds on iOS 26.5 beta (23F5043k)
[SKStoreReviewController requestReviewInScene:] no longer displays the review prompt in debug/development builds on iOS 26.5 beta (23F5043k and 23F5043g). According to Apple's documentation, the review prompt should always appear in debug builds to facilitate testing. This was working in previous iOS versions (iOS 26.4 and older). Steps to reproduce: Run app from Xcode in debug configuration on a device running iOS 26.5 beta (23F5043k or 23F5043g) Call [SKStoreReviewController requestReviewInScene:windowScene] with a valid, foreground-active UIWindowScene Observe that the method executes without error (scene is valid per NSLog) but no review prompt appears Expected: Review prompt should display in debug builds Actual: No prompt appears, despite the scene being valid and foreground-active This worked correctly on previous iOS versions (26.4) so looks like this bug was introduced in 26.5 Beta versions. I have already filed a bug report in Feedback Assistant with number: FB22445620
4
0
355
1w
External purchase region
Hi everyone, I have a question regarding App Store subscriptions and tax country / storefront changes. If a customer originally purchased a subscription while their App Store country was France (so we reported France as the tax country), and later updates or renews that same subscription while located in Hungary, which country should we report going forward? Should we continue using the original country (France)? Or should we start sending the new country (Hungary) once it changes? Also, what happens if the customer changes their App Store region entirely, for example from France to the US? How is Apple’s commission calculated after the region change? If anyone has experience with this scenario or knows the official Apple behavior, I’d really appreciate your help. Thanks!
2
0
182
1w
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
19
Boosts
3
Views
928
Activity
5h
error occured when to use apple in app purchase
Hi, I got the error( IAPError(code: storekit_no_response, source: app_store, message: StoreKit: Failed to get response from platform., details: null) ) when run the code ( final InAppPurchase _iap = InAppPurchase.instance; Set kids = {‘some_available_product_id’} _iap.queryProductDetails(_kIds); ) from flutter I don’t know why this happened, can you let me know this?
Replies
0
Boosts
0
Views
28
Activity
9h
App Subscription "Confirm with Apple Device" UI
My tvOS app includes the purchase of subscriptions, and I am updating the code with Storekit 2.0. I have seen other apps that present the "Confirm with Apple Device" UI upon selection of a product, but for me I only ever see an alert confirming the purchase. I have tested this using Xcode storekit data and a sandbox account. I have also attempted using Storekit views and passing the UIWindowScene to the purchase(confirmIn: ) parameter, but neither made any difference. Is there some limitation that prevents that UI from showing in debug builds?
Replies
0
Boosts
0
Views
35
Activity
12h
Can I use Product.products(for:) for display-only on EU storefronts with External Purchase?
I'm implementing EU external purchase using ExternalPurchaseCustomLink. No IAP transactions are offered on EU storefronts — payment happens entirely on our external website. I want to call Product.products(for:) on EU storefronts solely to fetch localized product metadata (displayName, displayPrice, currency formatting) for display. Product.purchase() will never be called. Is it acceptable to use Product.products(for:) for read-only product info display on EU storefronts where only external purchase is offered?
Replies
1
Boosts
0
Views
95
Activity
13h
Promoted In-App Purchase not loading during App Review: “Donation product is not available yet”
Hello Apple Developer Community, My iOS app was rejected during App Review because the promoted In-App Purchase donation product showed this error: “Donation product is not available yet” App Review details: Device: iPad Air 11-inch (M3) OS: iPadOS 26.4.2 Internet connection: Active Last reviewed build: 1.0.0 (1) App is iPhone only In-App Purchase type: Consumable donation product The app uses StoreKit to load the donation product from App Store Connect. On my side, the product is configured in App Store Connect and works during testing, but App Review reported that the product was not available when they tested it. I would like to confirm the correct setup for a promoted In-App Purchase / donation product before resubmitting the app. Questions: My In-App Purchase product, which is added under In-App Purchase Information in App Store Connect, is currently showing the status “Waiting for Review” while my app build has been submitted for review. Could this be the reason my app is showing the following StoreKit error? “Check the local StoreKit configuration or App Store Connect setup for com.xxxxxxxxx.xxx.xxxx.” I would like to confirm whether an IAP product that is still “Waiting for Review” can be loaded by App Review during testing, or whether it must be approved together with the app before StoreKit can return the product successfully. The product ID in my app matches the product ID in App Store Connect, and the app uses StoreKit to load the product. Can App Review test a promoted In-App Purchase before the app itself is approved? Is there any delay after creating or editing an In-App Purchase before it becomes available to App Review? For an iPhone-only app reviewed on iPad, can this affect StoreKit product loading or promoted In-App Purchase availability? Any guidance on the correct App Store Connect setup would be appreciated. Thank you.
Replies
1
Boosts
0
Views
124
Activity
20h
StoreKit Product.products(for:) returns empty / fails during App Review
Hi, My macOS app was rejected because the reviewer saw "Couldn't load purchase options" on the paywall. The same build works correctly for me. Product.products(for:) either throws or returns an empty array, triggering the error UI. Has anyone else experienced this specifically during App Review? Is there anything specific about the review environment that could cause StoreKit to fail to fetch products? Thank you.
Replies
1
Boosts
0
Views
56
Activity
1d
Clarification on App Store Review Guideline for multi-person subscription model
Hi everyone, I am working on an iOS app with a subscription-based model, and I need some clarification regarding App Store Review Guideline. The app allows one account holder to manage access for multiple people under the same account. Each person may need subscription-based access to certain digital features within the app. In this scenario, the subscription requirement is not limited to a single user under one Apple ID. The account holder may add multiple members/dependents, and access may vary based on the subscription status associated with those people. My question is: If the subscription is managed through our backend and the app locks or unlocks digital features based on that subscription status, would Apple consider this a violation for not using In-App Purchase? I would like to understand whether Apple expects In-App Purchase to be implemented in this type of multi-person subscription model, even when the subscription is managed at the account/member level rather than as a simple single-user plan. Any guidance or experience with similar review scenarios would be helpful. Thanks.
Replies
1
Boosts
0
Views
38
Activity
1d
"Unable to Manage Sandbox Test Account - Popup Closes on 'Manage' Click"
Issue: Sandbox test account stuck in a loop when trying to access account management Environment: iOS version: [iOS 26.4.2] Device: iPhone 12 Steps to Reproduce: Created sandbox test credentials on Apple Developer site (App Store Connect → Users and Access → Sandbox → Testers) On iPhone, navigated to Settings → Developer → Sandbox Apple Account Clicked "Sign In" and entered sandbox test email and password Successfully verified using verification codes (both email and phone number) Clicked on the signed-in sandbox account A popup appears with "Manage" option Clicked "Manage" Expected Behavior:- Should open sandbox account management interface Actual Behavior:- Popup immediately closes and the same popup reappears. Clicking "Manage" again produces the same result - an endless loop preventing access to account management. Has anyone encountered this issue with sandbox test accounts? Is there a known workaround or fix for this behavior?
Replies
0
Boosts
1
Views
45
Activity
1d
StoreKit 2: currentEntitlements fails for Thai users on iOS 26
On devices configured to use the Buddhist calendar (primarily Thai users) Transaction.currentEntitlements returns an empty async sequence even when the customer holds a legitimate, non-revoked, non-expired entitlement for a non-consumable in-app purchase or subscription. The same transaction is correctly returned by Transaction.all. Switching the device calendar back to Gregorian immediately restores correct behavior: the entitlement is yielded by currentEntitlements again. No reinstall, sign-out, or AppStore.sync() is required. The defect is purely client-side, deterministic, and reproducible at will. Is this a known bug introduced in iOS 26? It is causing me significant problems with in-app purchase validation and restore flows in that market. Is anyone else experiencing this issue?
Replies
1
Boosts
1
Views
196
Activity
3d
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
0
Boosts
0
Views
54
Activity
3d
Free trial for one-time purchase: Is the $0 IAP workaround still recommended in 2026?
[Repost: Somehow my original thread from Jan was deleted. I called dev support and they said to post again, if there's a better channel to get answer for this, please let me know.] I’m an indie dev with a paid, one-time-purchase app (Dash Calc, $4 USD), and sales have been rough. In a crowded category, an upfront-paid app feels like a tough sell without a way to try it first. I’d like to offer a simple 7-day free trial followed by a single lifetime purchase, but App Store Connect still doesn’t officially support trials for paid apps. In Jan 2023, an App Store Commerce Engineer recommended the $0 non-consumable IAP + paid non-consumable IAP workaround: https://developer.apple.com/forums/thread/722874 I haven’t implemented it yet, but the subsequent discussion suggests the approach is overly complex. Handling refunds, reinstalls, activation timing, and purchase history requires non-obvious logic, and some developers report customer confusion and drop-off when presented with a $0 trial IAP. Has anything improved since 2023? Any new StoreKit APIs or App Store Connect changes that make this simpler or less error-prone? Is the $0 non-consumable IAP still the recommended approach in 2026? Any updated policy guidance for time-limited access on one-time purchases? I’m happy to use the workaround if it’s still the official path—I just want to confirm there isn’t a better option now.
Replies
6
Boosts
0
Views
263
Activity
4d
Unlocking a demo mode without IAP
I am aware of the following in the App Review Guidelines; 3.1.1 If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc. The app itself operates normally, but imposes limits after a limited time of use. Purchasing the full version removes these limits. This is a one-time IAP, not a subscription. My app is aimed at professionals within the entertainment industry, and will only ever be used within a theatre or other similar venue. I do not intend to provide any other paid route to the full version than via the App Store. However, what I would like to do is provide free use at certain events and to students in their educational venues (e.g. college theatres etc)- is it acceptable to use an external mechanism (e.g. a server based API) to temporarily remove the limitations whilst in that venue? Or, likewise, provide an extension to the free trial period for specific uses. Note this is not a purchase, as there is no payment. Therefore there is no revenue outside of the App Store (which surely is the point of the mandate to use IAP for this purpose) Also, it's not fully 'unlocking' the app (the user doesn't get the full version, they just aren't bound by the trial limit timer when within that venue or for a limited time) I'm aware that another route would be to put a different version of the app in the store that requires a username and password for use (for example) and then provide those credentials to log in - as there's lots of apps that follow that model, but it seems clunky to require the user to download a different app.
Replies
1
Boosts
0
Views
185
Activity
4d
Transaction.currentEntitlements returns empty for offer code subscriptions redeemed via Safari
Users who redeemed offer codes via the Safari URL template (apps.apple.com/redeem?ctx=offercodes&id=...) have active subscriptions confirmed in iPhone Settings → Subscriptions (expiring April 2027). However, Transaction.currentEntitlements returns zero results in the app. AppStore.sync() has been called. Transaction.all also returns no Production transactions. The offer “Radius Inner Circle” is configured as: Free for the first year, does not auto-renew, and is tied to a yearly auto-renewable subscription product. Approximately 20 production users are affected. The subscription exists on Apple’s servers but never appears in the StoreKit 2 local transaction database. Is there a known issue with offer codes redeemed via Safari not populating Transaction.currentEntitlements? Is there an alternative API to query subscription status server-side? App ID: 6760574186 Bundle ID: com.michaelhills.Radius
Replies
1
Boosts
0
Views
96
Activity
5d
Store Kit 2 iOS system purchase confirmation dialog not consistent.
I'm running into an issue where it appears the product transaction is being cached and not showing a new iOS system popup dialog to confirm the purchase. This is affecting testing, and I need a solution to have iOS issue a new purchase transaction every time. Here's what happens, I call the following which always succeeds. try await product.purchase(options: [.appAccountToken(appToken)]) I'm signed into a developer sandbox account with a resubscribe every 5 minutes. After cancelling a subscription, I attempt to resubscribe using the same code as above. Frequently, the code executes without iOS showing the popup system dialog to confirm the purchaser. After waiting a period of time, iOS then resets itself and allows me to purchase again. What I want is an option the forces the iOS system confirm purchase dialog to show up every time the code executes. How do I fix this? iOs 26.4.1, iPhone 17 Pro.
Replies
1
Boosts
0
Views
133
Activity
5d
Korea subscription consent: Timing mismatch between push notifications and Settings consent option
Hi all, I've been observing what appears to be a timing mismatch in how Apple handles Korea trial-to-paid consent, and I wanted to see if other developers are seeing the same thing. Per Korean regulations effective Feb 14, 2025, Apple must obtain explicit user consent before converting a free trial to a paid subscription. Apple handles this via email, push notifications, and an in-app consent option accessible from Settings > Subscriptions. For a 7-day trial in the Republic of Korea storefront, I'm observing: Consent push notifications (Agree to continue your subscription without interruption) start arriving ~1 day after trial redemption, at roughly hourly frequency. However, when the user taps the push and navigates to Settings > Subscriptions, there is no consent option available. The only visible action is "Cancel Free Trial". The consent option only becomes available around day 4 of the trial (i.e., 3 days before renewal, matching Apple's documented messaging cadence [1]). For the first ~3 days, users receive hourly push notifications they cannot act on. The only way to stop them is to cancel the subscription entirely. This is happening across multiple apps in the Korean App Store, so it appears to be a platform-level behavior rather than an app-specific issue. Is anyone else observing this behavior? Any insight from Apple engineers or other developers would be greatly appreciated. [1] https://developer.apple.com/help/app-store-connect/reference/in-app-purchases-and-subscriptions/consent-for-subscription-offer-conversions
Replies
1
Boosts
0
Views
196
Activity
5d
Auto-renewable subscription showing as "One-time charge" on live app — blocking all installs (case 102883643138 unanswered for 6 days)
Our live production app Padel Club Pro (Apple ID 6763061435, Bundle ID com.padelclubpro.app) has been blocked from all new installs since launch due to StoreKit incorrectly displaying our auto-renewable subscription as a "One-time charge" on the App Store install sheet. The issue: Tapping the install button on the App Store opens the StoreKit purchase confirmation sheet showing "R499.99 / One-time charge" instead of presenting the app as a free download with the subscription available in-app. The app's base price is set to Free in App Store Connect. The subscription is approved and configured correctly as auto-renewable. Subscription details: Product ID: com.padelclubpro.app.monthly Status: Approved Subscription Duration: 1 month Introductory Offer: Free for the first week (active across 175 countries) What I've verified: App base price is set to Free Paid Applications Agreement is fully signed and active (tax forms, banking complete) No phantom non-consumable IAPs exist (In-App Purchases section is empty) RevenueCat App-Specific Shared Secret is set correctly RevenueCat product mapping correctly points $rc_monthly to the subscription product Reproduced on multiple physical devices using multiple different Apple IDs (none had previously interacted with the app) Issue has persisted for 6+ days, ruling out CDN propagation delay Apple Support case: Filed case 102883643138 six days ago — only received automated confirmation, no response since despite two follow-up emails. Suspected cause: The auto-renewable subscription appears to be approved as a standalone product but is not properly bound to the live build/version on Apple's StoreKit servers, causing StoreKit to fall back to a default "One-time charge" display. Question: Has anyone encountered this before? Is there a known fix on the developer side, or does this require Apple engineering to re-bind the subscription server-side? Any guidance on how to escalate the support case would be appreciated — this is a critical production-blocking issue and we have not been able to acquire a single user since launch. Thank you in advance.
Replies
1
Boosts
0
Views
61
Activity
5d
Tesflight eCommerce error, Beta testers outside the US, for our MacOS App, are being told their ID is not valid in the US Store
Beta testers outside the US, for our MacOS App, are being told their ID is not valid in the US Store and that they must switch to a store in their country. Yet the store switch fails Essentially beta testers outside the US cannot do testflight sandbox eCommerce for the Mac version of our app. Note that eCommerce on the Mac works for US based testers and eCommerce for the iOS/iPadOS works for testers in all territories. Many of these testers are in India, the UK and Canada. We believe that this is incorrect, that storeKit is not correctly detecting the AppStore Region for mac based testflight eCommerce. At this point we have 382 testers, most outside the US and we can only Beta Test our app with US users. Attached are images of the messages that are coming from storeKit: Here is a link to a video from a user in Canada who is demonstrating the problem (cut and paste into browser) https://youtu.be/kB818wfVld4 Here is another link to a video from a user in Canada who is demonstrating the problem (cut and paste into browser). https://youtu.be/7uAZKo8wpfU We see that there is another post with a similar problem. Similar eCommerce Problem Because eCommerce works in all territories on iOS/iPadOS but ONLY in the US for Mac we suspect that this is an error that either a DBA or a coder will need to fix. Any insights from anyone would be appreciated.
Replies
14
Boosts
5
Views
1.9k
Activity
5d
Apple Media Services T&C pop-up
I had published an App, and my app has App Clip supported. The issue I faced is that I had received complaints where the user keep seeing the pop up "Apple Media Services Terms and Conditions Have Changed" when user clicked on the "Open" Button in the App Clip. What we had tried so far: Let user switch the Apple Id's region to our supported region. Let user try to log out and log in to Apple Id within the supported region.
Replies
3
Boosts
0
Views
425
Activity
1w
SKStoreReviewController requestReviewInScene: does not display review prompt in debug builds on iOS 26.5 beta (23F5043k)
[SKStoreReviewController requestReviewInScene:] no longer displays the review prompt in debug/development builds on iOS 26.5 beta (23F5043k and 23F5043g). According to Apple's documentation, the review prompt should always appear in debug builds to facilitate testing. This was working in previous iOS versions (iOS 26.4 and older). Steps to reproduce: Run app from Xcode in debug configuration on a device running iOS 26.5 beta (23F5043k or 23F5043g) Call [SKStoreReviewController requestReviewInScene:windowScene] with a valid, foreground-active UIWindowScene Observe that the method executes without error (scene is valid per NSLog) but no review prompt appears Expected: Review prompt should display in debug builds Actual: No prompt appears, despite the scene being valid and foreground-active This worked correctly on previous iOS versions (26.4) so looks like this bug was introduced in 26.5 Beta versions. I have already filed a bug report in Feedback Assistant with number: FB22445620
Replies
4
Boosts
0
Views
355
Activity
1w
External purchase region
Hi everyone, I have a question regarding App Store subscriptions and tax country / storefront changes. If a customer originally purchased a subscription while their App Store country was France (so we reported France as the tax country), and later updates or renews that same subscription while located in Hungary, which country should we report going forward? Should we continue using the original country (France)? Or should we start sending the new country (Hungary) once it changes? Also, what happens if the customer changes their App Store region entirely, for example from France to the US? How is Apple’s commission calculated after the region change? If anyone has experience with this scenario or knows the official Apple behavior, I’d really appreciate your help. Thanks!
Replies
2
Boosts
0
Views
182
Activity
1w