Subscriptions

RSS for tag

Give users access to content, services, or premium features in your app on an ongoing basis with subscriptions, a type of in-app purchase.

Posts under Subscriptions tag

201 Posts

Post

Replies

Boosts

Views

Activity

In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
0
0
2.2k
Jun ’26
Subscriptions unavailable during App Review, but loading and sandbox purchases work in our tests (RevenueCat / StoreKit)
Hello, Our first release was rejected under Guideline 2.1(b) because subscriptions were unavailable during App Review. We have been unable to reproduce the issue and would appreciate guidance on further diagnostics. Review environment App version: 1.0.0 (9) Device: iPad Air 11-inch (M3) OS: iPadOS 27.0.1 Internet connection: Active, according to the review message The app integrates StoreKit through RevenueCat and offers three auto-renewable subscriptions. We verified that : The Paid Apps Agreement, banking information, and tax forms are active. All three subscriptions and their subscription group are included in the submission. The subscriptions are available in all countries and regions. The submitted build uses the RevenueCat App Store SDK key, rather than a Test Store key. We tested subscription loading 15 times across two networks, including on iPad. Prices loaded successfully, and we completed a sandbox purchase that unlocked Premium. Additional diagnostics on an iPad Air 11-inch (M3) simulator running iPadOS 26.5 returned all three products both through a direct StoreKit Product.products(for:) request and through RevenueCat. No local StoreKit configuration file was attached. We have not reproduced the exact iPadOS 27.0.1 review environment. The simulator runtime is unavailable through our installed Xcode. The rejection message states that subscriptions were unavailable, but does not identify whether product retrieval failed, the subscription options were missing, or a purchase attempt failed. We are asking App Review for those details and a retry. We were wondering: What additional diagnostics would help investigate product availability failures that occur only during App Review? Are there sandbox account or storefront conditions we should test beyond successful product loading and sandbox purchases? Is there a recommended way to collect useful StoreKit error information from a review session when the failure cannot be reproduced locally? Thanks !
1
0
54
1d
Auto-renewable subscription: entitlement when device is offline at renewal
I provide a paid feature behind an annual auto-renewable subscription, using StoreKit 2 and Transaction.currentEntitlements. Many of my users work in remote places with no connectivity for days at a time, so I need to know what happens when a device is offline at the moment the current period ends. The renewal succeeds server-side, but the device cannot fetch the updated signed transaction, so the cached transaction still carries the previous expirationDate, now in the past. Does Transaction.currentEntitlements stop returning the subscription once the cached transaction's expiration date has passed, even though the renewal has already succeeded server-side? Is there any built-in tolerance window on the device that keeps the entitlement alive until the next successful sync with the App Store? Does grace period effect the outcome? I want to avoid revoking access from a paying subscriber who happens to be offline when renewal falls due. Many thanks.
1
0
603
1d
Sandbox errorCode 4040004 "App not found" — one app works, identical app doesn't
I have 2 iOS app products. One can fetch subscription product information normally, while the other fails with the error errorCode 4040004 'App not found' in Sandbox. The App Store Connect backend configuration should be fine, and the subscription code on the app side is the same codebase for both. I really can't find the root cause anymore — if anyone knows what's going on, please point me in the right direction. Also, I'm able to sync/download the StoreKit product configuration file from App Store Connect directly in Xcode, which should also confirm that my App Store Connect backend configuration is correct.
7
1
1.3k
1d
Product.products(for:) returns one subscription group's products but not return the other
I'm stuck on this and genuinely don't know what's wrong. I have two auto-renewable subscription groups in one app. I pass all six product IDs to a single Product.products(for:) call. It succeeds, doesn't throw, and returns three products — all from group A. The three from group B just aren't in the array. No error, they're simply absent. All six show Approved in App Store Connect. [PlusStore] probe — storefront: USA [PlusStore] probe — OK ...plus.monthly (group A) [PlusStore] probe — OK ...plus.quarterly (group A) [PlusStore] probe — OK ...plus.yearly (group A) [PlusStore] probe — MISSING ...plus.founding.monthly (group B) [PlusStore] probe — MISSING ...plus.founding.quarterly (group B) [PlusStore] probe — MISSING ...plus.founding.yearly (group B) Retried three times with backoff, so it isn't cold-launch timing. I don't think it can be the Paid Applications Agreement, the sandbox account, a network failure, or a wrong bundle prefix, since group A comes back fine. I've checked the group B IDs character-for-character against the Product ID field in App Store Connect, confirmed United States is enabled with an active price and no future-dated schedule on all three, and confirmed there's no .storekit file attached to the scheme. So the only difference I can find between the two groups is the group itself.
1
0
660
1d
Sandbox purchase completion reported, but Transaction.all is empty — how to investigate without another purchase?
Hello, We are investigating a discrepancy during an auto-renewable subscription test in Apple’s Sandbox. We would appreciate guidance on read-only diagnostics that preserve the original attempt. Environment: A development-signed, unpublished QA app on a physical iPhone, separate from our production app. A monthly auto-renewable subscription. The original purchase flow uses RevenueCat. The Apple purchase sheet displayed “Environment: Sandbox” and indicated that no charge would occur. Observed behavior: After entering the Sandbox account password, the tester reported seeing a purchase-completion message. The app subsequently displayed a cancellation message. We did not capture a verified StoreKit success transaction, so we cannot establish that the purchase actually completed. The dedicated QA RevenueCat project showed no purchases or subscriptions, and no actual purchase webhook arrived. The next day, subscription management for the same Sandbox account showed no subscription for this QA app. Read-only investigation: RevenueCat’s purchase and subscription queries returned HTTP 200 with empty results and no additional page. We updated the same app, retaining its bundle identifier and installation, with a native StoreKit diagnostic. Enumerating StoreKit.Transaction.all completed normally with zero results. There were no unverified results, filtered-out transactions, timeouts, or count limits. This diagnostic did not invoke purchase, synchronization, or transaction-finishing operations. One earlier restore attempt also returned no purchase. We have not made another purchase, cleared purchase history, or recreated the Sandbox account. We understand that an empty result in this app context does not prove that no transaction exists anywhere in Apple’s systems. No transaction identifier or signed transaction has been recovered. Questions: What read-only checks can distinguish an incomplete or cancelled purchase from an account/environment mismatch or a transaction-delivery issue? Is there a supported way to investigate the original attempt without a transaction identifier and without making another purchase? Which existing device logs or diagnostic captures would be useful? If investigation requires identifiers or unredacted diagnostics, what private Apple reporting channel should we use? Our goal is to investigate the original attempt while preserving purchase history and leaving production untouched. Thank you.
0
0
75
2d
Отказ Guideline 5.6 «скрытые функции» — не понимаем, что именно не так
Hi everyone! We've received a rejection under Guideline 5.6 — Developer Code of Conduct for the second time, with the wording "the app contains features that appear to have been intentionally hidden during the review process." Apple doesn't specify the exact reason, and we are not hiding anything from review. About the app: Flutter, iOS, distributed on the Russian App Store; Self-care audio content: meditations, practices, audio readings based on date of birth; All content (texts, audio, prices) comes from our server, identical for all users, and there is no separate review mode; Part of the content is paid; payment happens inside the app through the YooKassa SDK (card, SberPay, SBP) — there are no Apple In-App Purchases yet; One section is locked with a "Coming Soon" label — it is not finished and is closed to all users; On launch, the app checks its version against the server and, if the version is outdated, asks the user to update; In the latest build we removed iPad support — the app is iPhone-only. We submitted the first build by mistake without any notes for the reviewer and without a test account — that may be where this started. The second time, both the notes and the test account were included. Has anyone else received this kind of rejection — what turned out to be the actual cause? We'd be grateful for any experience you can share.
1
0
102
3d
App stuck in "Waiting for Review" for 8 days, first submission
My first app submission has been in “Waiting for Review” since 22 October 2026 with no status change. App ID: 6815957663 Submission: 22 October, 4 items (app version + subscription group + 2 auto-renewable subscriptions) I’ve checked the usual causes: No outstanding messages in the Resolution Center Paid Applications agreement is Active All four items still show “Waiting for Review” No action-required banners anywhere in App Store Connect Is 6 days within normal range for a first submission, or is there something on my side I should be looking at? Happy to provide any detail that would help.
0
1
80
3d
Unable to submit already approved subscription groups with error "New subscription groups must be submitted with an auto-renewable subscription from within that group.
Issue: Since Sept 10, 2026, my existing, already-approved auto-renewable subscription group cannot be submitted for review. This is not a new group: all 9 subscriptions in it show Approved, and my app has been live since July 2026. How it started: I changed only the introductory offer (7-day to 14-day free trial) on the monthly products. What App Store Connect shows now: The group is marked “Prepare for Submission” with the banner “Your first subscription group must be submitted with a new app version.” The Draft Submission contains only the group, and Submit for Review is disabled with: “New subscription groups must be submitted with an auto-renewable subscription from within that group.” “Add for Review” is greyed out on every one of the 9 subscriptions, so there is nothing to add to the draft. Impact: I can’t sell a subscription on any tier or billing period, and it has now been 6 weeks of lost revenue. Not the app binary: Builds 497 and 501 were both approved within hours, with no effect on the group’s status. What I’ve already tried, without success: Attaching each subscription individually, with all metadata and review screenshots complete. A forced re-save (editing a description, saving, reverting and saving again) to clear a stale validation state. Removing and re-adding the draft submission. Deleting and re-creating the introductory offer. Resubmitting the app. Accepting the latest agreements (all show Active). Support status: Developer Support case 102961055291, opened Sept 12. I’ve provided screen recordings and screenshots. I was told the case would go to engineering, but in six weeks I haven’t had a reply from an engineer, a name or a timeline. Two older threads describe the same stuck state and say it needed an Apple-side reset: 844425 and 818349. https://developer.apple.com/forums/thread/844425 https://developer.apple.com/forums/thread/818349 Has anyone seen this resolved without Apple resetting it? And if an Apple engineer sees this, could the case be routed to the team that can reset the subscription group’s submission state?
0
0
47
3d
StoreKit Test Transactions fail with “App not found” / ASDServerErrorDomain 3504 for one Bundle ID, while another app works
Hello Apple Developer Support / StoreKit team, I am testing auto-renewable subscriptions on a real iPhone device using Settings > Developer > Sandbox Apple Account > Test Transactions. I found that subscriptions work correctly for one of my apps, but fail for another app under the same Apple Developer account. Working app Bundle ID: com.benbendou.pinyincharacter Product ID: xpyxhz.quarterly Result: The sandbox purchase sheet appears and the subscription flow can be completed successfully. Failing app Bundle ID: com.benbendou.chengyudaquan Product ID: cydq.quarterly Result: The Test Transactions flow fails. In my app, Product.products(for:) can load some subscription products successfully. However, when trying to purchase cydq.quarterly, the purchase fails with: errorCode = 4040004 errorMessage = "App not found. Please try again." Because the same issue also happens in iPhone Settings > Developer > Sandbox Apple Account > Test Transactions, using the exact Bundle ID and Product ID, this does not seem to be caused by my app’s StoreKit code. The strange part is that another app under the same developer account works correctly with Test Transactions, but this app does not. Could Apple please help check whether the Bundle ID / app record / subscription group / in-app purchase products for com.benbendou.chengyudaquan are correctly linked in the StoreKit Sandbox backend? It looks like the sandbox environment can load the product metadata, but cannot complete the purchase or find the app during transaction lookup. Thank you.
1
0
633
3d
Increased StoreKit errors “Unable to Complete Request”
Since January 28, 2026, we’ve noticed an increase in StoreKit-related errors during purchase flows. Specifically, we’re seeing a spike in errors reported as “Unable to Complete Request”, categorized as unknown StoreKit errors. This correlates with a noticeable drop in the overall purchase success rate. A few observations: The issue is not limited to the latest app version, it also affects older versions. It appears to occur only on iOS 17+. The impact seems country-specific: some regions are affected more heavily, while others show no significant change compared to previous days. At the moment, there are no related incidents reported on Apple’s System Status page. Given these symptoms, this looks like a potential StoreKit / Apple API issue, but we haven’t found any official confirmation yet. Has anyone else observed similar StoreKit behavior recently on iOS 17+? Any insights or known issues would be greatly appreciated.
6
2
1.7k
4d
Is Stripe Integration Allowed Alongside Apple In-App Purchase (IAP) in an iOS App?
Hello Apple Developer Community, We're developing an iOS application using React Native (Expo) with a Node.js backend. We have already integrated Apple's In-App Purchase (IAP) system for subscriptions and digital features. However, we're also considering integrating Stripe as an additional payment method, while continuing to support Apple IAP. We recently came across Stripe's official iOS SDK documentation: https://docs.stripe.com/sdks/ios We would appreciate clarification on the following questions: Does Apple permit developers to integrate Stripe alongside Apple IAP within the same iOS application? Can users be offered both Stripe and Apple IAP as payment options for the same digital subscriptions or in-app features? Are there specific App Store Review Guidelines governing the use of third-party payment providers alongside Apple IAP? Do the requirements differ depending on the user's country or App Store region? If Stripe is integrated as an additional payment option, are there specific entitlements, disclosures, or approval processes required to comply with Apple's policies? Could offering both payment methods affect the App Store review or approval process, even if Apple IAP remains fully functional? Our intention is not to replace or bypass Apple IAP. We simply want to understand whether Stripe can be offered as an additional payment option while remaining fully compliant with Apple's App Store Review Guidelines. We would appreciate any official guidance, relevant documentation, or insights from developers who have successfully implemented both payment systems. Thank you for your time and assistance.
0
0
44
4d
11 Days in “Waiting for Review” — No Response from Apple Support. Is This Acceptable Developer Support?
Hey Apple Developer Relations, App Review Team, and anyone else reading this,I wanted to share what’s been going on with my app because I’m honestly stuck and not sure what else to do.I’m an indie developer working on Marque: Car Collection — my first iOS app. I paid for the Developer Program, spent a lot of time getting everything ready, fixed the issues from the previous rejection, and submitted a new build.It’s been over a week now and I still have no idea what’s happening with it.Quick timeline: Oct 6: My previous submission got rejected under Guideline 5.1.2(i) (App Tracking Transparency). Oct 14: I submitted a fixed build, version 1.1.0 (24), with an updated ATT implementation, revised App Privacy details, and detailed notes explaining the changes. Since then (11 days as of Oct 25): It’s been sitting in “Waiting for Review” and hasn’t even moved to “In Review.” I’ve contacted Developer Support and asked on the forums, but I haven’t gotten any real answers. No one has asked for more information, explained what’s going on, or given me any idea when the review might actually start.I get that reviews can take longer sometimes, especially with a first app, subscriptions, or privacy-related stuff. I’m not asking anyone to just approve it without looking at it.What bothers me is the complete lack of communication. Right now I have no way of knowing: whether my build is just waiting in the normal queue or if something’s wrong with it when I can realistically plan a launch if there’s any point in contacting support again since I haven’t gotten a useful response so far I’m still paying for the Developer Program, but I have zero visibility into what’s happening with my submission.Apple holds developers to high standards. It would be nice to get at least basic transparency in return.So I have a few straightforward questions: Why has my corrected build been stuck in “Waiting for Review” for 11 days? Is there any way to confirm it’s properly in the queue and not stuck because of some technical or admin issue? Why hasn’t my support request gotten a real response? Is there an escalation path for indie developers when a submission just sits there with no explanation? If Apple can’t provide a status update, what options do developers have when they’re paying for the program but can’t get any information about their release? I’d really appreciate it if someone from Developer Relations or App Review could take a look and give me some kind of explanation (or point me to someone who can).I’d also be interested to hear from other developers who’ve dealt with similar long waits in “Waiting for Review,” especially with first apps.The issue isn’t just that the review is taking longer than expected. It’s that when something seems off, there’s almost no way to figure out what’s actually going on.Indie developers put a lot of time, money, and effort into building for Apple’s ecosystem. Clear communication shouldn’t be this hard.Thanks for reading. Marque Development Team
2
1
159
4d
W-8BEN citizenship field locked to wrong country - Finance not responding for 4 weeks
Hi everyone, I'm an individual developer with a sole proprietorship registered in Poland. I'm a citizen of Belarus, I live in Poland with permanent residence and I'm a Polish tax resident. The problem is that in App Store Connect the Country of citizenship field in my W-8BEN form is set to Poland and I can't change it. I tried resetting the tax questionnaire, didn't help. I don't want to submit the form with wrong info, so my Paid Apps agreement is stuck in Pending User Info since September 23. My bank account has been stuck in Processing since the same day too. What I've done so far: Sep 23 wrote to Developer Support (case 102973741691), on Sep 25 they told me to contact Finance Sep 26 opened Finance case 22490850, followed up on Oct 5, 12 and 19, also sent an official extract from the Polish business register that shows my citizenship. No reply at all Oct 12 wrote to Developer Support again, nothing Oct 16 called support, they said someone would help me within a week, nobody contacted me Did anyone have the same issue with the citizenship field? How did you get it fixed? Thanks
1
0
176
1w
StoreKit 2 returns USD product metadata in TestFlight while the storefront is FRA/EUR
Hello, We would appreciate some guidance regarding an unexpected StoreKit currency result in a TestFlight build. Our iPhone language and region are both set to France. The Sandbox tester is also configured for France, and our subscription products have French availability and pricing configured in App Store Connect. In the TestFlight build we diagnosed, StoreKit reports the current storefront as France with EUR: storefront=FRA/143442/EUR However, all 10 subscription products are returned with USD product metadata: products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE Example: formatCurrency=USD locale=fr_US_currency_USD localeCurrency=USD display=1,99 $US price=1.99 We first observed this through Flutter's in_app_purchase integration. To determine whether the Flutter plugin was involved, we added a native StoreKit 2 diagnostic to the same TestFlight build. The native result was identical: receipt=sandboxReceipt storefront before=FRA/143442/EUR storefront after=FRA/143442/EUR products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE The issue appears specific to the TestFlight distribution. When the application is installed directly from the development computer, prices are returned in euros on the same device. We also tested with the regular Media & Purchases account signed out and a French Sandbox tester connected. Once the products loaded successfully, StoreKit still returned USD metadata. In another configuration, the application displayed the USD price while Apple's purchase sheet displayed the price in euros. We are using the price and formatting information returned directly by StoreKit. We do not want to infer the currency from the device region or perform a client-side currency conversion, because StoreKit should remain the authoritative source. Could you please help us understand: Is it expected for Storefront.current to report FRA/EUR while Product.priceFormatStyle.currencyCode, its locale currency, and Product.displayPrice use USD? Could a TestFlight or App Store Connect configuration cause product metadata to use a different currency from the current storefront? Is there another account, availability, pricing or distribution setting that we should verify? Is there a recommended way to refresh or invalidate the product metadata used by a TestFlight installation? We have already filed Feedback Assistant report FB24723329, which is currently under investigation. Thank you very much for any clarification or additional diagnostic steps you can suggest.
8
1
1.3k
1w
App rejected for missing In-App Purchases (IAP) after they were completely removed from the binary
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
0
0
113
1w
App is rejected due to Guideline 2.1(b) - Performance - App Completeness
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
0
0
91
1w
Purchase with promotional offer doesn't work - no transaction update, no webhook
Many of my purchases are encountering an issue when using a promotional offer (with a promo offer signature included). On the client side, everything works properly, and the purchase triggers the .success() callback. However, there are no updates in either the transaction/renewal info or via webhooks. According to the documentation, at least one of these server notifications should be triggered: OFFER_REDEEMED or SUBSCRIBED/RESUBSCRIBED. My server did not receive any signals. Furthermore, when I fetched the subscription status using the App Store Server API, the offer identifier did not appear in either the renewal info or the transaction info.
0
0
96
1w
In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
Replies
0
Boosts
0
Views
2.2k
Activity
Jun ’26
Subscriptions unavailable during App Review, but loading and sandbox purchases work in our tests (RevenueCat / StoreKit)
Hello, Our first release was rejected under Guideline 2.1(b) because subscriptions were unavailable during App Review. We have been unable to reproduce the issue and would appreciate guidance on further diagnostics. Review environment App version: 1.0.0 (9) Device: iPad Air 11-inch (M3) OS: iPadOS 27.0.1 Internet connection: Active, according to the review message The app integrates StoreKit through RevenueCat and offers three auto-renewable subscriptions. We verified that : The Paid Apps Agreement, banking information, and tax forms are active. All three subscriptions and their subscription group are included in the submission. The subscriptions are available in all countries and regions. The submitted build uses the RevenueCat App Store SDK key, rather than a Test Store key. We tested subscription loading 15 times across two networks, including on iPad. Prices loaded successfully, and we completed a sandbox purchase that unlocked Premium. Additional diagnostics on an iPad Air 11-inch (M3) simulator running iPadOS 26.5 returned all three products both through a direct StoreKit Product.products(for:) request and through RevenueCat. No local StoreKit configuration file was attached. We have not reproduced the exact iPadOS 27.0.1 review environment. The simulator runtime is unavailable through our installed Xcode. The rejection message states that subscriptions were unavailable, but does not identify whether product retrieval failed, the subscription options were missing, or a purchase attempt failed. We are asking App Review for those details and a retry. We were wondering: What additional diagnostics would help investigate product availability failures that occur only during App Review? Are there sandbox account or storefront conditions we should test beyond successful product loading and sandbox purchases? Is there a recommended way to collect useful StoreKit error information from a review session when the failure cannot be reproduced locally? Thanks !
Replies
1
Boosts
0
Views
54
Activity
1d
Auto-renewable subscription: entitlement when device is offline at renewal
I provide a paid feature behind an annual auto-renewable subscription, using StoreKit 2 and Transaction.currentEntitlements. Many of my users work in remote places with no connectivity for days at a time, so I need to know what happens when a device is offline at the moment the current period ends. The renewal succeeds server-side, but the device cannot fetch the updated signed transaction, so the cached transaction still carries the previous expirationDate, now in the past. Does Transaction.currentEntitlements stop returning the subscription once the cached transaction's expiration date has passed, even though the renewal has already succeeded server-side? Is there any built-in tolerance window on the device that keeps the entitlement alive until the next successful sync with the App Store? Does grace period effect the outcome? I want to avoid revoking access from a paying subscriber who happens to be offline when renewal falls due. Many thanks.
Replies
1
Boosts
0
Views
603
Activity
1d
Sandbox errorCode 4040004 "App not found" — one app works, identical app doesn't
I have 2 iOS app products. One can fetch subscription product information normally, while the other fails with the error errorCode 4040004 'App not found' in Sandbox. The App Store Connect backend configuration should be fine, and the subscription code on the app side is the same codebase for both. I really can't find the root cause anymore — if anyone knows what's going on, please point me in the right direction. Also, I'm able to sync/download the StoreKit product configuration file from App Store Connect directly in Xcode, which should also confirm that my App Store Connect backend configuration is correct.
Replies
7
Boosts
1
Views
1.3k
Activity
1d
Product.products(for:) returns one subscription group's products but not return the other
I'm stuck on this and genuinely don't know what's wrong. I have two auto-renewable subscription groups in one app. I pass all six product IDs to a single Product.products(for:) call. It succeeds, doesn't throw, and returns three products — all from group A. The three from group B just aren't in the array. No error, they're simply absent. All six show Approved in App Store Connect. [PlusStore] probe — storefront: USA [PlusStore] probe — OK ...plus.monthly (group A) [PlusStore] probe — OK ...plus.quarterly (group A) [PlusStore] probe — OK ...plus.yearly (group A) [PlusStore] probe — MISSING ...plus.founding.monthly (group B) [PlusStore] probe — MISSING ...plus.founding.quarterly (group B) [PlusStore] probe — MISSING ...plus.founding.yearly (group B) Retried three times with backoff, so it isn't cold-launch timing. I don't think it can be the Paid Applications Agreement, the sandbox account, a network failure, or a wrong bundle prefix, since group A comes back fine. I've checked the group B IDs character-for-character against the Product ID field in App Store Connect, confirmed United States is enabled with an active price and no future-dated schedule on all three, and confirmed there's no .storekit file attached to the scheme. So the only difference I can find between the two groups is the group itself.
Replies
1
Boosts
0
Views
660
Activity
1d
Sandbox purchase completion reported, but Transaction.all is empty — how to investigate without another purchase?
Hello, We are investigating a discrepancy during an auto-renewable subscription test in Apple’s Sandbox. We would appreciate guidance on read-only diagnostics that preserve the original attempt. Environment: A development-signed, unpublished QA app on a physical iPhone, separate from our production app. A monthly auto-renewable subscription. The original purchase flow uses RevenueCat. The Apple purchase sheet displayed “Environment: Sandbox” and indicated that no charge would occur. Observed behavior: After entering the Sandbox account password, the tester reported seeing a purchase-completion message. The app subsequently displayed a cancellation message. We did not capture a verified StoreKit success transaction, so we cannot establish that the purchase actually completed. The dedicated QA RevenueCat project showed no purchases or subscriptions, and no actual purchase webhook arrived. The next day, subscription management for the same Sandbox account showed no subscription for this QA app. Read-only investigation: RevenueCat’s purchase and subscription queries returned HTTP 200 with empty results and no additional page. We updated the same app, retaining its bundle identifier and installation, with a native StoreKit diagnostic. Enumerating StoreKit.Transaction.all completed normally with zero results. There were no unverified results, filtered-out transactions, timeouts, or count limits. This diagnostic did not invoke purchase, synchronization, or transaction-finishing operations. One earlier restore attempt also returned no purchase. We have not made another purchase, cleared purchase history, or recreated the Sandbox account. We understand that an empty result in this app context does not prove that no transaction exists anywhere in Apple’s systems. No transaction identifier or signed transaction has been recovered. Questions: What read-only checks can distinguish an incomplete or cancelled purchase from an account/environment mismatch or a transaction-delivery issue? Is there a supported way to investigate the original attempt without a transaction identifier and without making another purchase? Which existing device logs or diagnostic captures would be useful? If investigation requires identifiers or unredacted diagnostics, what private Apple reporting channel should we use? Our goal is to investigate the original attempt while preserving purchase history and leaving production untouched. Thank you.
Replies
0
Boosts
0
Views
75
Activity
2d
Отказ Guideline 5.6 «скрытые функции» — не понимаем, что именно не так
Hi everyone! We've received a rejection under Guideline 5.6 — Developer Code of Conduct for the second time, with the wording "the app contains features that appear to have been intentionally hidden during the review process." Apple doesn't specify the exact reason, and we are not hiding anything from review. About the app: Flutter, iOS, distributed on the Russian App Store; Self-care audio content: meditations, practices, audio readings based on date of birth; All content (texts, audio, prices) comes from our server, identical for all users, and there is no separate review mode; Part of the content is paid; payment happens inside the app through the YooKassa SDK (card, SberPay, SBP) — there are no Apple In-App Purchases yet; One section is locked with a "Coming Soon" label — it is not finished and is closed to all users; On launch, the app checks its version against the server and, if the version is outdated, asks the user to update; In the latest build we removed iPad support — the app is iPhone-only. We submitted the first build by mistake without any notes for the reviewer and without a test account — that may be where this started. The second time, both the notes and the test account were included. Has anyone else received this kind of rejection — what turned out to be the actual cause? We'd be grateful for any experience you can share.
Replies
1
Boosts
0
Views
102
Activity
3d
App stuck in "Waiting for Review" for 8 days, first submission
My first app submission has been in “Waiting for Review” since 22 October 2026 with no status change. App ID: 6815957663 Submission: 22 October, 4 items (app version + subscription group + 2 auto-renewable subscriptions) I’ve checked the usual causes: No outstanding messages in the Resolution Center Paid Applications agreement is Active All four items still show “Waiting for Review” No action-required banners anywhere in App Store Connect Is 6 days within normal range for a first submission, or is there something on my side I should be looking at? Happy to provide any detail that would help.
Replies
0
Boosts
1
Views
80
Activity
3d
Unable to submit already approved subscription groups with error "New subscription groups must be submitted with an auto-renewable subscription from within that group.
Issue: Since Sept 10, 2026, my existing, already-approved auto-renewable subscription group cannot be submitted for review. This is not a new group: all 9 subscriptions in it show Approved, and my app has been live since July 2026. How it started: I changed only the introductory offer (7-day to 14-day free trial) on the monthly products. What App Store Connect shows now: The group is marked “Prepare for Submission” with the banner “Your first subscription group must be submitted with a new app version.” The Draft Submission contains only the group, and Submit for Review is disabled with: “New subscription groups must be submitted with an auto-renewable subscription from within that group.” “Add for Review” is greyed out on every one of the 9 subscriptions, so there is nothing to add to the draft. Impact: I can’t sell a subscription on any tier or billing period, and it has now been 6 weeks of lost revenue. Not the app binary: Builds 497 and 501 were both approved within hours, with no effect on the group’s status. What I’ve already tried, without success: Attaching each subscription individually, with all metadata and review screenshots complete. A forced re-save (editing a description, saving, reverting and saving again) to clear a stale validation state. Removing and re-adding the draft submission. Deleting and re-creating the introductory offer. Resubmitting the app. Accepting the latest agreements (all show Active). Support status: Developer Support case 102961055291, opened Sept 12. I’ve provided screen recordings and screenshots. I was told the case would go to engineering, but in six weeks I haven’t had a reply from an engineer, a name or a timeline. Two older threads describe the same stuck state and say it needed an Apple-side reset: 844425 and 818349. https://developer.apple.com/forums/thread/844425 https://developer.apple.com/forums/thread/818349 Has anyone seen this resolved without Apple resetting it? And if an Apple engineer sees this, could the case be routed to the team that can reset the subscription group’s submission state?
Replies
0
Boosts
0
Views
47
Activity
3d
StoreKit Test Transactions fail with “App not found” / ASDServerErrorDomain 3504 for one Bundle ID, while another app works
Hello Apple Developer Support / StoreKit team, I am testing auto-renewable subscriptions on a real iPhone device using Settings > Developer > Sandbox Apple Account > Test Transactions. I found that subscriptions work correctly for one of my apps, but fail for another app under the same Apple Developer account. Working app Bundle ID: com.benbendou.pinyincharacter Product ID: xpyxhz.quarterly Result: The sandbox purchase sheet appears and the subscription flow can be completed successfully. Failing app Bundle ID: com.benbendou.chengyudaquan Product ID: cydq.quarterly Result: The Test Transactions flow fails. In my app, Product.products(for:) can load some subscription products successfully. However, when trying to purchase cydq.quarterly, the purchase fails with: errorCode = 4040004 errorMessage = "App not found. Please try again." Because the same issue also happens in iPhone Settings > Developer > Sandbox Apple Account > Test Transactions, using the exact Bundle ID and Product ID, this does not seem to be caused by my app’s StoreKit code. The strange part is that another app under the same developer account works correctly with Test Transactions, but this app does not. Could Apple please help check whether the Bundle ID / app record / subscription group / in-app purchase products for com.benbendou.chengyudaquan are correctly linked in the StoreKit Sandbox backend? It looks like the sandbox environment can load the product metadata, but cannot complete the purchase or find the app during transaction lookup. Thank you.
Replies
1
Boosts
0
Views
633
Activity
3d
Increased StoreKit errors “Unable to Complete Request”
Since January 28, 2026, we’ve noticed an increase in StoreKit-related errors during purchase flows. Specifically, we’re seeing a spike in errors reported as “Unable to Complete Request”, categorized as unknown StoreKit errors. This correlates with a noticeable drop in the overall purchase success rate. A few observations: The issue is not limited to the latest app version, it also affects older versions. It appears to occur only on iOS 17+. The impact seems country-specific: some regions are affected more heavily, while others show no significant change compared to previous days. At the moment, there are no related incidents reported on Apple’s System Status page. Given these symptoms, this looks like a potential StoreKit / Apple API issue, but we haven’t found any official confirmation yet. Has anyone else observed similar StoreKit behavior recently on iOS 17+? Any insights or known issues would be greatly appreciated.
Replies
6
Boosts
2
Views
1.7k
Activity
4d
Is Stripe Integration Allowed Alongside Apple In-App Purchase (IAP) in an iOS App?
Hello Apple Developer Community, We're developing an iOS application using React Native (Expo) with a Node.js backend. We have already integrated Apple's In-App Purchase (IAP) system for subscriptions and digital features. However, we're also considering integrating Stripe as an additional payment method, while continuing to support Apple IAP. We recently came across Stripe's official iOS SDK documentation: https://docs.stripe.com/sdks/ios We would appreciate clarification on the following questions: Does Apple permit developers to integrate Stripe alongside Apple IAP within the same iOS application? Can users be offered both Stripe and Apple IAP as payment options for the same digital subscriptions or in-app features? Are there specific App Store Review Guidelines governing the use of third-party payment providers alongside Apple IAP? Do the requirements differ depending on the user's country or App Store region? If Stripe is integrated as an additional payment option, are there specific entitlements, disclosures, or approval processes required to comply with Apple's policies? Could offering both payment methods affect the App Store review or approval process, even if Apple IAP remains fully functional? Our intention is not to replace or bypass Apple IAP. We simply want to understand whether Stripe can be offered as an additional payment option while remaining fully compliant with Apple's App Store Review Guidelines. We would appreciate any official guidance, relevant documentation, or insights from developers who have successfully implemented both payment systems. Thank you for your time and assistance.
Replies
0
Boosts
0
Views
44
Activity
4d
11 Days in “Waiting for Review” — No Response from Apple Support. Is This Acceptable Developer Support?
Hey Apple Developer Relations, App Review Team, and anyone else reading this,I wanted to share what’s been going on with my app because I’m honestly stuck and not sure what else to do.I’m an indie developer working on Marque: Car Collection — my first iOS app. I paid for the Developer Program, spent a lot of time getting everything ready, fixed the issues from the previous rejection, and submitted a new build.It’s been over a week now and I still have no idea what’s happening with it.Quick timeline: Oct 6: My previous submission got rejected under Guideline 5.1.2(i) (App Tracking Transparency). Oct 14: I submitted a fixed build, version 1.1.0 (24), with an updated ATT implementation, revised App Privacy details, and detailed notes explaining the changes. Since then (11 days as of Oct 25): It’s been sitting in “Waiting for Review” and hasn’t even moved to “In Review.” I’ve contacted Developer Support and asked on the forums, but I haven’t gotten any real answers. No one has asked for more information, explained what’s going on, or given me any idea when the review might actually start.I get that reviews can take longer sometimes, especially with a first app, subscriptions, or privacy-related stuff. I’m not asking anyone to just approve it without looking at it.What bothers me is the complete lack of communication. Right now I have no way of knowing: whether my build is just waiting in the normal queue or if something’s wrong with it when I can realistically plan a launch if there’s any point in contacting support again since I haven’t gotten a useful response so far I’m still paying for the Developer Program, but I have zero visibility into what’s happening with my submission.Apple holds developers to high standards. It would be nice to get at least basic transparency in return.So I have a few straightforward questions: Why has my corrected build been stuck in “Waiting for Review” for 11 days? Is there any way to confirm it’s properly in the queue and not stuck because of some technical or admin issue? Why hasn’t my support request gotten a real response? Is there an escalation path for indie developers when a submission just sits there with no explanation? If Apple can’t provide a status update, what options do developers have when they’re paying for the program but can’t get any information about their release? I’d really appreciate it if someone from Developer Relations or App Review could take a look and give me some kind of explanation (or point me to someone who can).I’d also be interested to hear from other developers who’ve dealt with similar long waits in “Waiting for Review,” especially with first apps.The issue isn’t just that the review is taking longer than expected. It’s that when something seems off, there’s almost no way to figure out what’s actually going on.Indie developers put a lot of time, money, and effort into building for Apple’s ecosystem. Clear communication shouldn’t be this hard.Thanks for reading. Marque Development Team
Replies
2
Boosts
1
Views
159
Activity
4d
I have paid the 100 dollars, but my account has not yet been activated.
The last week i paid 100$ for the activacion of my account i have sent some emails and i havent had no answer so i dont no what to do the activation of my means the last step of my start up, if someone hace some experience in this pls help me (i have sent my ID that is the last step they notice me)
Replies
0
Boosts
0
Views
54
Activity
4d
Promotional offer is not showing in In-app subscription sheet.
Hello, I have 2 subscription group. Each group have different plans and promotional offer. I was set 1 month free promotional offer in all plans. While I subscribe any plan IAP sheet is not showing 1 month free promotional offer. I already used with new sandbox account. How can I get promotional offer in IAP sheet?
Replies
5
Boosts
1
Views
1.2k
Activity
5d
W-8BEN citizenship field locked to wrong country - Finance not responding for 4 weeks
Hi everyone, I'm an individual developer with a sole proprietorship registered in Poland. I'm a citizen of Belarus, I live in Poland with permanent residence and I'm a Polish tax resident. The problem is that in App Store Connect the Country of citizenship field in my W-8BEN form is set to Poland and I can't change it. I tried resetting the tax questionnaire, didn't help. I don't want to submit the form with wrong info, so my Paid Apps agreement is stuck in Pending User Info since September 23. My bank account has been stuck in Processing since the same day too. What I've done so far: Sep 23 wrote to Developer Support (case 102973741691), on Sep 25 they told me to contact Finance Sep 26 opened Finance case 22490850, followed up on Oct 5, 12 and 19, also sent an official extract from the Polish business register that shows my citizenship. No reply at all Oct 12 wrote to Developer Support again, nothing Oct 16 called support, they said someone would help me within a week, nobody contacted me Did anyone have the same issue with the citizenship field? How did you get it fixed? Thanks
Replies
1
Boosts
0
Views
176
Activity
1w
StoreKit 2 returns USD product metadata in TestFlight while the storefront is FRA/EUR
Hello, We would appreciate some guidance regarding an unexpected StoreKit currency result in a TestFlight build. Our iPhone language and region are both set to France. The Sandbox tester is also configured for France, and our subscription products have French availability and pricing configured in App Store Connect. In the TestFlight build we diagnosed, StoreKit reports the current storefront as France with EUR: storefront=FRA/143442/EUR However, all 10 subscription products are returned with USD product metadata: products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE Example: formatCurrency=USD locale=fr_US_currency_USD localeCurrency=USD display=1,99 $US price=1.99 We first observed this through Flutter's in_app_purchase integration. To determine whether the Flutter plugin was involved, we added a native StoreKit 2 diagnostic to the same TestFlight build. The native result was identical: receipt=sandboxReceipt storefront before=FRA/143442/EUR storefront after=FRA/143442/EUR products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE The issue appears specific to the TestFlight distribution. When the application is installed directly from the development computer, prices are returned in euros on the same device. We also tested with the regular Media & Purchases account signed out and a French Sandbox tester connected. Once the products loaded successfully, StoreKit still returned USD metadata. In another configuration, the application displayed the USD price while Apple's purchase sheet displayed the price in euros. We are using the price and formatting information returned directly by StoreKit. We do not want to infer the currency from the device region or perform a client-side currency conversion, because StoreKit should remain the authoritative source. Could you please help us understand: Is it expected for Storefront.current to report FRA/EUR while Product.priceFormatStyle.currencyCode, its locale currency, and Product.displayPrice use USD? Could a TestFlight or App Store Connect configuration cause product metadata to use a different currency from the current storefront? Is there another account, availability, pricing or distribution setting that we should verify? Is there a recommended way to refresh or invalidate the product metadata used by a TestFlight installation? We have already filed Feedback Assistant report FB24723329, which is currently under investigation. Thank you very much for any clarification or additional diagnostic steps you can suggest.
Replies
8
Boosts
1
Views
1.3k
Activity
1w
App rejected for missing In-App Purchases (IAP) after they were completely removed from the binary
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
Replies
0
Boosts
0
Views
113
Activity
1w
App is rejected due to Guideline 2.1(b) - Performance - App Completeness
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
Replies
0
Boosts
0
Views
91
Activity
1w
Purchase with promotional offer doesn't work - no transaction update, no webhook
Many of my purchases are encountering an issue when using a promotional offer (with a promo offer signature included). On the client side, everything works properly, and the purchase triggers the .success() callback. However, there are no updates in either the transaction/renewal info or via webhooks. According to the documentation, at least one of these server notifications should be triggered: OFFER_REDEEMED or SUBSCRIBED/RESUBSCRIBED. My server did not receive any signals. Furthermore, when I fetched the subscription status using the App Store Server API, the offer identifier did not appear in either the renewal info or the transaction info.
Replies
0
Boosts
0
Views
96
Activity
1w