StoreKit

RSS for tag

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

Posts under StoreKit tag

200 Posts

Post

Replies

Boosts

Views

Activity

StoreKit's manageSubscriptionsSheet view modifier not loading
Our app was just rejected by Apple because they say the subscription management sheet never loads. It just spins indefinitely. We're using StoreKit's manageSubscriptionsSheet view modifier to present the sheet, and it's always worked for us when testing in SandBox. Has anyone else had this problem? Given that it's Apple's own code that got us rejected, what's our path forward?
10
6
1.5k
Nov ’25
StoreKit2: appAccountToken in purchase() always returns first value instead of updated UUID
Hello, I’m experiencing an issue with StoreKit 2 when passing a new appAccountToken for each purchase request. Case-ID: 15948169 (for DTS reference) Description of the Problem When initiating a purchase, I generate a new UUID to use as the appAccountToken: let serverTransactionId = UUID() let options: Set<Product.PurchaseOption> = [ .appAccountToken(serverTransactionId) ] let result = try await product.purchase(options: options) Expected Behavior: Each new purchase should return the updated appAccountToken that I pass into the purchase options. Actual Behavior: The payload response after success always contains the same appAccountToken from the very first transaction. It ignores subsequent UUIDs I pass and keeps reusing the original one. This causes issues because the same identifier is being reused across multiple transactions, making it difficult to map purchases to the correct user session. Steps to Reproduce Generate a fresh UUID using UUID(). Pass it as .appAccountToken when calling purchase(). Complete the transaction in the sandbox environment. Inspect the payload response → The appAccountToken value is always the same as the first one used, not the newly provided one. Additional Info I do have a focused test project that reproduces this issue. The issue appears specific to appAccountToken persistence across multiple transactions. Has anyone else experienced this behavior with StoreKit 2? Is this expected (Apple caching the first token) or could this be a bug?
3
1
400
Nov ’25
Subscriptions not showing in react-native-iap / StoreKit although setup and waiting for review
Hello everyone, I’m currently experiencing an issue where no subscriptions appear in my app when fetching products from StoreKit via react-native-iap. I would like to confirm whether this is related to my App Store Connect setup or a possible StoreKit limitation. Context My app uses react-native-iap and successfully initializes the StoreKit connection with: await RNIap.initConnection(); const items = await RNIap.fetchProducts({ skus: productIds, type: 'subs', }); productIds contains valid identifiers matching those configured in App Store Connect. The API /plan dynamically returns the correct product IDs. The fetch call completes successfully, but returns an empty array ([]). What I have already done Confirmed all subscription products exist and are correctly linked to the same app bundle ID. All subscriptions are currently in “Waiting for Review” status in App Store Connect. Verified that StoreKit connection is initialized correctly (RNIap.initConnection() returns successfully). Tested on a real device (iPhone 14, iOS 18). Contacted App Review by phone — they confirmed my implementation was correct and told me that pending subscriptions should still appear for review. Followed Apple’s official guides: TN3186: Troubleshooting in-app purchase availability in the sandbox TN3188: Troubleshooting in-app purchase availability in the App Store Unfortunately, neither solved the issue. Code excerpt Here’s the relevant portion of my React Native code: await RNIap.initConnection(); let items = await RNIap.fetchProducts({ skus: productIds, type: 'subs', }); setProducts(items); console.log('🛍️ Products from Store:', items); Everything runs fine, no errors — but items is always empty. Question Could this be due to the fact that my subscriptions are still Waiting for Review (not yet “Ready for Sale”)? If yes, is there any way for the App Review or developer testing environment to see them before they are approved? Or could I be missing a configuration step (for example, enabling the App-Specific Shared Secret or App Store server notifications)? Any advice from someone who has faced this issue or from Apple staff would be greatly appreciated 🙏 Environment React Native 0.76 react-native-iap 13.7.0 iOS 18.1 (real device) Xcode 16 Products: Auto-renewable subscriptions Status: “Waiting for Review” App currently in App Review Thank you, Sébastien
4
0
463
Nov ’25
Auto renewable subsction, auto renews to different product id
I need help understanding how the In-App purchase subscription works within the same subscription group and how the Order plays a role at the time of auto-renewal. In my case, I have 5 in-app products in the same group as given below with their Order, Order Product ---------------------- 1 Gold Annual 2 Gold Monthly 3 Silver Annual Old, 3 Silver Annual New 4 Silver Monthly One user purchased Silver annual New, at the time of expiry, after a year, it auto-renewed to Silver annual Old. My understanding is that if a user has purchased Silver annual New, at the time of renewal, it should renew with the same product, not with different product id. Is this behaviour expected? Is there any official document which can explain this behaviour? Note: There was no Order given before, recently we have changed the Order to manage Upgrade and Downgrade for In-App subscriptions.
0
0
74
Nov ’25
StoreKit 2 not loading subscription products
Hi everyone, I’m seeing a strange behavior with StoreKit 2 and I’d like to know if anyone else experienced this. My subscription group “ROTA Premium” (Monthly + Annual) is currently Waiting for Review in App Store Connect. What works In Xcode’s StoreKit sandbox, everything loads correctly: Products appear Trial starts Purchases work What doesn’t work In TestFlight and App Review, StoreKit 2 returns zero products, so my paywall shows: “No subscription options found.” There are: No geo restrictions No backend No VPN/IP filtering Paid Apps Agreement is accepted App Review said the device was online, but couldn’t give technical help. My question Has anyone seen StoreKit 2 fail to load subscription products when the subscription group is still in Waiting for Review? Do subscription groups need to be reviewed together with the app version for StoreKit 2 to return them in TestFlight/App Review? Any advice would be appreciated! Thanks.
0
1
91
Nov ’25
SubscriptionStoreView - Restoring Subscriptions
I'm using code similar to the following to conditionally show the SubscriptionStoreView and the .storeButton(.visible, for: .restorePurchases) modifier is used to allow the user to restore an existing subscription. How can I listen for events that would allow me to close this view once the subscription is restored? The .onInAppPurchaseCompletion closure does not handle this and it also appears that listening for results in Transaction.currentEntitlements also doesn't handle the fact that a subscription is restored. Any guidance on how to determine if the subscription has been restored would be greatly appreciated. Finally, how can this be tested effectively in both TestFlight and in Xcode with the simulator. if subscriptionManager.subscription == .none { SubscriptionStoreView(groupID: "1234567") { SubscriptionMarketingView(transparency: false) .containerBackground(for: .subscriptionStoreFullHeight) { GradientBackground() } } .backgroundStyle(.clear) .storeButton(.visible, for: .restorePurchases) .storeButton(.visible, for: .redeemCode) .onInAppPurchaseCompletion { product, result in Task { await subscriptionManager.entitlements() } } }
0
1
130
Nov ’25
Unable to test first In-App Purchase for non-consumable - receive empty array.
Hello, I am really struggling to test my first In-App Purchase for a non-consumable product. I have setup the following: App Store Connect: Paid agreement, Bank account, tax forms and compliance all submitted and active Privacy policy added Pricing and availability - all setup In-App Purchases screen - status is "Ready to Submit" Code refers to the correct BundleID: com.mycompany.product - it is exactly the same in App Store Connect and within my code. XCode: I have setup a StoreKit configuration file and it has correctly sync'd with App Store Connect and pulls through the correct data. The code compiles with no errors or warnings. I trying to initially test in the simulator before I - use a Sandbox account in a spare device. Outcome from all of the above, when I run the app, all I receive is an empty array!! What could I be missing or overlooking? Any help you could offer would be gratefully received. Thanks.
2
0
133
Nov ’25
"StoreKit Testing in Xcode" certificate is not trusted on iOS 26
Hello. I have setup a StoreKit testing in the app that was and still is perfectly working on iOS 18. Unfortunately when run on iOS 26 the following error gets printed in the console after calling Transaction.currentEntitlement(for:) method: Failed to verify certificate chain due to client recoverable failure: Error Domain=NSOSStatusErrorDomain Code=-67843 "“StoreKit Testing in Xcode” certificate is not trusted" UserInfo={NSLocalizedDescription=“StoreKit Testing in Xcode” certificate is not trusted, NSUnderlyingError=0x109de7e10 {Error Domain=NSOSStatusErrorDomain Code=-67843 "Certificate 0 “StoreKit Testing in Xcode” has errors: Root is not trusted;" UserInfo={NSLocalizedDescription=Certificate 0 “StoreKit Testing in Xcode” has errors: Root is not trusted;}}} I'm not seeting any StoreKit Testing certificates in phone's certificate trust settings. This test was performed on iOS 26.0 (23A341) with app built in Xcode 16.4. FB20339145
1
0
176
Nov ’25
promotion code with user information
What we're trying to implement is not a new subscription promotion It has implemented a function that allows certain members to experience the membership of the application by providing promotional codes. With the offer code provided by Apple, we are currently implemented Log in => Membership provided by the member entering the promotion code => I'm inquiring because I think the next logic will be difficult. There is no way we can identify the member when entering from the app store with Offer code I would like to inquire about developing it so that it does not violate Apple's review regulations as much as possible.
0
0
70
Nov ’25
verifyReceipt endpoint failing on occassion
I am finding that the verifyReceipt endpoint used to verify a receipt is failing on occassion starting around October 27, 2015. I realize this API is deprecated. I am using cURL to call verifyReceipt. The specific errors are 52 - Empty reply from server and 56 - Connection closed abruptly. This indicates an issue with Apple's server as I understand it. Is anyone else experiencing this as well?
0
0
75
Nov ’25
Flutter app no subscription found.
I already created subscription in appstore connect with proper metadata still when I am using product id to purchase the subscription using flutter package in_app_purchase: ^3.2.3 it say's no subscription found with product id x. I observed everything minutely all seems fine than why ?? I try to test with storekit that works btw. I also have sandbox account and same signed in my iPhone 12 mini but much please look into this.. Flutter code : Future<void> _loadSubscriptions() async { Set<String> kSubscriptionIds = {'monthly_plan_test_iop_81'}; ProductDetailsResponse response = await _inAppPurchase.queryProductDetails(kSubscriptionIds); if (response.notFoundIDs.isNotEmpty) { kLog("Subscription IDs not found: ${response.notFoundIDs}"); } kLog("God it works seriously"); kLog(response.notFoundIDs); kLog(response.productDetails); kLog(response.error); subscriptions.value = response.productDetails; }
1
0
138
Nov ’25
IAP Product Info Error & Sandbox Webhook/Test API Failures
Hello, I'm suddenly encountering errors with In-App Purchases (IAP) and my sandbox webhooks, which were working correctly just a few days ago. Specifically: Product Information Error: I'm receiving the following error when trying to fetch product information: { "type": "product_info", "result": "error", "error": "An unknown error occurred" } This API call was functioning normally until today. Sandbox Webhook Failure: I have configured a sandbox webhook, but my server is not receiving any notifications from the App Store. Test API 401: When I attempt to call the test API (https://api.storekit-sandbox.itunes.apple.com/inApps/v1/notifications/test), I consistently receive a 401 (Unauthorized) error. Could you please provide some guidance on how to troubleshoot these issues? Thank you.
1
0
111
Nov ’25
StoreKit returning 0 products (IAPError: storekit_no_response)
Hi everyone, I’m facing an issue where StoreKit is returning 0 products from the App Store, even though my auto-renewable subscriptions are approved in App Store Connect. When calling queryProductDetails using Flutter’s in_app_purchase package (which uses StoreKit under the hood), StoreKit reports success but returns an empty list. The logs show the following error: IAPError(code: storekit_no_response, source: app_store, message: "StoreKit: Failed to get response from platform.") InAppPurchase.isAvailable() returns true, but no product details are received. Already verified: • Subscriptions are approved in App Store Connect • Product identifiers in the app match those in App Store Connect exactly • In-App Purchase capability is enabled in Xcode • Paid Applications Agreement, banking, and tax details are active and complete • Using the latest version of the Flutter in_app_purchase package StoreKit should normally return the list of available products in the production environment, but it consistently returns an empty array along with the “storekit_no_response” error. Has anyone else encountered this issue or found any potential causes for StoreKit failing to return products in the production environment? Any insights would be greatly appreciated. Thank you.
2
1
333
Nov ’25
Delete TestFlight in-app purchase record by using a real ID.
Hey guys, somehow I used my real ID(not sandbox test ID) to purchase a non-consumable item in the TestFlight package, no actual payment was made, but this payment record cannot be erased. Even though I know the transaction ID, I cannot initiate a refund like using refundRequestSheet(). Does anyone know how to deal with this, or there is no way to solve it?
0
0
161
Nov ’25
App Store StoreKit web hooks doesn't work o=in the Sandbox env.
Hey! We're implementing In-App Purchase Subscriptions and we were able to receive "App Store Server Notifications" on our "Sandbox Server URL". But the last event we received 22 hours ago. We are able to verify transactions and finish them, but receive no webhooks. We changed nothing on our server or its configurations but the notifications stoped to come. We consulted the API (https://api.storekit-sandbox.itunes.apple.com/inApps/v1/notifications/history) and it says the same as we see - the last event was 22hrs ago. I checked all the advices from here as well (https://developer.apple.com/forums/thread/805806?answerId=864483022#864483022). Is there any Status page for the Store Kit Sandbox services? Was there any outage? Sincerely, Konstantin
2
2
200
Nov ’25
iOS 26 - SKOverlay Not Opening Custom Product Page instead opening default product page
Issue: SKOverlay configured with a Custom Product Page identifier opens the default product page instead of the custom one on iOS 26. This works correctly on iOS 18 and earlier. Details: Custom Product Page is published and valid in App Store Connect customProductPageIdentifier is correctly set on SKOverlayAppConfiguration Same code works fine on iOS 18 and lower Code: - (void)presentSKOverlayInWindowScene:(UIWindowScene *)scene { SKOverlayAppConfiguration *config = [[SKOverlayAppConfiguration alloc] initWithAppIdentifier:@"my_app_id" position:SKOverlayPositionBottom]; config.userDismissible = YES; if (@available(iOS 15.0, *)) { [config setCustomProductPageIdentifier:@"my_apps_custom_product_page_id"]; } SKOverlay *overlay = [[SKOverlay alloc] initWithConfiguration:config]; overlay.delegate = self; [overlay presentInScene:scene]; } Are there any known iOS 26 changes affecting Custom Product Pages with SKOverlay, or is additional configuration now required. Thank you
1
0
101
Nov ’25
Authentication Error with App Store Server API (NOT_AUTHORIZED) while Using JWT for Subscription Validation
Hello Apple Developer Community, We are currently facing an authentication issue when calling the App Store Server API for subscription validation. Despite following Apple’s documentation and verifying all credentials, we consistently receive a NOT_AUTHORIZED error response. GET https://api.storekit-sandbox.itunes.apple.com/inApps/v1/transactions/appTransactions/{transactionId} Environment: Sandbox and Production (both tested, same result) Our Setup: Key ID: {Your Key ID} Issuer ID: {Your Issuer ID} Bundle ID: {Your Bundle ID} JWT Header: { "alg": "ES256", "kid": "" } JWT Payload: { "iss": "", "iat": , "exp": <timestamp + 5 minutes>, "aud": "appstoreconnect-v1", "bid": "" } Authorization Header: Authorization: Bearer Troubleshooting Steps Already Taken: Verified that .p8 key, Key ID, Issuer ID, and Bundle ID are all correctly configured and match the App Store Connect details. Confirmed that the system clock is accurate (UTC). Used appropriate endpoint (sandbox or production) based on environment. Ensured that the JWT is short-lived (under 5 minutes). Added the “Bearer” prefix correctly in the header. Tested JWT generations using Python. Issue: All requests return: { "errorCode": "NOT_AUTHORIZED" } Questions: Are there any additional claims or headers required for the subscriptions endpoint? Are there specific permissions or roles needed for the API key in App Store Connect? Is there a way to get more detailed logs or diagnostics for this NOT_AUTHORIZED response? Does the App Store Server API require a different aud or bid structure for certain endpoints? We already contacted Apple Developer Support, but they suggested posting here for engineering-level guidance. Any insight or examples of a working JWT + request for this endpoint would be greatly appreciated.
0
0
252
Nov ’25
App Reject: Subscription works on storeKit but not on sandBox environment.
have successfully created subscription with all metaData: Localization(inside subscription and also for subscription group), logo, description and also screenshots but subscription shows missing metadata instead of ready to submit causing flutter app package inAppPurchase to not found the subscription id or product it. Flutter code level : Future<void> _loadSubscriptions() async { Set<String> kSubscriptionIds = {'monthly_689'}; ProductDetailsResponse response = await _inAppPurchase.queryProductDetails(kSubscriptionIds); if (response.notFoundIDs.isNotEmpty) { kLog("Subscription IDs not found: ${response.notFoundIDs}"); } print("God it works seriously"); print(response.notFoundIDs); print(response.productDetails); print(response.error); subscriptions.value = response.productDetails; } Says: Subscription IDs not found is been logged I try with storekit it works!!! but as apple asking me we test on sandbox environment and it's not working I also created sandbox account login with same credentials and test it not works. Point is package I used in flutter not finding the above product_id I successfully added subscription group, localization, image and all still why my subscription not found ?
0
0
71
Nov ’25
Can SKOverlay be used to prompt updates for the same app?
According to Apple's documentation, SKOverlay is designed to recommend other applications to users. I'm seeking clarification on whether it also supports displaying update prompts for the host application itself. Use case: My app (for example, HelloDeveloper) is live at version 2.0, but some users are still on version 1.0. I want to display a soft update prompt that allows users to remain in the app. Question: Is it possible to use SKOverlay with my app's App Store ID to present an update option without requiring users to leave the app?
1
0
185
Oct ’25
StoreKit's manageSubscriptionsSheet view modifier not loading
Our app was just rejected by Apple because they say the subscription management sheet never loads. It just spins indefinitely. We're using StoreKit's manageSubscriptionsSheet view modifier to present the sheet, and it's always worked for us when testing in SandBox. Has anyone else had this problem? Given that it's Apple's own code that got us rejected, what's our path forward?
Replies
10
Boosts
6
Views
1.5k
Activity
Nov ’25
Storekit 2 error
StoreKit error:Storekit has failed to fetch this product. We implemented in-app purchases using StoreKit2. During testing, we were able to make purchases smoothly in various ways without any issues. However, the reviewers encountered this error, and it happened 100% of the time.
Replies
1
Boosts
0
Views
262
Activity
Nov ’25
StoreKit2: appAccountToken in purchase() always returns first value instead of updated UUID
Hello, I’m experiencing an issue with StoreKit 2 when passing a new appAccountToken for each purchase request. Case-ID: 15948169 (for DTS reference) Description of the Problem When initiating a purchase, I generate a new UUID to use as the appAccountToken: let serverTransactionId = UUID() let options: Set<Product.PurchaseOption> = [ .appAccountToken(serverTransactionId) ] let result = try await product.purchase(options: options) Expected Behavior: Each new purchase should return the updated appAccountToken that I pass into the purchase options. Actual Behavior: The payload response after success always contains the same appAccountToken from the very first transaction. It ignores subsequent UUIDs I pass and keeps reusing the original one. This causes issues because the same identifier is being reused across multiple transactions, making it difficult to map purchases to the correct user session. Steps to Reproduce Generate a fresh UUID using UUID(). Pass it as .appAccountToken when calling purchase(). Complete the transaction in the sandbox environment. Inspect the payload response → The appAccountToken value is always the same as the first one used, not the newly provided one. Additional Info I do have a focused test project that reproduces this issue. The issue appears specific to appAccountToken persistence across multiple transactions. Has anyone else experienced this behavior with StoreKit 2? Is this expected (Apple caching the first token) or could this be a bug?
Replies
3
Boosts
1
Views
400
Activity
Nov ’25
Subscriptions not showing in react-native-iap / StoreKit although setup and waiting for review
Hello everyone, I’m currently experiencing an issue where no subscriptions appear in my app when fetching products from StoreKit via react-native-iap. I would like to confirm whether this is related to my App Store Connect setup or a possible StoreKit limitation. Context My app uses react-native-iap and successfully initializes the StoreKit connection with: await RNIap.initConnection(); const items = await RNIap.fetchProducts({ skus: productIds, type: 'subs', }); productIds contains valid identifiers matching those configured in App Store Connect. The API /plan dynamically returns the correct product IDs. The fetch call completes successfully, but returns an empty array ([]). What I have already done Confirmed all subscription products exist and are correctly linked to the same app bundle ID. All subscriptions are currently in “Waiting for Review” status in App Store Connect. Verified that StoreKit connection is initialized correctly (RNIap.initConnection() returns successfully). Tested on a real device (iPhone 14, iOS 18). Contacted App Review by phone — they confirmed my implementation was correct and told me that pending subscriptions should still appear for review. Followed Apple’s official guides: TN3186: Troubleshooting in-app purchase availability in the sandbox TN3188: Troubleshooting in-app purchase availability in the App Store Unfortunately, neither solved the issue. Code excerpt Here’s the relevant portion of my React Native code: await RNIap.initConnection(); let items = await RNIap.fetchProducts({ skus: productIds, type: 'subs', }); setProducts(items); console.log('🛍️ Products from Store:', items); Everything runs fine, no errors — but items is always empty. Question Could this be due to the fact that my subscriptions are still Waiting for Review (not yet “Ready for Sale”)? If yes, is there any way for the App Review or developer testing environment to see them before they are approved? Or could I be missing a configuration step (for example, enabling the App-Specific Shared Secret or App Store server notifications)? Any advice from someone who has faced this issue or from Apple staff would be greatly appreciated 🙏 Environment React Native 0.76 react-native-iap 13.7.0 iOS 18.1 (real device) Xcode 16 Products: Auto-renewable subscriptions Status: “Waiting for Review” App currently in App Review Thank you, Sébastien
Replies
4
Boosts
0
Views
463
Activity
Nov ’25
Auto renewable subsction, auto renews to different product id
I need help understanding how the In-App purchase subscription works within the same subscription group and how the Order plays a role at the time of auto-renewal. In my case, I have 5 in-app products in the same group as given below with their Order, Order Product ---------------------- 1 Gold Annual 2 Gold Monthly 3 Silver Annual Old, 3 Silver Annual New 4 Silver Monthly One user purchased Silver annual New, at the time of expiry, after a year, it auto-renewed to Silver annual Old. My understanding is that if a user has purchased Silver annual New, at the time of renewal, it should renew with the same product, not with different product id. Is this behaviour expected? Is there any official document which can explain this behaviour? Note: There was no Order given before, recently we have changed the Order to manage Upgrade and Downgrade for In-App subscriptions.
Replies
0
Boosts
0
Views
74
Activity
Nov ’25
StoreKit 2 not loading subscription products
Hi everyone, I’m seeing a strange behavior with StoreKit 2 and I’d like to know if anyone else experienced this. My subscription group “ROTA Premium” (Monthly + Annual) is currently Waiting for Review in App Store Connect. What works In Xcode’s StoreKit sandbox, everything loads correctly: Products appear Trial starts Purchases work What doesn’t work In TestFlight and App Review, StoreKit 2 returns zero products, so my paywall shows: “No subscription options found.” There are: No geo restrictions No backend No VPN/IP filtering Paid Apps Agreement is accepted App Review said the device was online, but couldn’t give technical help. My question Has anyone seen StoreKit 2 fail to load subscription products when the subscription group is still in Waiting for Review? Do subscription groups need to be reviewed together with the app version for StoreKit 2 to return them in TestFlight/App Review? Any advice would be appreciated! Thanks.
Replies
0
Boosts
1
Views
91
Activity
Nov ’25
SubscriptionStoreView - Restoring Subscriptions
I'm using code similar to the following to conditionally show the SubscriptionStoreView and the .storeButton(.visible, for: .restorePurchases) modifier is used to allow the user to restore an existing subscription. How can I listen for events that would allow me to close this view once the subscription is restored? The .onInAppPurchaseCompletion closure does not handle this and it also appears that listening for results in Transaction.currentEntitlements also doesn't handle the fact that a subscription is restored. Any guidance on how to determine if the subscription has been restored would be greatly appreciated. Finally, how can this be tested effectively in both TestFlight and in Xcode with the simulator. if subscriptionManager.subscription == .none { SubscriptionStoreView(groupID: "1234567") { SubscriptionMarketingView(transparency: false) .containerBackground(for: .subscriptionStoreFullHeight) { GradientBackground() } } .backgroundStyle(.clear) .storeButton(.visible, for: .restorePurchases) .storeButton(.visible, for: .redeemCode) .onInAppPurchaseCompletion { product, result in Task { await subscriptionManager.entitlements() } } }
Replies
0
Boosts
1
Views
130
Activity
Nov ’25
Unable to test first In-App Purchase for non-consumable - receive empty array.
Hello, I am really struggling to test my first In-App Purchase for a non-consumable product. I have setup the following: App Store Connect: Paid agreement, Bank account, tax forms and compliance all submitted and active Privacy policy added Pricing and availability - all setup In-App Purchases screen - status is "Ready to Submit" Code refers to the correct BundleID: com.mycompany.product - it is exactly the same in App Store Connect and within my code. XCode: I have setup a StoreKit configuration file and it has correctly sync'd with App Store Connect and pulls through the correct data. The code compiles with no errors or warnings. I trying to initially test in the simulator before I - use a Sandbox account in a spare device. Outcome from all of the above, when I run the app, all I receive is an empty array!! What could I be missing or overlooking? Any help you could offer would be gratefully received. Thanks.
Replies
2
Boosts
0
Views
133
Activity
Nov ’25
"StoreKit Testing in Xcode" certificate is not trusted on iOS 26
Hello. I have setup a StoreKit testing in the app that was and still is perfectly working on iOS 18. Unfortunately when run on iOS 26 the following error gets printed in the console after calling Transaction.currentEntitlement(for:) method: Failed to verify certificate chain due to client recoverable failure: Error Domain=NSOSStatusErrorDomain Code=-67843 "“StoreKit Testing in Xcode” certificate is not trusted" UserInfo={NSLocalizedDescription=“StoreKit Testing in Xcode” certificate is not trusted, NSUnderlyingError=0x109de7e10 {Error Domain=NSOSStatusErrorDomain Code=-67843 "Certificate 0 “StoreKit Testing in Xcode” has errors: Root is not trusted;" UserInfo={NSLocalizedDescription=Certificate 0 “StoreKit Testing in Xcode” has errors: Root is not trusted;}}} I'm not seeting any StoreKit Testing certificates in phone's certificate trust settings. This test was performed on iOS 26.0 (23A341) with app built in Xcode 16.4. FB20339145
Replies
1
Boosts
0
Views
176
Activity
Nov ’25
promotion code with user information
What we're trying to implement is not a new subscription promotion It has implemented a function that allows certain members to experience the membership of the application by providing promotional codes. With the offer code provided by Apple, we are currently implemented Log in => Membership provided by the member entering the promotion code => I'm inquiring because I think the next logic will be difficult. There is no way we can identify the member when entering from the app store with Offer code I would like to inquire about developing it so that it does not violate Apple's review regulations as much as possible.
Replies
0
Boosts
0
Views
70
Activity
Nov ’25
verifyReceipt endpoint failing on occassion
I am finding that the verifyReceipt endpoint used to verify a receipt is failing on occassion starting around October 27, 2015. I realize this API is deprecated. I am using cURL to call verifyReceipt. The specific errors are 52 - Empty reply from server and 56 - Connection closed abruptly. This indicates an issue with Apple's server as I understand it. Is anyone else experiencing this as well?
Replies
0
Boosts
0
Views
75
Activity
Nov ’25
Flutter app no subscription found.
I already created subscription in appstore connect with proper metadata still when I am using product id to purchase the subscription using flutter package in_app_purchase: ^3.2.3 it say's no subscription found with product id x. I observed everything minutely all seems fine than why ?? I try to test with storekit that works btw. I also have sandbox account and same signed in my iPhone 12 mini but much please look into this.. Flutter code : Future<void> _loadSubscriptions() async { Set<String> kSubscriptionIds = {'monthly_plan_test_iop_81'}; ProductDetailsResponse response = await _inAppPurchase.queryProductDetails(kSubscriptionIds); if (response.notFoundIDs.isNotEmpty) { kLog("Subscription IDs not found: ${response.notFoundIDs}"); } kLog("God it works seriously"); kLog(response.notFoundIDs); kLog(response.productDetails); kLog(response.error); subscriptions.value = response.productDetails; }
Replies
1
Boosts
0
Views
138
Activity
Nov ’25
IAP Product Info Error & Sandbox Webhook/Test API Failures
Hello, I'm suddenly encountering errors with In-App Purchases (IAP) and my sandbox webhooks, which were working correctly just a few days ago. Specifically: Product Information Error: I'm receiving the following error when trying to fetch product information: { "type": "product_info", "result": "error", "error": "An unknown error occurred" } This API call was functioning normally until today. Sandbox Webhook Failure: I have configured a sandbox webhook, but my server is not receiving any notifications from the App Store. Test API 401: When I attempt to call the test API (https://api.storekit-sandbox.itunes.apple.com/inApps/v1/notifications/test), I consistently receive a 401 (Unauthorized) error. Could you please provide some guidance on how to troubleshoot these issues? Thank you.
Replies
1
Boosts
0
Views
111
Activity
Nov ’25
StoreKit returning 0 products (IAPError: storekit_no_response)
Hi everyone, I’m facing an issue where StoreKit is returning 0 products from the App Store, even though my auto-renewable subscriptions are approved in App Store Connect. When calling queryProductDetails using Flutter’s in_app_purchase package (which uses StoreKit under the hood), StoreKit reports success but returns an empty list. The logs show the following error: IAPError(code: storekit_no_response, source: app_store, message: "StoreKit: Failed to get response from platform.") InAppPurchase.isAvailable() returns true, but no product details are received. Already verified: • Subscriptions are approved in App Store Connect • Product identifiers in the app match those in App Store Connect exactly • In-App Purchase capability is enabled in Xcode • Paid Applications Agreement, banking, and tax details are active and complete • Using the latest version of the Flutter in_app_purchase package StoreKit should normally return the list of available products in the production environment, but it consistently returns an empty array along with the “storekit_no_response” error. Has anyone else encountered this issue or found any potential causes for StoreKit failing to return products in the production environment? Any insights would be greatly appreciated. Thank you.
Replies
2
Boosts
1
Views
333
Activity
Nov ’25
Delete TestFlight in-app purchase record by using a real ID.
Hey guys, somehow I used my real ID(not sandbox test ID) to purchase a non-consumable item in the TestFlight package, no actual payment was made, but this payment record cannot be erased. Even though I know the transaction ID, I cannot initiate a refund like using refundRequestSheet(). Does anyone know how to deal with this, or there is no way to solve it?
Replies
0
Boosts
0
Views
161
Activity
Nov ’25
App Store StoreKit web hooks doesn't work o=in the Sandbox env.
Hey! We're implementing In-App Purchase Subscriptions and we were able to receive "App Store Server Notifications" on our "Sandbox Server URL". But the last event we received 22 hours ago. We are able to verify transactions and finish them, but receive no webhooks. We changed nothing on our server or its configurations but the notifications stoped to come. We consulted the API (https://api.storekit-sandbox.itunes.apple.com/inApps/v1/notifications/history) and it says the same as we see - the last event was 22hrs ago. I checked all the advices from here as well (https://developer.apple.com/forums/thread/805806?answerId=864483022#864483022). Is there any Status page for the Store Kit Sandbox services? Was there any outage? Sincerely, Konstantin
Replies
2
Boosts
2
Views
200
Activity
Nov ’25
iOS 26 - SKOverlay Not Opening Custom Product Page instead opening default product page
Issue: SKOverlay configured with a Custom Product Page identifier opens the default product page instead of the custom one on iOS 26. This works correctly on iOS 18 and earlier. Details: Custom Product Page is published and valid in App Store Connect customProductPageIdentifier is correctly set on SKOverlayAppConfiguration Same code works fine on iOS 18 and lower Code: - (void)presentSKOverlayInWindowScene:(UIWindowScene *)scene { SKOverlayAppConfiguration *config = [[SKOverlayAppConfiguration alloc] initWithAppIdentifier:@"my_app_id" position:SKOverlayPositionBottom]; config.userDismissible = YES; if (@available(iOS 15.0, *)) { [config setCustomProductPageIdentifier:@"my_apps_custom_product_page_id"]; } SKOverlay *overlay = [[SKOverlay alloc] initWithConfiguration:config]; overlay.delegate = self; [overlay presentInScene:scene]; } Are there any known iOS 26 changes affecting Custom Product Pages with SKOverlay, or is additional configuration now required. Thank you
Replies
1
Boosts
0
Views
101
Activity
Nov ’25
Authentication Error with App Store Server API (NOT_AUTHORIZED) while Using JWT for Subscription Validation
Hello Apple Developer Community, We are currently facing an authentication issue when calling the App Store Server API for subscription validation. Despite following Apple’s documentation and verifying all credentials, we consistently receive a NOT_AUTHORIZED error response. GET https://api.storekit-sandbox.itunes.apple.com/inApps/v1/transactions/appTransactions/{transactionId} Environment: Sandbox and Production (both tested, same result) Our Setup: Key ID: {Your Key ID} Issuer ID: {Your Issuer ID} Bundle ID: {Your Bundle ID} JWT Header: { "alg": "ES256", "kid": "" } JWT Payload: { "iss": "", "iat": , "exp": <timestamp + 5 minutes>, "aud": "appstoreconnect-v1", "bid": "" } Authorization Header: Authorization: Bearer Troubleshooting Steps Already Taken: Verified that .p8 key, Key ID, Issuer ID, and Bundle ID are all correctly configured and match the App Store Connect details. Confirmed that the system clock is accurate (UTC). Used appropriate endpoint (sandbox or production) based on environment. Ensured that the JWT is short-lived (under 5 minutes). Added the “Bearer” prefix correctly in the header. Tested JWT generations using Python. Issue: All requests return: { "errorCode": "NOT_AUTHORIZED" } Questions: Are there any additional claims or headers required for the subscriptions endpoint? Are there specific permissions or roles needed for the API key in App Store Connect? Is there a way to get more detailed logs or diagnostics for this NOT_AUTHORIZED response? Does the App Store Server API require a different aud or bid structure for certain endpoints? We already contacted Apple Developer Support, but they suggested posting here for engineering-level guidance. Any insight or examples of a working JWT + request for this endpoint would be greatly appreciated.
Replies
0
Boosts
0
Views
252
Activity
Nov ’25
App Reject: Subscription works on storeKit but not on sandBox environment.
have successfully created subscription with all metaData: Localization(inside subscription and also for subscription group), logo, description and also screenshots but subscription shows missing metadata instead of ready to submit causing flutter app package inAppPurchase to not found the subscription id or product it. Flutter code level : Future<void> _loadSubscriptions() async { Set<String> kSubscriptionIds = {'monthly_689'}; ProductDetailsResponse response = await _inAppPurchase.queryProductDetails(kSubscriptionIds); if (response.notFoundIDs.isNotEmpty) { kLog("Subscription IDs not found: ${response.notFoundIDs}"); } print("God it works seriously"); print(response.notFoundIDs); print(response.productDetails); print(response.error); subscriptions.value = response.productDetails; } Says: Subscription IDs not found is been logged I try with storekit it works!!! but as apple asking me we test on sandbox environment and it's not working I also created sandbox account login with same credentials and test it not works. Point is package I used in flutter not finding the above product_id I successfully added subscription group, localization, image and all still why my subscription not found ?
Replies
0
Boosts
0
Views
71
Activity
Nov ’25
Can SKOverlay be used to prompt updates for the same app?
According to Apple's documentation, SKOverlay is designed to recommend other applications to users. I'm seeking clarification on whether it also supports displaying update prompts for the host application itself. Use case: My app (for example, HelloDeveloper) is live at version 2.0, but some users are still on version 1.0. I want to display a soft update prompt that allows users to remain in the app. Question: Is it possible to use SKOverlay with my app's App Store ID to present an update option without requiring users to leave the app?
Replies
1
Boosts
0
Views
185
Activity
Oct ’25