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

200 Posts

Post

Replies

Boosts

Views

Activity

App Stuck at Paywall Screen Due to Pending Subscription Review
Hello everyone, I’m facing an issue with my app where it's stuck at the paywall screen because my app has been approved but my subscriptions are still "Waiting for Review". This prevents me from fetching the subscription options needed to display behind the paywall. I've resubmitted my app multiple times and also created tickets and used Feedback Assistant to report this issue, but I haven't received a resolution yet. Has anyone encountered a similar situation or have any suggestions on how to resolve this? My app is live, but without approved subscriptions, users can't access its full functionality. Any advice or insights would be greatly appreciated. Thank you.
2
0
957
Mar ’26
We are stuck in having our subscription approved
Hi, we are trying to have our app approved since 2 weeks now with the subscription attached, now we are in a very strange situation where the app is approved but the subscription is still "Waiting for review" and we don't understand how is possible considering the app binary have the subscription flow inside. Can you help us? We also asked an expedited review today for the app due to business needs and just the app is approved without the subscription. The app is "Hey Clary" ID: 6752716476 Thanks
1
0
48
Mar ’26
MusicKit JS — Commercial B2B use case: SaaS managing song requests for venues
Hello everyone, I'm building Mixify (https://mixify.fr), a French SaaS platform for professional DJs and commercial venues (bars, lounges, event spaces). I'm looking for guidance on whether my use case is compliant with MusicKit JS policies. How it works: The Host (a venue owner or DJ) logs into the Mixify dashboard using their own Apple Music subscription. The Guests scan a QR code to access a web interface where they can browse the Apple Music catalog and suggest songs. The Host reviews suggestions, accepts or rejects them, and accepted songs are added to the playback queue. Playback is handled entirely by MusicKit JS in the host's authenticated browser session, connected to the venue's speakers. Key points: Mixify is a paid SaaS (starting at €49/month) — we charge for event management tools (dashboard, analytics, guest interaction), not for access to music content. Only the authenticated Apple Music subscriber hears/controls playback. Guests only browse and suggest — they never access playback. No content is downloaded, cached, or redistributed. We use the official MusicKit JS player exclusively. Venues are responsible for their own public performance licenses (SACEM in France). My questions: Does this B2B workflow — where a SaaS manages song request logistics but relies on MusicKit JS solely for playback by an authenticated subscriber — comply with the MusicKit guidelines? Are there any specific restrictions on using MusicKit JS in a commercial/venue environment that I should be aware of? Is there a recommended way to contact Apple Developer Relations directly for a formal compliance review of this use case? I've already submitted an inquiry via the Apple Developer contact form and email, but I'd appreciate any community insight or experience with similar integrations. Thank you!
0
0
66
Mar ’26
First Auto-Renewable Subscription – getSubscriptions returns empty in TestFlight
Hi, I am submitting auto-renewable subscriptions for the first time for a brand new iOS app (never approved before). Setup: App ID has In-App Purchase capability enabled Subscriptions created under a subscription group All metadata (pricing, localization, availability) completed Subscriptions currently show In Review Testing via TestFlight build Bundle ID matches App Store Connect Using react-native-iap (StoreKit under the hood) When calling: await getSubscriptions({ skus }) I consistently get: products fetched: 0 ProductsUnavailableError Also, the app version page does not show the “In-App Purchases and Subscriptions” section. Question: For a brand new app, will StoreKit return empty products while the first subscriptions are in review? Do the first subscriptions need to be approved and/or attached to a new app version before they become available in TestFlight sandbox? Thanks for any clarification.
1
0
110
Mar ’26
Apple Developer Enrollment Payment Completed but Account Not Activated
Dear Apple Developer Support Team, I am writing to formally escalate an issue regarding my Apple Developer Program enrollment. On February 23rd, I completed the $100 enrollment payment for an Individual Apple Developer account. The amount has been successfully debited from my card, and I have received official payment confirmation emails from Apple confirming receipt of the funds. However, as of today (March 3rd), my account still reflects that payment needs to be completed, and the enrollment remains inactive. This is my first-time enrollment as an individual developer. Given that payment has already been processed and acknowledged by Apple, I am concerned about the lack of activation and the absence of any communication regarding the delay. Additionally, I have submitted multiple support requests over the past five days but have not received any response or update. This delay is affecting my development and release timelines. I kindly request: Immediate confirmation of payment reconciliation on your end Clarification on the current status of my enrollment An estimated timeline for activation Escalation of this case to the appropriate billing or developer enrollment team Please let me know if any further documentation (transaction ID, invoice number, Apple ID details) is required from my side. I would appreciate your urgent assistance in resolving this matter. Kind regards, Gowtham Potureddi
0
0
92
Mar ’26
Good morning we are trying to get our app approved and have numerous subscription rejections
we have been offered a phone call by apple and we are going to do that but we need to be as ready as possible so here is the rejection we are getting We think we have addressed the issues but are unable to clear this message "Notes from App Review Guideline 2.1 - Performance - App Completeness We have returned your in-app purchase products to you as the required binary was not submitted. When you are ready to submit the binary, please resubmit the in-app purchase products with the binary. Next Steps Learn more about offering in-app purchases in App Store Connect Help. " This is the original message Guideline 3.1.2 - Business - Payments - Subscriptions Issue Description The submission did not include all the required information for apps offering auto-renewable subscriptions. The following information needs to be included in the App Store metadata: A functional link to the Terms of Use (EULA). If you are using the standard Apple Terms of Use (EULA), include a link to the Terms of Use in the App Description. If you are using a custom EULA, add it in App Store Connect. A functional link to the privacy policy in the Privacy Policy field in App Store Connect Next Steps Update the App Store metadata to include the information specified above. Resources Apps offering auto-renewable subscriptions must include all of the following required information in the app itself: Title of auto-renewing subscription (this may be the same as the in-app purchase product name) Length of subscription Price of subscription, and price per unit if appropriate Functional links to the privacy policy and Terms of Use (EULA) The app metadata must also include functional links to the privacy policy in the Privacy Policy field in App Store Connect and the Terms of Use (EULA) in the App Description or EULA field in App Store Connect. Review Schedule 2 of the Apple Developer Program License Agreement to learn more. Support Reply to this message in your preferred language if you need assistance. If you need additional support, use the Contact Us module. Consult with fellow developers and Apple engineers on the Apple Developer Forums. Request an App Review Appointment at Meet with Apple to discuss your app's review. Appointments subject to availability during your local business hours on Tuesdays and Thursdays. Provide feedback on this message and your review experience by completing a short survey. Request a phone call from App Review At your request, we can arrange for an Apple Representative to call you within the next three to five business days to discuss your App Review issue.
2
0
160
Feb ’26
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.
0
0
135
Feb ’26
Apple Developer Program Pending but It is Paid for and its been 48 hours
There has been quite a bit of posts mentioning this. Enrolled to the developer program, paid and money has cleared but absolutely no communication from apple on status or progress at all. Status still show pending and still prompting to complete a purchase. It's quite a terrible experience. If there are delays, is it possible to communicate what the delays are? If there is any progress, is it possible to communicate this progress? Only other option I had was - contact support, which stated I will receive a response in less than 48 hours as well, but that promise is broken too. Is there anyone from support that can assist?
0
0
89
Feb ’26
Transaction.updates sending me duplicated transactions after marking finished()
Hey y'all, I'm reaching out because of an observed issue that I am experience both in sandbox and in production environments. This issue does not occur when using the Local StoreKit configurations. For context, my app only implements auto-renewing subscriptions. I'm trying to track with my own analytics every time a successful purchase is made, whether in the app or externally through Subscription Settings. I'm seeming too many events for just one purchase. My app is observing Transaction.updates. When I make a purchase with Product.purchase(_:), I successfully handle the purchase result. After a few seconds, I receive 2-3 new transactions in my Transaction.updates, even though I already handled and finished the Purchase result. The transactions seem to have the same transactionId, and values such as revocationDate, expirationDate, and isUpgraded don't seem to change between any of them. For purchases made outside the app, I get the same issue. Transaction gets handled in updates several times. Note that this is not an issue if a subscription renews. I use `Transaction.reason
3
0
208
Feb ’26
Transaction.updates sending me duplicated transactions after marking finished()
Hey y'all, I'm reaching out because of an observed issue that I am experience both in sandbox and in production environments. This issue does not occur when using the Local StoreKit configurations. For context, my app only implements auto-renewing subscriptions. I'm trying to track with my own analytics every time a successful purchase is made, whether in the app or externally through Subscription Settings. I'm seeming too many events for just one purchase. My app is observing Transaction.updates. When I make a purchase with Product.purchase(_:), I successfully handle the purchase result. After about 10-20 seconds, I receive 2-3 new transactions in my Transaction.updates, even though I already handled and finished the Purchase result. This happens on production, where renewals are one week. This also happens in Sandbox, where at minimum renewals are every 3 minutes. The transactions do not differ in transactionId, revocationDate, expirationDate, nor isUpgraded... so not sure why they're coming in through Transaction.updates if there are no "updates" to be processing. For purchases made outside the app, I get the same issue. Transaction gets handled in updates several times. Note that this is not an issue if a subscription renews. I use `Transaction.reason I want to assume that StoreKit is a perfect API and can do no wrong (I know, a poor assumption but hear me out)... so where am I going wrong? My current thought is a Swift concurrency issue. This is a contrived example: // Assume Task is on MainActor Task(priority: .background) { @MainActor in for await result in Transaction.updates in { // We suspend current process, // so will we go to next item in the `for-await-in` loop? // Because we didn't finish the first transaction, will we see it again in the updates queue? await self.handle(result) } } @MainActor func handle(result) async { ... await Analytics.sendEvent("purchase_success") transaction.finish() }
3
0
156
Feb ’26
Subscription was rejected more as 3 times
I have created an app with one subscription for one year. The subscriptions was rejected for more as 3 time. But I don't know, what I must do. No description or no email from apple. Only I can see "developer action is needed". I have changed the name of the subscription group, I have changed the localization. but also it was rejected. I have resubmitted an app version with text, that the subscription to checked. but the app was distributed only the subscription. the text was ignored. now the state for the group localization is in waiting for review. but, the subscription under the subscription group is approved. what can I do?
1
0
397
Feb ’26
Application getting rejected, because of Guideline 2.1 - Performance - App Completeness
I have an auto-renewable subscription and added everything in IAP subscriptions and inside my app. But I still keep getting this rejection and no one responds to be question at the app review. " Guideline 2.1 - Performance - App Completeness We are unable to complete the review of the app because one or more of the in-app purchase products have not been submitted for review. Specifically, the app includes references to subscriptions but the associated in-app purchase products have not been submitted for review. Next Steps To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review. Note you must provide an App Review screenshot in App Store Connect in order to submit in-app purchases for review. Learn more about required in-app purchase metadata. " But I have done all thse things and submitted the new binary as well. Still rejection.
0
0
90
Feb ’26
Why doesn’t Transaction.updates emit reliably?
I'm on macOS Sequoia Version 15.7.3 (24G419) and using Xcode Version 26.2 (17C52). In my Xcode project, Transaction.updates and Product.SubscriptionInfo.Status.updates don’t seem to emit updates reliably. The code below works consistently in a fresh Xcode project using a minimal setup with a local StoreKit Configuration file containing a single auto-renewable subscription. class InAppPurchaseManager { static let shared = InAppPurchaseManager() var transactionTask: Task<Void, Never>? var subscriptionTask: Task<Void, Never>? init() { print("Launched InAppPurchaseManager...") transactionTask = Task(priority: .background) { for await result in Transaction.updates { print("\nReceived transaction update...") try? await result.payloadValue.finish() } } subscriptionTask = Task(priority: .background) { for await result in Product.SubscriptionInfo.Status.updates { print("\nReceived subscription update...") print("state:", result.state.localizedDescription) } } } } I initialise it in: func applicationDidFinishLaunching(_ aNotification: Notification) { _ = InAppPurchaseManager.shared } I do not build any UI for this test. I open StoreKit Transaction Manager then click Create Transaction → select the product → choose Purchase (Default) → Next → Done. The console shows that it detects the initial purchase, renewals and finishes each transaction. It also works even if I do not add the In-App Purchase capability. In my actual project, the initial purchase is detected and finished, but renewals are not detected. Subsequent transactions then appear as unverified, presumably because the updates are not being observed so the transactions are not being finished. What can I do to make this work reliably in my actual project? For context, in the actual project: I have a StoreKit Configuration file that is synced with App Store Connect The In-App Purchase capability is enabled The configuration file is selected in the scheme The products in App Store Connect show “Ready to Submit” Loading products works: try await Product.products(for: ...) Also, I use ProductView for the purchase UI. The first purchase works and is detected and finished, but subsequent renewals are not finished because the updates do not seem to be emitted.
9
0
384
Feb ’26
StoreKit 2: is there a way for an app to be informed in real time if an auto-renewable subscription is cancelled by the user?
Hello, In my iOS app, I have a customer center where the user can see some details about its current subscription. I display things like the billing period, the price, the introductory offer state, the renewal date if it's not cancelled or the expiration date if it's cancelled, etc. From this screen, the user can open the subscription management sheet. I want to detect if the user cancels the subscription from this sheet or from the App Store (when the app is running) so I can refresh the information displayed on my customer center. I checked the asynchronous sequences provided by StoreKit 2 like Transaction.updates or Product.SubscriptionInfo.Status.updates and tested with a Sandbox account on my physical device with the app debugged using Xcode. But I noticed these sequences don't emit when I cancel the subscription in Sandbox. Is this the expected behavior? Is there a way to observe in real time if a user cancels the subscription? I can still manually check when the sheet is dismissed but it's not ideal because I want to know even if the user cancel from outside of the app with the app running. Thank you, Axel
2
1
444
Feb ’26
Implement in-app subscriptions
I am developing a mobile application using Flutter and plan to implement in-app subscriptions for both iOS platforms. I would like to request guidance on the following: Technical Implementation: Recommended best practices for implementing auto-renewable subscriptions in Flutter apps StoreKit 2 integration requirements and compatibility considerations Server-to-server notification setup and endpoint requirements Testing Procedures: Sandbox environment configuration and testing workflow TestFlight testing requirements for subscription features Recommended testing scenarios before production release Required Documentation and Accounts: Complete list of required agreements (Paid Applications Agreement, etc.) Banking and tax information requirements Privacy policy and terms of service specifications for subscription apps App Review guidelines specific to subscription-based apps Subscription Management: Grace period implementation requirements Handling subscription cancellations and refunds Promotional offers and introductory pricing setup Could you please provide documentation or direct me to the appropriate resources? Additionally, if there are any specific requirements for Flutter-based applications, I would appreciate that information. Application Details: Platform: iOS (Flutter framework) Subscription Type: Auto-renewable subscriptions
0
0
102
Feb ’26
Subscription shows "Missing Metadata" but all fields appear complete - Cannot submit for review
Hello, I'm trying to submit my first auto-renewable subscription for my app, but it shows "Missing Metadata" status and I cannot identify which field is incomplete. What I've completed: ✅ Product ID and Display Name ✅ Description ✅ Price: $4.99/month for 175 countries ✅ Duration: 1 month ✅ Localization (English): Display name and description filled ✅ Review Screenshot uploaded ✅ Review Notes provided ✅ Tax Category set ✅ Paid Apps Agreement signed and active ✅ Banking and tax info complete Common issues I've already checked: ✅ Subscription is part of a subscription group (Premium Features) ✅ At least one pricing tier is configured ✅ Localization has both display name AND description ✅ Review screenshot is provided ✅ Paid Apps Agreement is active (not pending) The Problem: Subscription status: "Missing Metadata" Localization status: "Prepare for Submission" Need it to show "Ready to Submit" to include with my app My Question: What field am I missing? I've checked all visible fields but the status won't change from "Missing Metadata" to "Ready to Submit". Has anyone successfully resolved this? Thanks!
3
0
203
Feb ’26
IAP Missing From Build
I recently had an app rejected for 2.1 - Performance - App Completeness and specifically, “no subscription options available“. The previous build I submitted did have the issue, but this latest one did not, at least as far as I could test. I tested on two different devices using a sandbox account as well as TestFlight and the IAP were visible and working. I also see each IAP pop up correctly within RevenueCat. One thing that may be an issue is I don’t have the section to attach the IAP onto the build before submitting to review. I’ve read through every help article I could find and have triple-checked everything with the IAP is in order. Pricing, localization, screenshot, review notes, signed agreement, etc. I’ve also tried reaching out several times through the contact us page as well as replied to the review, but haven’t received a response. Is there anything I could be missing? Is not attaching them to the build the issue and if so, how can I get them to show up without recreating the IAP with new names? Thank you.
2
0
119
Feb ’26
App Stuck at Paywall Screen Due to Pending Subscription Review
Hello everyone, I’m facing an issue with my app where it's stuck at the paywall screen because my app has been approved but my subscriptions are still "Waiting for Review". This prevents me from fetching the subscription options needed to display behind the paywall. I've resubmitted my app multiple times and also created tickets and used Feedback Assistant to report this issue, but I haven't received a resolution yet. Has anyone encountered a similar situation or have any suggestions on how to resolve this? My app is live, but without approved subscriptions, users can't access its full functionality. Any advice or insights would be greatly appreciated. Thank you.
Replies
2
Boosts
0
Views
957
Activity
Mar ’26
We are stuck in having our subscription approved
Hi, we are trying to have our app approved since 2 weeks now with the subscription attached, now we are in a very strange situation where the app is approved but the subscription is still "Waiting for review" and we don't understand how is possible considering the app binary have the subscription flow inside. Can you help us? We also asked an expedited review today for the app due to business needs and just the app is approved without the subscription. The app is "Hey Clary" ID: 6752716476 Thanks
Replies
1
Boosts
0
Views
48
Activity
Mar ’26
MusicKit JS — Commercial B2B use case: SaaS managing song requests for venues
Hello everyone, I'm building Mixify (https://mixify.fr), a French SaaS platform for professional DJs and commercial venues (bars, lounges, event spaces). I'm looking for guidance on whether my use case is compliant with MusicKit JS policies. How it works: The Host (a venue owner or DJ) logs into the Mixify dashboard using their own Apple Music subscription. The Guests scan a QR code to access a web interface where they can browse the Apple Music catalog and suggest songs. The Host reviews suggestions, accepts or rejects them, and accepted songs are added to the playback queue. Playback is handled entirely by MusicKit JS in the host's authenticated browser session, connected to the venue's speakers. Key points: Mixify is a paid SaaS (starting at €49/month) — we charge for event management tools (dashboard, analytics, guest interaction), not for access to music content. Only the authenticated Apple Music subscriber hears/controls playback. Guests only browse and suggest — they never access playback. No content is downloaded, cached, or redistributed. We use the official MusicKit JS player exclusively. Venues are responsible for their own public performance licenses (SACEM in France). My questions: Does this B2B workflow — where a SaaS manages song request logistics but relies on MusicKit JS solely for playback by an authenticated subscriber — comply with the MusicKit guidelines? Are there any specific restrictions on using MusicKit JS in a commercial/venue environment that I should be aware of? Is there a recommended way to contact Apple Developer Relations directly for a formal compliance review of this use case? I've already submitted an inquiry via the Apple Developer contact form and email, but I'd appreciate any community insight or experience with similar integrations. Thank you!
Replies
0
Boosts
0
Views
66
Activity
Mar ’26
First Auto-Renewable Subscription – getSubscriptions returns empty in TestFlight
Hi, I am submitting auto-renewable subscriptions for the first time for a brand new iOS app (never approved before). Setup: App ID has In-App Purchase capability enabled Subscriptions created under a subscription group All metadata (pricing, localization, availability) completed Subscriptions currently show In Review Testing via TestFlight build Bundle ID matches App Store Connect Using react-native-iap (StoreKit under the hood) When calling: await getSubscriptions({ skus }) I consistently get: products fetched: 0 ProductsUnavailableError Also, the app version page does not show the “In-App Purchases and Subscriptions” section. Question: For a brand new app, will StoreKit return empty products while the first subscriptions are in review? Do the first subscriptions need to be approved and/or attached to a new app version before they become available in TestFlight sandbox? Thanks for any clarification.
Replies
1
Boosts
0
Views
110
Activity
Mar ’26
Apple Developer Enrollment Payment Completed but Account Not Activated
Dear Apple Developer Support Team, I am writing to formally escalate an issue regarding my Apple Developer Program enrollment. On February 23rd, I completed the $100 enrollment payment for an Individual Apple Developer account. The amount has been successfully debited from my card, and I have received official payment confirmation emails from Apple confirming receipt of the funds. However, as of today (March 3rd), my account still reflects that payment needs to be completed, and the enrollment remains inactive. This is my first-time enrollment as an individual developer. Given that payment has already been processed and acknowledged by Apple, I am concerned about the lack of activation and the absence of any communication regarding the delay. Additionally, I have submitted multiple support requests over the past five days but have not received any response or update. This delay is affecting my development and release timelines. I kindly request: Immediate confirmation of payment reconciliation on your end Clarification on the current status of my enrollment An estimated timeline for activation Escalation of this case to the appropriate billing or developer enrollment team Please let me know if any further documentation (transaction ID, invoice number, Apple ID details) is required from my side. I would appreciate your urgent assistance in resolving this matter. Kind regards, Gowtham Potureddi
Replies
0
Boosts
0
Views
92
Activity
Mar ’26
Subscription in new app
I am trying to add subsription to the app I want to upload but it has this information or error. Dont know why, i have added the information to add under subsription
Replies
0
Boosts
0
Views
28
Activity
Feb ’26
Good morning we are trying to get our app approved and have numerous subscription rejections
we have been offered a phone call by apple and we are going to do that but we need to be as ready as possible so here is the rejection we are getting We think we have addressed the issues but are unable to clear this message "Notes from App Review Guideline 2.1 - Performance - App Completeness We have returned your in-app purchase products to you as the required binary was not submitted. When you are ready to submit the binary, please resubmit the in-app purchase products with the binary. Next Steps Learn more about offering in-app purchases in App Store Connect Help. " This is the original message Guideline 3.1.2 - Business - Payments - Subscriptions Issue Description The submission did not include all the required information for apps offering auto-renewable subscriptions. The following information needs to be included in the App Store metadata: A functional link to the Terms of Use (EULA). If you are using the standard Apple Terms of Use (EULA), include a link to the Terms of Use in the App Description. If you are using a custom EULA, add it in App Store Connect. A functional link to the privacy policy in the Privacy Policy field in App Store Connect Next Steps Update the App Store metadata to include the information specified above. Resources Apps offering auto-renewable subscriptions must include all of the following required information in the app itself: Title of auto-renewing subscription (this may be the same as the in-app purchase product name) Length of subscription Price of subscription, and price per unit if appropriate Functional links to the privacy policy and Terms of Use (EULA) The app metadata must also include functional links to the privacy policy in the Privacy Policy field in App Store Connect and the Terms of Use (EULA) in the App Description or EULA field in App Store Connect. Review Schedule 2 of the Apple Developer Program License Agreement to learn more. Support Reply to this message in your preferred language if you need assistance. If you need additional support, use the Contact Us module. Consult with fellow developers and Apple engineers on the Apple Developer Forums. Request an App Review Appointment at Meet with Apple to discuss your app's review. Appointments subject to availability during your local business hours on Tuesdays and Thursdays. Provide feedback on this message and your review experience by completing a short survey. Request a phone call from App Review At your request, we can arrange for an Apple Representative to call you within the next three to five business days to discuss your App Review issue.
Replies
2
Boosts
0
Views
160
Activity
Feb ’26
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
0
Boosts
0
Views
135
Activity
Feb ’26
Apple Developer Program Pending but It is Paid for and its been 48 hours
There has been quite a bit of posts mentioning this. Enrolled to the developer program, paid and money has cleared but absolutely no communication from apple on status or progress at all. Status still show pending and still prompting to complete a purchase. It's quite a terrible experience. If there are delays, is it possible to communicate what the delays are? If there is any progress, is it possible to communicate this progress? Only other option I had was - contact support, which stated I will receive a response in less than 48 hours as well, but that promise is broken too. Is there anyone from support that can assist?
Replies
0
Boosts
0
Views
89
Activity
Feb ’26
Transaction.updates sending me duplicated transactions after marking finished()
Hey y'all, I'm reaching out because of an observed issue that I am experience both in sandbox and in production environments. This issue does not occur when using the Local StoreKit configurations. For context, my app only implements auto-renewing subscriptions. I'm trying to track with my own analytics every time a successful purchase is made, whether in the app or externally through Subscription Settings. I'm seeming too many events for just one purchase. My app is observing Transaction.updates. When I make a purchase with Product.purchase(_:), I successfully handle the purchase result. After a few seconds, I receive 2-3 new transactions in my Transaction.updates, even though I already handled and finished the Purchase result. The transactions seem to have the same transactionId, and values such as revocationDate, expirationDate, and isUpgraded don't seem to change between any of them. For purchases made outside the app, I get the same issue. Transaction gets handled in updates several times. Note that this is not an issue if a subscription renews. I use `Transaction.reason
Replies
3
Boosts
0
Views
208
Activity
Feb ’26
Transaction.updates sending me duplicated transactions after marking finished()
Hey y'all, I'm reaching out because of an observed issue that I am experience both in sandbox and in production environments. This issue does not occur when using the Local StoreKit configurations. For context, my app only implements auto-renewing subscriptions. I'm trying to track with my own analytics every time a successful purchase is made, whether in the app or externally through Subscription Settings. I'm seeming too many events for just one purchase. My app is observing Transaction.updates. When I make a purchase with Product.purchase(_:), I successfully handle the purchase result. After about 10-20 seconds, I receive 2-3 new transactions in my Transaction.updates, even though I already handled and finished the Purchase result. This happens on production, where renewals are one week. This also happens in Sandbox, where at minimum renewals are every 3 minutes. The transactions do not differ in transactionId, revocationDate, expirationDate, nor isUpgraded... so not sure why they're coming in through Transaction.updates if there are no "updates" to be processing. For purchases made outside the app, I get the same issue. Transaction gets handled in updates several times. Note that this is not an issue if a subscription renews. I use `Transaction.reason I want to assume that StoreKit is a perfect API and can do no wrong (I know, a poor assumption but hear me out)... so where am I going wrong? My current thought is a Swift concurrency issue. This is a contrived example: // Assume Task is on MainActor Task(priority: .background) { @MainActor in for await result in Transaction.updates in { // We suspend current process, // so will we go to next item in the `for-await-in` loop? // Because we didn't finish the first transaction, will we see it again in the updates queue? await self.handle(result) } } @MainActor func handle(result) async { ... await Analytics.sendEvent("purchase_success") transaction.finish() }
Replies
3
Boosts
0
Views
156
Activity
Feb ’26
Subscription was rejected more as 3 times
I have created an app with one subscription for one year. The subscriptions was rejected for more as 3 time. But I don't know, what I must do. No description or no email from apple. Only I can see "developer action is needed". I have changed the name of the subscription group, I have changed the localization. but also it was rejected. I have resubmitted an app version with text, that the subscription to checked. but the app was distributed only the subscription. the text was ignored. now the state for the group localization is in waiting for review. but, the subscription under the subscription group is approved. what can I do?
Replies
1
Boosts
0
Views
397
Activity
Feb ’26
Application getting rejected, because of Guideline 2.1 - Performance - App Completeness
I have an auto-renewable subscription and added everything in IAP subscriptions and inside my app. But I still keep getting this rejection and no one responds to be question at the app review. " Guideline 2.1 - Performance - App Completeness We are unable to complete the review of the app because one or more of the in-app purchase products have not been submitted for review. Specifically, the app includes references to subscriptions but the associated in-app purchase products have not been submitted for review. Next Steps To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review. Note you must provide an App Review screenshot in App Store Connect in order to submit in-app purchases for review. Learn more about required in-app purchase metadata. " But I have done all thse things and submitted the new binary as well. Still rejection.
Replies
0
Boosts
0
Views
90
Activity
Feb ’26
Why doesn’t Transaction.updates emit reliably?
I'm on macOS Sequoia Version 15.7.3 (24G419) and using Xcode Version 26.2 (17C52). In my Xcode project, Transaction.updates and Product.SubscriptionInfo.Status.updates don’t seem to emit updates reliably. The code below works consistently in a fresh Xcode project using a minimal setup with a local StoreKit Configuration file containing a single auto-renewable subscription. class InAppPurchaseManager { static let shared = InAppPurchaseManager() var transactionTask: Task<Void, Never>? var subscriptionTask: Task<Void, Never>? init() { print("Launched InAppPurchaseManager...") transactionTask = Task(priority: .background) { for await result in Transaction.updates { print("\nReceived transaction update...") try? await result.payloadValue.finish() } } subscriptionTask = Task(priority: .background) { for await result in Product.SubscriptionInfo.Status.updates { print("\nReceived subscription update...") print("state:", result.state.localizedDescription) } } } } I initialise it in: func applicationDidFinishLaunching(_ aNotification: Notification) { _ = InAppPurchaseManager.shared } I do not build any UI for this test. I open StoreKit Transaction Manager then click Create Transaction → select the product → choose Purchase (Default) → Next → Done. The console shows that it detects the initial purchase, renewals and finishes each transaction. It also works even if I do not add the In-App Purchase capability. In my actual project, the initial purchase is detected and finished, but renewals are not detected. Subsequent transactions then appear as unverified, presumably because the updates are not being observed so the transactions are not being finished. What can I do to make this work reliably in my actual project? For context, in the actual project: I have a StoreKit Configuration file that is synced with App Store Connect The In-App Purchase capability is enabled The configuration file is selected in the scheme The products in App Store Connect show “Ready to Submit” Loading products works: try await Product.products(for: ...) Also, I use ProductView for the purchase UI. The first purchase works and is detected and finished, but subsequent renewals are not finished because the updates do not seem to be emitted.
Replies
9
Boosts
0
Views
384
Activity
Feb ’26
StoreKit 2: is there a way for an app to be informed in real time if an auto-renewable subscription is cancelled by the user?
Hello, In my iOS app, I have a customer center where the user can see some details about its current subscription. I display things like the billing period, the price, the introductory offer state, the renewal date if it's not cancelled or the expiration date if it's cancelled, etc. From this screen, the user can open the subscription management sheet. I want to detect if the user cancels the subscription from this sheet or from the App Store (when the app is running) so I can refresh the information displayed on my customer center. I checked the asynchronous sequences provided by StoreKit 2 like Transaction.updates or Product.SubscriptionInfo.Status.updates and tested with a Sandbox account on my physical device with the app debugged using Xcode. But I noticed these sequences don't emit when I cancel the subscription in Sandbox. Is this the expected behavior? Is there a way to observe in real time if a user cancels the subscription? I can still manually check when the sheet is dismissed but it's not ideal because I want to know even if the user cancel from outside of the app with the app running. Thank you, Axel
Replies
2
Boosts
1
Views
444
Activity
Feb ’26
Implement in-app subscriptions
I am developing a mobile application using Flutter and plan to implement in-app subscriptions for both iOS platforms. I would like to request guidance on the following: Technical Implementation: Recommended best practices for implementing auto-renewable subscriptions in Flutter apps StoreKit 2 integration requirements and compatibility considerations Server-to-server notification setup and endpoint requirements Testing Procedures: Sandbox environment configuration and testing workflow TestFlight testing requirements for subscription features Recommended testing scenarios before production release Required Documentation and Accounts: Complete list of required agreements (Paid Applications Agreement, etc.) Banking and tax information requirements Privacy policy and terms of service specifications for subscription apps App Review guidelines specific to subscription-based apps Subscription Management: Grace period implementation requirements Handling subscription cancellations and refunds Promotional offers and introductory pricing setup Could you please provide documentation or direct me to the appropriate resources? Additionally, if there are any specific requirements for Flutter-based applications, I would appreciate that information. Application Details: Platform: iOS (Flutter framework) Subscription Type: Auto-renewable subscriptions
Replies
0
Boosts
0
Views
102
Activity
Feb ’26
Subscription shows "Missing Metadata" but all fields appear complete - Cannot submit for review
Hello, I'm trying to submit my first auto-renewable subscription for my app, but it shows "Missing Metadata" status and I cannot identify which field is incomplete. What I've completed: ✅ Product ID and Display Name ✅ Description ✅ Price: $4.99/month for 175 countries ✅ Duration: 1 month ✅ Localization (English): Display name and description filled ✅ Review Screenshot uploaded ✅ Review Notes provided ✅ Tax Category set ✅ Paid Apps Agreement signed and active ✅ Banking and tax info complete Common issues I've already checked: ✅ Subscription is part of a subscription group (Premium Features) ✅ At least one pricing tier is configured ✅ Localization has both display name AND description ✅ Review screenshot is provided ✅ Paid Apps Agreement is active (not pending) The Problem: Subscription status: "Missing Metadata" Localization status: "Prepare for Submission" Need it to show "Ready to Submit" to include with my app My Question: What field am I missing? I've checked all visible fields but the status won't change from "Missing Metadata" to "Ready to Submit". Has anyone successfully resolved this? Thanks!
Replies
3
Boosts
0
Views
203
Activity
Feb ’26
IAP Missing From Build
I recently had an app rejected for 2.1 - Performance - App Completeness and specifically, “no subscription options available“. The previous build I submitted did have the issue, but this latest one did not, at least as far as I could test. I tested on two different devices using a sandbox account as well as TestFlight and the IAP were visible and working. I also see each IAP pop up correctly within RevenueCat. One thing that may be an issue is I don’t have the section to attach the IAP onto the build before submitting to review. I’ve read through every help article I could find and have triple-checked everything with the IAP is in order. Pricing, localization, screenshot, review notes, signed agreement, etc. I’ve also tried reaching out several times through the contact us page as well as replied to the review, but haven’t received a response. Is there anything I could be missing? Is not attaching them to the build the issue and if so, how can I get them to show up without recreating the IAP with new names? Thank you.
Replies
2
Boosts
0
Views
119
Activity
Feb ’26