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? var subscriptionTask: Task? 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) { _ =
Search results for
[tags:wwdc20-10021]
862 results found
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
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 be
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
StoreKit Test
StoreKit
In-App Purchase
Hello, I’m experiencing repeated rejections related to Guideline 2.1 – App Completeness for an iOS app using auto-renewable subscriptions, and I’m struggling to understand what is missing, as the purchase flow works correctly in sandbox and TestFlight. App setup: iOS app built with React Native (Expo + react-native-iap) Auto-renewable subscriptions: • Monthly: €4.99 • Yearly: €39.99 Paid Apps Agreement accepted Subscriptions configured and active in App Store Connect Privacy Policy and Apple Standard EULA included: • Visible inside the app on the subscription screen • Added in App Store metadata What App Review reports: App Review states they are unable to buy the in-app purchase, resulting in a rejection under Guideline 2.1 (App Completeness). What works correctly: getSubscriptions() returns valid products in sandbox Subscription titles, prices, and durations are displayed in the app UI requestSubscription() is triggered when tapping the subscribe button Apple purchase sheet appears and completes successfull
I added my first subscription to my app using StoreKit's SubscriptionStoreView. Everything worked as expected in the debug environment and also in TestFlight. So I submitted my app and subscriptions to App Store Connect, got everything Approved and released. After updating my app through App Store and checking the Subscription View, it just says Subscription Unavailable. The subscription is unavailable in the current storefront. I waited around 3 days and still getting the same message. Now the very strange behavior starts. I went to App Store Connect, I made and edit to the subscription description, saved, removed the edit, saved, and submitted to review. 15 minutes later the subscriptions appear in my app and everything works as expected. After getting the edit approved, the Subscription View in my app again only showed the message Subscription Unavailable. The subscription is unavailable in the current storefront. No user is able to see the subscriptions anymore, even though it worked as expected before th
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
StoreKit
App Store Connect
In-App Purchase
Hello, I’m seeking clarification on In-App Purchase requirements for a marketplace vendor app offering real-world, offline services. We plan to offer paid vendor listing plans (Free, Silver, Gold, etc.) that provide business benefits such as increased visibility, analytics, and also include feature limits like the number of images a vendor can upload to their business profile and enhanced dashboard views. These plans are intended to support vendors’ real-world businesses and do not provide digital content to consumers. Does gating vendor features such as image upload limits or dashboard capabilities require Apple In-App Purchase under App Store Review Guideline 3.1, or can such vendor plans be processed using a third-party payment gateway as account-based service tiers?
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
Subscriptions
App Review
App Store Connect
In-App Purchase
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.
Hello, Our app is approved for the Advanced Commerce API and we are currently testing in the Sandbox environment only. We have created generic product identifiers and have already submitted them via the Advanced Commerce API Access form. However, the generic product status in App Store Connect is still “Ready to Submit.” For Sandbox testing, is this status expected, or do we need to submit an app build or the generic product for review before Advanced Commerce works correctly? Thank you.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
In-App Purchase
Advanced Commerce API
Hello, I'm currently experiencing issues with IAP subscription setup. The following error appears: Billing Problem, There was a problem with your subscription renewal. To resolve, turn on Allow Purchases & Renewals, or leave off to test failed in-app purchase attempts and subscription renewals. I'm testing with a sandbox account, and automatic subscription renewal is turned on in the sandbox settings. A notification screen appears at the OS level, and consequently, a DID_FAIL_TO_RENEW error occurs on our payment server. I cannot determine the cause at all, so I would appreciate your assistance in checking this issue.
I'm ready to submit a new app with 3 subscription plans. But the status of the group remains 'Prepare for Submission.' And it won't change. All the individual subscription plans have the 'Ready to Submit' status. I have triple-checked individual plans to see if there is anything missing. No. Nothing is missing. There are no pending business contracts to review, either. I have even deleted an existing group and created a whole new subscription group. And I still end up with this prepare status. Am I the only one having this subscription group difficulty? One thing that I realize is that the status appears as 'Ready to Submit' on individual subscription plans. But their respective localization pair of display name and description get the Prepared status. The display name and the description fields are both filled for all three plans. What a nice, merry, merry Christmas. I don't know what else I can do to resolve this Prepared madness. I've been stuck for 4 hours.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
In-App Purchase
I’m attempting to resubmit my app after a few unsuccessful review submissions (first time dealing with this process). Previously, when I resubmitted (the last two times), the “In-App Purchases and Subscriptions” section was available on the version page, and I could select the appropriate IAPs and subscriptions prior to submitting for review. However, on the resubmission attempt, this section is no longer visible anywhere on the version page! I’ve tried several troubleshooting steps, but it still won’t appear. Current status: All IAPs/subscriptions: Waiting for Review App version status: 1.0 Prepare for Submission It has been suggested that I deleting all my subscriptions and [do] them over again...; however, this workaround is completely unacceptable! While it may work for unreleased apps, it would be catastrophic for production apps. If this UI bug occurred during a subsequent update, deleting IAPs would permanently invalidate the original product IDs—which cannot be reused. This would break all existing cu
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Review
In-App Purchase
I am trying to resubmit my app after failing a few times (first time doing this). Anyhow, when resubmitting the last 2 times, the In-App Purchases and Subscriptions section was always present on the version page so I could choose my IAP's and Subscriptions before submitting for review. Currently, I am trying to resubmit again, and the In-App Purchases and Subscriptions section is nowhere to be found and no matter what I try to do, it's just not showing up. Currently, all my IAP's and Subscriptions have a Waiting for Review status and my app status is 1.0 Prepare for Submission. Any ideas how I can get around this???
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Review
In-App Purchase
I’m testing auto-renewable subscription purchases in the sandbox environment. When I buy a subscription package using a sandbox test user, I don’t receive any App Store Server Notifications from the sandbox. However, when I use the “Request Test Notification” option in App Store Connect, the notification is received successfully. My sandbox server notification URL is configured correctly and publicly accessible. I also call finishTransaction() after purchase, and the receipt is verified successfully with the sandbox verification endpoint. To further debug, I used the getNotificationHistory API to fetch notifications for yesterday and today (Nov 3–4, 2025). Apple’s API response does not include any notifications or transaction IDs for my today’s purchases (Nov 4, 2025) — even though I can confirm from logs that those transactions were completed and verified successfully. It looks like sandbox purchase notifications are not being sent or logged, even though test notifications work fine. Could someone from Apple
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
App Store Connect
In-App Purchase
Two subscriptions, Plus and Max, are under the same subscription group, with Max having a higher tier than Plus. Promotional Offers for Max are configured in Apple Store Connect. When a user subscribes to Plus and then upgrades to Max using Promotional Offers, they are prompted with Upgrade upon expiration (Figure 1); if they don't use Promotional Offers, they are prompted to Upgrade immediately (Figure 2). Question 1: What is the situation with the upgrade upon expiration message in Figure 1? Is upgrading using Promotional Offers special? I couldn't find any relevant explanation in Apple's technical documentation. Question 2: Figure 1 shows an upgrade upon expiration, but after subscribing, the webhook still shows the subscription start time as the current time, meaning the upgrade hasn't started immediately. Is the message incorrect?
Hello, My app uses auto-renewable subscriptions. I submitted an update and at first the subscription products appeared properly under the monetization section in App Store Connect. However, after resubmitting the binary for review, the subscription product attachment disappeared, and now it is not possible to re-attach them. Even sandbox testing cannot retrieve the subscription identifiers anymore, because the monetization section no longer shows the products. Questions: Why did the subscription products disappear after a resubmission? How can I re-attach subscription products to the new version? Do I need to remove the current version submission to make subscriptions appear again? Does App Review need to finish processing subscription approval separately? Notes: The first version binary showed subscription products. After internal rejection and resubmission, they disappeared. Using StoreKit 2 restore flow in production code. Sandbox accounts cannot fetch product identifiers. Any guidance would be appreciated
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
StoreKit
App Store Connect
In-App Purchase
Hello, I’m integrating promotional offers for auto-renewable subscriptions using StoreKit 2. The offer is displayed correctly, the Apple purchase sheet appears, and I can start the payment flow. The sheet shows the correct discounted price and the end date of the offer. However, after confirming the purchase, an alert appears saying “Unable to Purchase - Contact the developer for more information” When dismissing the alert, Xcode logs the following: Purchase did not return a transaction: Error Domain=ASDServerErrorDomain Code=3902 No se ha podido realizar la compra UserInfo={ NSLocalizedFailureReason=No se ha podido realizar la compra, client-environment-type=Sandbox, AMSServerErrorCode=3902, storefront-country-code=ESP } Test environment: App installed from Xcode on a real iPhone Logged in with a Sandbox Apple ID Using StoreKit 2 Promotional offer applied using: Product.PurchaseOption.promotionalOffer(_:compactJWS:) On the server side, I generate the promotional offer signature exactly as described in Apple’