StoreKit

RSS for tag

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

StoreKit Documentation

Posts under StoreKit subtopic

Post

Replies

Boosts

Views

Activity

27/15.8.8 Bugs
I have iOS 27 and was renovating my bathroom when I decided to develop a few apps for the App Store. Unfortunately, the app has too many bugs and crashes on various devices, so I had to remove it from the App Store. How can I fix this problem? I was using iOS 27 on an iPhone 17 Air and iOS 15 on an iPhone 6s.
0
0
142
Jun ’26
Subscriptions Stuck in review
Hello! My subscriptions have been stuck in review for a while. I have been chasing my tail trying to get the sandbox purchases to work but the subscriptions are not returning after "sale". Is this because the subscriptions are still in review? Will the purchase ever return a product in the sandbox environment if the products are still in review? How do we get the subscriptions approved? I have submitted them with the app multiple times. The app is rejected because I can't complete it without the subscriptions but the subscriptions are never reviewed. Help!
1
0
339
Jun ’26
React Native IAP: getProducts returns empty array in TestFlight despite complete configuration
Hi everyone, I’m currently developing an iOS app using React Native and implementing consumable In-App Purchases (IAP). I'm facing an issue where getProducts returns an empty array without any error messages when testing on a TestFlight build. I have already completed the following setup: Agreements, Tax, and Banking: All forms are signed and the status is "Active" in App Store Connect. Product Configuration: The Consumable product is created in App Store Connect with the status "Ready to Submit". App Store Connect Integration: The product is correctly linked under the "In-App Purchases and Subscriptions" section of the App version. Xcode Capability: The "In-App Purchase" capability has been added to the project. Implementation: The Product ID in my React Native code (using react-native-iap) matches the ID in App Store Connect exactly. Despite these steps, the product list remains empty. Are there any hidden requirements or specific configurations for TestFlight that I might have missed? Any guidance would be greatly appreciated. Thanks!
1
0
527
Jun ’26
Show StoreKit errors as custom alert
Hi, I am planning to show the StoreKitError as alerts, I have corresponding custom Error so that I can show meaningful error messages. Reason I wanted to display error alert messages that describe the underlying error so that when in production and user faces this error I would be able to reason about the error and try to resolve the error in a app update or Appstore Connect change. If I display a generic error I wouldn't know the cause of the error, but is there is a security risk in display the following kind of messages? Proposed UI error messages: | Error | UI alert message | | ------------------------------------ | ----------------------------------------------- | | StoreKitError.notEntitled | App is not entitled to make this request. | | PurchaseError.invalidOfferSignature | Invalid offer signature. | Questions From a security / user perspective is it risky / wrong to show an error message like the ones pasted above? Or are there some errors I shouldn't explicitly state? Or is there a better / preferred approach?
0
1
293
Jun ’26
manageSubscriptionsSheet resulting in "No connection"
I have an iOS app (SwiftUI) that includes recurring subscriptions. To allow users to manage their subscriptions I have implemented manageSubscriptionsSheet according to apple documentation. When I published the app last year for iOS17 and iOS18 this was working well. Now I have gotten a user report that this features yields No connection error instead of the abonnements on iOS26. I have tested on my iPad running iOS 26 as well as on the simulator with iOS 26 and 18. In all cases I get the error. I can press Retry in the dialog and am prompted for AppStore credentials After entering them, again the same error. I can not find a single hint on why and how to fix it. Best wishes, Volker
2
0
249
Jun ’26
StoreKit 2 Product.displayPrice returns USD while purchase dialog shows EUR
Hi, I'm testing my first auto-renewable subscription using StoreKit 2 and TestFlight. When loading products via: let products = try await Product.products(for: ids) the product is returned successfully, but product.displayPrice shows: $4.99 even though: My App Store account is located in Germany. The app is only intended for the German market. The native Apple purchase sheet displays the correct price in EUR. The subscription pricing is configured correctly in App Store Connect. The subscription is still in "Ready to Submit / Prepare for Submission" state and has not yet been approved. Example: print(product.displayPrice) returns: $4.99 while the StoreKit purchase dialog shows: 5,99 € Has anyone seen this behavior before? Is this expected for new subscriptions in TestFlight/Sandbox before the first App Review approval, or could there be another reason why displayPrice differs from the actual purchase dialog? Thanks!
1
0
418
Jun ’26
In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
0
0
721
Jun ’26
Non renewing subscriptions upload new binary
My non renewing subscriptions got rejected as I move from subscription to one time payment model. It says "In order to approve your new In-App Purchase business model, we have to verify the purchasability of the items being sold. Please upload a new binary and make sure that your new In-App Purchase products are available for purchase at the time of review." But the thing is I uploaded to new builds since then and both got approved and live but this error is still stuck. Submit for review is greyed out.
1
0
264
Jun ’26
In-app purchase fails on Apple Silicon Mac
I'm testing IPhone and iPad Apps on Apple Silicon Macs. When I purchase In-app product in the app on Apple Silicon Mac, the payment receipt is not created, so the purchase fails. In console log, it says it doesn't have permission to write to the file. storekitagent [6913DE38_SK1] Error writing receipt (5095 bytes) to file:///Users/XXXX/Library/Containers/90FE2A60-9FDF-4ECF-848F-CE3D396322CA/Data/StoreKit/sandboxReceipt: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “sandboxReceipt” in the folder “StoreKit”" UserInfo={NSFilePath=/Users/XXXX/Library/Containers/90FE2A60-9FDF-4ECF-848F-CE3D396322CA/Data/StoreKit/sandboxReceipt, NSUnderlyingError=0x14202c920 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}} The App is using Original API for In-App Purchase written in Objective-C. When I purchase in-app product, the app calls SKPaymentQueue::addPayment. And then it gets paymentQueue:updatedTransactions callback with SKPaymentTransactionStatePurchased. This means that the payment was successful. But the receipt is not created so I can't continue the after process. I'm testing with sandbox in-app purchase. I have tested several times and confirmed that on macOS Monterey 12.2 the receipt is created successfully, but on macOS Ventura 13.2 the receipt isn't created. I think there is something to do with macOS version. Does anyone have any solutions? Here is a very similar thread on apple developer forum. (And there too has no anwsers)  https://developer.apple.com/forums/thread/719505
8
0
2.0k
May ’26
IAP not being shared to family
Hi! I’ve just recently launched a feature that could be subscribed to (.autoRenewable) or alternatively unlocked with a one-time purchase (.nonConsumable). I want both methods to be shareable with Family Sharing, however at launch I had forgotten to enable Family Sharing on the one-time unlock. I enabled it like one hour after launch. As I understand it, when I consult Transaction.currentEntitlements on a family device, both IAPs should just show up. This works with the subscription, but not with the unlock – even for people who have purchased it two days after I made it shareable, which sounds like enough time for the setting change to propagate. When I load the products now, using Product.products(for: productIDs), both the sub and the unlock report that isFamilyShareable is true. Could the unlock IAP be in a buggy state on the App Store side, where it’s nominally shareable but doesn’t actually get shared when purchased? And if so, how can this be resolved? If not, what am I doing wrong? 😅 Thanks for your time 🙏
2
0
262
May ’26
DID_FAIL_TO_RENEW (v2 Notifcation)
Hello, I would like to understand the possible end-user journey when a subscription transitions into the DID_FAIL_TO_RENEW state. During this period—when the App Store continues to retry billing for up to 60 days, or until the user resolves the billing issue or cancels the subscription is the user allowed to purchase the same subscription again? If so, my understanding is that this would follow a resubscribe flow, rather than an initial purchase flow. Could you please confirm and provide further details on how this scenario is expected to behave?
1
0
393
May ’26
Can't verify my identity for sandbox can not receive verification code
I'm trying to use a sandbox account, and am stuck on the verification stage. My primary number (my personal iPhone phone number) has been used too many time, as I've used it to set up many devices. My personal mobile number is tied to a physical SIM in my iPhone 12 Pro. Now I'm trying to use a Freedom Mobile eSIM, and can successfully send and received texts to/from myself, other people, to/from Freedom Mobile as well. Setting up the sandbox account (my email address with a +3 at the end of it) I choose USE A DIFFERENT NUMBER and my eSIM number is shown along with my "Freedom" description of the eSIM right below it. The Verification Code page appears, but I never get a verification code. I click on DID NOT GET A VERIFICATION CODE? and try trigger a phone call and do not get that either. I've reset my eSIM, I've reset my iPhone's networking, I've rebooted my phone many times, I've un/re-installed the app and TestFlight. I'm willing to try anything here, but is it possible because my personal mobile number (which is tied to my personal Apple ID) not having any spare slots (or whatever we call them) that is why the eSIM is also being impeded, although not telling me that is why? Can Apple increase the number of verifications I can do with my primary mobile number? So I can nevermind this eSIM? Can Apple try text me on my eSIM, and see if there is some sort of generic Apple issue with it and not just this sandbox system?
3
0
414
May ’26
original_transaction_id associated to web_order_line_item_id of auto-renewable subscription changed
Our app offers auto-renewable subscriptions using StoreKit Original API for In-App Purchase and App Store Server Notifications V1. Starting around 2025-03-15, we found some cases where original_transaction_id which was associated to web_order_line_item_id of already purchased subscription had changed in the receipt information of verifyReceipt response or App Store Server Notifications V1. The detailed steps are: Around February 2025, re-purchase from the app the same subscription product which was canceled and expired some time ago, using StoreKit Original API for In-App Purchase Receive the following 2 notifications from App Store Server Notifications V1 almost at the same time INITIAL_BUY DID_CHANGE_RENEWAL_STATUS In both notifications, latest_receipt_info contains the receipt for the re-purchased subscription period with new original_transaction_id and web_order_line_item_id pending_renewal_info contains both new original_transaction_id and original one which was generated at first purchase, and original one has "is_in_billing_retry_period": "1" Starting around 2025-03-15, the following happens When we receive another "DID_CHANGE_RENEWAL_STATUS" notification from App Store Server Notifications V1, original_transaction_id which is associated to web_order_line_item_id of the re-purchased subscription period has changed back to the original one (the one which was generated at first purchase) in latest_receipt_info. When we call verifyReceipt with the receipt obtained from appStoreReceiptURL, the response does not seem to contain new original_transaction_id which was generated at re-purchase We have some questions regarding this original_transaction_id behavior. When a user re-purchase the same subscription product which was canceled and expired some time ago, it seems that new original_transaction_id is generated. Is this an expected behavior? If yes, it seems that, at some point, original_transaction_id which is associated to web_order_line_item_id of the re-purchased subscription changed back to the original original_transaction_id which had been generated at first purchase. Is this an expected behavior? What triggers the original_transaction_id change to the original one? Is it related to some user actions or subscription status change?
4
0
773
May ’26
watchOS-Only App First Submission — IAP Rejected Multiple Times, Works in TestFlight Sandbox but Not in Review
Hi everyone, I'm submitting my watchOS-only app and its In-App Purchase for the very first time (both app and IAP submitted simultaneously). After multiple rejections, I still can't resolve the issue and would appreciate any guidance. Environment: App type: watchOS-only (no iOS companion app) First submission of both the app and IAP IAP type: Non-Consumable, Product Apple ID: 6770497337 The problem: The reviewer (App Review) states that the IAP product information cannot be retrieved in the review environment. According to the reviewer, they are testing in the production environment, not the sandbox. However: In my TestFlight build, the app correctly retrieves the IAP product I have successfully completed the full purchase flow using a sandbox account All business agreements (including Paid Apps Agreement) are accepted and active in The Bundle ID and Product ID are correctly configured in both Xcode and App Store Connect Current IAP status in App Store Connect: Overall status: "Developer Action Needed" All localizations (English US/UK/AU/CA, Japanese, Simplified Chinese, Traditional Chinese): "Rejected" No specific rejection reason is shown anywhere in App Store Connect Any help would be greatly appreciated. Thank you! 🙏
1
0
227
May ’26
IAP
My auto-renewable subscription products are approved in App Store Connect, but fetchProducts() returns 0 products when testing in Production & Testflight. Debug output shows: "products.size is 0 - no products fetched! Expected 6 products." All my business agreements are active. Has anyone faced this before? What do you recommend? Thank you.
0
0
323
May ’26
27/15.8.8 Bugs
I have iOS 27 and was renovating my bathroom when I decided to develop a few apps for the App Store. Unfortunately, the app has too many bugs and crashes on various devices, so I had to remove it from the App Store. How can I fix this problem? I was using iOS 27 on an iPhone 17 Air and iOS 15 on an iPhone 6s.
Replies
0
Boosts
0
Views
142
Activity
Jun ’26
Subscriptions Stuck in review
Hello! My subscriptions have been stuck in review for a while. I have been chasing my tail trying to get the sandbox purchases to work but the subscriptions are not returning after "sale". Is this because the subscriptions are still in review? Will the purchase ever return a product in the sandbox environment if the products are still in review? How do we get the subscriptions approved? I have submitted them with the app multiple times. The app is rejected because I can't complete it without the subscriptions but the subscriptions are never reviewed. Help!
Replies
1
Boosts
0
Views
339
Activity
Jun ’26
React Native IAP: getProducts returns empty array in TestFlight despite complete configuration
Hi everyone, I’m currently developing an iOS app using React Native and implementing consumable In-App Purchases (IAP). I'm facing an issue where getProducts returns an empty array without any error messages when testing on a TestFlight build. I have already completed the following setup: Agreements, Tax, and Banking: All forms are signed and the status is "Active" in App Store Connect. Product Configuration: The Consumable product is created in App Store Connect with the status "Ready to Submit". App Store Connect Integration: The product is correctly linked under the "In-App Purchases and Subscriptions" section of the App version. Xcode Capability: The "In-App Purchase" capability has been added to the project. Implementation: The Product ID in my React Native code (using react-native-iap) matches the ID in App Store Connect exactly. Despite these steps, the product list remains empty. Are there any hidden requirements or specific configurations for TestFlight that I might have missed? Any guidance would be greatly appreciated. Thanks!
Replies
1
Boosts
0
Views
527
Activity
Jun ’26
Show StoreKit errors as custom alert
Hi, I am planning to show the StoreKitError as alerts, I have corresponding custom Error so that I can show meaningful error messages. Reason I wanted to display error alert messages that describe the underlying error so that when in production and user faces this error I would be able to reason about the error and try to resolve the error in a app update or Appstore Connect change. If I display a generic error I wouldn't know the cause of the error, but is there is a security risk in display the following kind of messages? Proposed UI error messages: | Error | UI alert message | | ------------------------------------ | ----------------------------------------------- | | StoreKitError.notEntitled | App is not entitled to make this request. | | PurchaseError.invalidOfferSignature | Invalid offer signature. | Questions From a security / user perspective is it risky / wrong to show an error message like the ones pasted above? Or are there some errors I shouldn't explicitly state? Or is there a better / preferred approach?
Replies
0
Boosts
1
Views
293
Activity
Jun ’26
manageSubscriptionsSheet resulting in "No connection"
I have an iOS app (SwiftUI) that includes recurring subscriptions. To allow users to manage their subscriptions I have implemented manageSubscriptionsSheet according to apple documentation. When I published the app last year for iOS17 and iOS18 this was working well. Now I have gotten a user report that this features yields No connection error instead of the abonnements on iOS26. I have tested on my iPad running iOS 26 as well as on the simulator with iOS 26 and 18. In all cases I get the error. I can press Retry in the dialog and am prompted for AppStore credentials After entering them, again the same error. I can not find a single hint on why and how to fix it. Best wishes, Volker
Replies
2
Boosts
0
Views
249
Activity
Jun ’26
StoreKit 2 Product.displayPrice returns USD while purchase dialog shows EUR
Hi, I'm testing my first auto-renewable subscription using StoreKit 2 and TestFlight. When loading products via: let products = try await Product.products(for: ids) the product is returned successfully, but product.displayPrice shows: $4.99 even though: My App Store account is located in Germany. The app is only intended for the German market. The native Apple purchase sheet displays the correct price in EUR. The subscription pricing is configured correctly in App Store Connect. The subscription is still in "Ready to Submit / Prepare for Submission" state and has not yet been approved. Example: print(product.displayPrice) returns: $4.99 while the StoreKit purchase dialog shows: 5,99 € Has anyone seen this behavior before? Is this expected for new subscriptions in TestFlight/Sandbox before the first App Review approval, or could there be another reason why displayPrice differs from the actual purchase dialog? Thanks!
Replies
1
Boosts
0
Views
418
Activity
Jun ’26
In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
Replies
0
Boosts
0
Views
721
Activity
Jun ’26
Non renewing subscriptions upload new binary
My non renewing subscriptions got rejected as I move from subscription to one time payment model. It says "In order to approve your new In-App Purchase business model, we have to verify the purchasability of the items being sold. Please upload a new binary and make sure that your new In-App Purchase products are available for purchase at the time of review." But the thing is I uploaded to new builds since then and both got approved and live but this error is still stuck. Submit for review is greyed out.
Replies
1
Boosts
0
Views
264
Activity
Jun ’26
In-app purchase fails on Apple Silicon Mac
I'm testing IPhone and iPad Apps on Apple Silicon Macs. When I purchase In-app product in the app on Apple Silicon Mac, the payment receipt is not created, so the purchase fails. In console log, it says it doesn't have permission to write to the file. storekitagent [6913DE38_SK1] Error writing receipt (5095 bytes) to file:///Users/XXXX/Library/Containers/90FE2A60-9FDF-4ECF-848F-CE3D396322CA/Data/StoreKit/sandboxReceipt: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “sandboxReceipt” in the folder “StoreKit”" UserInfo={NSFilePath=/Users/XXXX/Library/Containers/90FE2A60-9FDF-4ECF-848F-CE3D396322CA/Data/StoreKit/sandboxReceipt, NSUnderlyingError=0x14202c920 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}} The App is using Original API for In-App Purchase written in Objective-C. When I purchase in-app product, the app calls SKPaymentQueue::addPayment. And then it gets paymentQueue:updatedTransactions callback with SKPaymentTransactionStatePurchased. This means that the payment was successful. But the receipt is not created so I can't continue the after process. I'm testing with sandbox in-app purchase. I have tested several times and confirmed that on macOS Monterey 12.2 the receipt is created successfully, but on macOS Ventura 13.2 the receipt isn't created. I think there is something to do with macOS version. Does anyone have any solutions? Here is a very similar thread on apple developer forum. (And there too has no anwsers)  https://developer.apple.com/forums/thread/719505
Replies
8
Boosts
0
Views
2.0k
Activity
May ’26
IAP not being shared to family
Hi! I’ve just recently launched a feature that could be subscribed to (.autoRenewable) or alternatively unlocked with a one-time purchase (.nonConsumable). I want both methods to be shareable with Family Sharing, however at launch I had forgotten to enable Family Sharing on the one-time unlock. I enabled it like one hour after launch. As I understand it, when I consult Transaction.currentEntitlements on a family device, both IAPs should just show up. This works with the subscription, but not with the unlock – even for people who have purchased it two days after I made it shareable, which sounds like enough time for the setting change to propagate. When I load the products now, using Product.products(for: productIDs), both the sub and the unlock report that isFamilyShareable is true. Could the unlock IAP be in a buggy state on the App Store side, where it’s nominally shareable but doesn’t actually get shared when purchased? And if so, how can this be resolved? If not, what am I doing wrong? 😅 Thanks for your time 🙏
Replies
2
Boosts
0
Views
262
Activity
May ’26
DID_FAIL_TO_RENEW (v2 Notifcation)
Hello, I would like to understand the possible end-user journey when a subscription transitions into the DID_FAIL_TO_RENEW state. During this period—when the App Store continues to retry billing for up to 60 days, or until the user resolves the billing issue or cancels the subscription is the user allowed to purchase the same subscription again? If so, my understanding is that this would follow a resubscribe flow, rather than an initial purchase flow. Could you please confirm and provide further details on how this scenario is expected to behave?
Replies
1
Boosts
0
Views
393
Activity
May ’26
Auto renewing subscription removed from sale entering "Grace period"
When an auto renewing subscription is "Developer removed from sale", any auto renewal should fail. Will this make the subscription enter billing "Grace Period"? Our expectation is that the rewal would fail without entering a "Grace Period".
Replies
3
Boosts
1
Views
896
Activity
May ’26
Can't verify my identity for sandbox can not receive verification code
I'm trying to use a sandbox account, and am stuck on the verification stage. My primary number (my personal iPhone phone number) has been used too many time, as I've used it to set up many devices. My personal mobile number is tied to a physical SIM in my iPhone 12 Pro. Now I'm trying to use a Freedom Mobile eSIM, and can successfully send and received texts to/from myself, other people, to/from Freedom Mobile as well. Setting up the sandbox account (my email address with a +3 at the end of it) I choose USE A DIFFERENT NUMBER and my eSIM number is shown along with my "Freedom" description of the eSIM right below it. The Verification Code page appears, but I never get a verification code. I click on DID NOT GET A VERIFICATION CODE? and try trigger a phone call and do not get that either. I've reset my eSIM, I've reset my iPhone's networking, I've rebooted my phone many times, I've un/re-installed the app and TestFlight. I'm willing to try anything here, but is it possible because my personal mobile number (which is tied to my personal Apple ID) not having any spare slots (or whatever we call them) that is why the eSIM is also being impeded, although not telling me that is why? Can Apple increase the number of verifications I can do with my primary mobile number? So I can nevermind this eSIM? Can Apple try text me on my eSIM, and see if there is some sort of generic Apple issue with it and not just this sandbox system?
Replies
3
Boosts
0
Views
414
Activity
May ’26
StoreKit 2 Product.products always returns an empty list
All of a sudden both our development and production app stopped loading products for the subscription screens. Within our code I noticed that product.products is always returning 0 elements even after confirming product ids are correct and ensuring all agreements in App Store Connect are signed and active. What could be the issue?
Replies
0
Boosts
0
Views
323
Activity
May ’26
original_transaction_id associated to web_order_line_item_id of auto-renewable subscription changed
Our app offers auto-renewable subscriptions using StoreKit Original API for In-App Purchase and App Store Server Notifications V1. Starting around 2025-03-15, we found some cases where original_transaction_id which was associated to web_order_line_item_id of already purchased subscription had changed in the receipt information of verifyReceipt response or App Store Server Notifications V1. The detailed steps are: Around February 2025, re-purchase from the app the same subscription product which was canceled and expired some time ago, using StoreKit Original API for In-App Purchase Receive the following 2 notifications from App Store Server Notifications V1 almost at the same time INITIAL_BUY DID_CHANGE_RENEWAL_STATUS In both notifications, latest_receipt_info contains the receipt for the re-purchased subscription period with new original_transaction_id and web_order_line_item_id pending_renewal_info contains both new original_transaction_id and original one which was generated at first purchase, and original one has "is_in_billing_retry_period": "1" Starting around 2025-03-15, the following happens When we receive another "DID_CHANGE_RENEWAL_STATUS" notification from App Store Server Notifications V1, original_transaction_id which is associated to web_order_line_item_id of the re-purchased subscription period has changed back to the original one (the one which was generated at first purchase) in latest_receipt_info. When we call verifyReceipt with the receipt obtained from appStoreReceiptURL, the response does not seem to contain new original_transaction_id which was generated at re-purchase We have some questions regarding this original_transaction_id behavior. When a user re-purchase the same subscription product which was canceled and expired some time ago, it seems that new original_transaction_id is generated. Is this an expected behavior? If yes, it seems that, at some point, original_transaction_id which is associated to web_order_line_item_id of the re-purchased subscription changed back to the original original_transaction_id which had been generated at first purchase. Is this an expected behavior? What triggers the original_transaction_id change to the original one? Is it related to some user actions or subscription status change?
Replies
4
Boosts
0
Views
773
Activity
May ’26
watchOS-Only App First Submission — IAP Rejected Multiple Times, Works in TestFlight Sandbox but Not in Review
Hi everyone, I'm submitting my watchOS-only app and its In-App Purchase for the very first time (both app and IAP submitted simultaneously). After multiple rejections, I still can't resolve the issue and would appreciate any guidance. Environment: App type: watchOS-only (no iOS companion app) First submission of both the app and IAP IAP type: Non-Consumable, Product Apple ID: 6770497337 The problem: The reviewer (App Review) states that the IAP product information cannot be retrieved in the review environment. According to the reviewer, they are testing in the production environment, not the sandbox. However: In my TestFlight build, the app correctly retrieves the IAP product I have successfully completed the full purchase flow using a sandbox account All business agreements (including Paid Apps Agreement) are accepted and active in The Bundle ID and Product ID are correctly configured in both Xcode and App Store Connect Current IAP status in App Store Connect: Overall status: "Developer Action Needed" All localizations (English US/UK/AU/CA, Japanese, Simplified Chinese, Traditional Chinese): "Rejected" No specific rejection reason is shown anywhere in App Store Connect Any help would be greatly appreciated. Thank you! 🙏
Replies
1
Boosts
0
Views
227
Activity
May ’26
IAP
My auto-renewable subscription products are approved in App Store Connect, but fetchProducts() returns 0 products when testing in Production & Testflight. Debug output shows: "products.size is 0 - no products fetched! Expected 6 products." All my business agreements are active. Has anyone faced this before? What do you recommend? Thank you.
Replies
0
Boosts
0
Views
323
Activity
May ’26
自动续费产品用户的定期扣费的问题
APP被下架后是否会影响之前已经订阅了自动续费产品用户的定期扣费
Replies
0
Boosts
0
Views
171
Activity
May ’26
StoreKit 2 returns empty products array on device (iPhone) even though IAP is Ready to Submit
Hi, I'm experiencing an issue with StoreKit 2 in my iOS app where Product.products(for:) always returns an empty array on a real iPhone device. 📱 Environment iOS: 26 Device: iPhone 16 pro max Xcode: 26.5 StoreKit: StoreKit 2
Replies
1
Boosts
0
Views
186
Activity
May ’26
StoreKit 2 returns empty products array on device (iPhone) even though IAP is Ready to Submit
Hi, I’m experiencing an issue with StoreKit 2 in my iOS app where Product.products(for:) always returns an empty array on a real iPhone device. iOS: 26 Device: iPhone 16 pro Max Xcode: 26.5 StoreKit: StoreKit 2
Replies
0
Boosts
0
Views
254
Activity
May ’26