I have simple non-consumable IAPs set up for an app on macOS.
Testing in development with a local .storekit configuration file, everything works as expected.
Testing in development with a remote Sandbox, everything also seems to work fine. Product names and prices fetch correctly, I am able to make purchases with a Sandbox account (both US and UK).
Once I upload a build into TestFlight, IAPs no longer work. The tester would download the Beta app from TestFlight. They open a license manager and can see all the product names, descriptions and prices are pulled from Apple servers correctly (with the correct local currency as well!). So far so good. When trying to purchase any of the IAP, the following error appears:
This is TestFlight so testers are using their real Apple ID. My understanding is that they should continue using their production credentials and a TestFlight Sandbox would be configured behind the scenes automatically.
This error always says the users cannot purchase from a US store and must switch to [whatever user’s actual store location is] store. For example, my account is based in the UK, has got a UK billing address and a UK payment method, and the error tells me to switch to the UK store. People in Canada get a similar error - you must switch from the US store to Canadian. The error makes no sense, the account is already in the desired country.
Clicking on the “Change Store” button opens the App Store app and displays another error: “Cannot Connect to App Store”. Clicking Retry just results in this errors showing again and again.
Clicking OK takes us back to the failed IAP purchase and the final error message appears: “Purchase Error - Unable to Complete Request”.
Things I’ve done / checked:
IAPs are configured in App Store Connect and available for all regions
prices are set for all regions in App Store Connect
IAP name and description localisation in English (UK)
IAP status is Ready to Submit, I don’t think I can go past that unless I make a production release (which I can’t until we fix the problem)
IAP capabilities added in xcode
the problem is not account, machine, or location dependent - every beta tester testing my app on TestFlight has the same issue, they each use a different account and have accounts in different countries
double checked the App Store account location in the App Store settings - it is definitely matching the store this error is asking to switch to
application exits at startup with error 173 if app receipt cannot be found - this one was suggested by the review team, I could not really find any documentation for it
review team also suggested I should add com.apple.security.network.client to enable IAP connectivity. I did add that to one of the builds and it did not help. I am not really convinced this is necessary
Any suggestions on what to check and what to try? I have run out of ideas.
In-App Purchase
RSS for tagOffer extra content, digital goods, and features directly within your app using in-app purchases.
Posts under In-App Purchase tag
200 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi everyone,
I’m using StoreKit 2 with .storeButton(.visible, for: .policies) inside my SubscriptionStoreView. The buttons appear correctly, but when tapped, a sheet opens that says “Terms of Service Unavailable” or “Something went wrong. Try again.”
I’ve already added the required URLs (Privacy Policy and Terms of Use) in App Store Connect under App Information, but they still don’t show in the sheet.
Does anyone know how this is supposed to work?
• Are the URLs pulled directly from App Store Connect?
• Do they only appear correctly in production?
• Or do we need to manually set them in code for testing/TestFlight?
Any insight would be greatly appreciated — just want to make sure everything is in place before submitting for review. Thanks!
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
StoreKit Test
App Review
StoreKit
In-App Purchase
Hi - I've added in-app purchases (Quarterly and Yearly
) to my app and submitted it for TestFlight. The app is available, but in my Developer account, the in-app purchases section still shows the products as 'Waiting for Review.'
When I test the app for in-app purchase, the dialog does not appear. Is this issue of "Approval" of the in-app purchase product?
If YES, how can I get approval for these in-app purchase products?
FYI: I have attached a screenshot of the in-app purchase products.
Please suggest
Thanks,
Sushil
Strange issue with currency display in subscription products
Hi everyone,
I'm facing a strange issue in my app where I use a subscription-based in-app purchase model.
The products I created in App Store Connect are all in "Approved" status.
I've tested with both RevenueCat and StoreKit, but the result is the same.
Here are the products being loaded:
Product loaded: weekly_product_id
Display name: Weekly Pro
Description: Weekly Pro Subscription
Price: ₺229,99
Product loaded: annual_product_id
Display name: Annual Pro
Description: Annual Pro Subscription
Price: ₺1.799,99
Even though I can see the correct prices and currency (Turkish Lira) in the Xcode debug console, on my real device the currency appears as Philippine Peso, as shown in the attached screenshot.
Interestingly, in the iOS simulator, it's displayed in USD.
I've double-checked and my device's region settings are set to Turkey.
Any ideas on what could be causing this? And more importantly, how can I fix it?
Thanks in advance!
Dear Apple Support Team,
Hello!
I am currently developing the in-app subscription functionality using Apple IAP API and have encountered a serious technical issue while processing subscription data. I would like to report this issue to you.
Issue Description:
When calling the subscription API endpoint, the same OriginalTransactionId returns inconsistent results. Specifically, a particular transaction ID (let's call it TransactionId_A) should belong to the subscription order with OriginalTransactionId_A, but it is currently incorrectly associated with OriginalTransactionId_B. This issue severely affects our ability to accurately manage and process subscription data.
Here are the relevant log details for your reference:
API Endpoint Requested:
https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{TransactionId_A}
(Note: The link is a placeholder for the actual API endpoint.)
Log Information on February 21, 2025, at 09:40:09:
{
"AppAccountToken": "{AppAccountToken}",
"BundleId": "{BundleId}",
"Currency": "CNY",
"Environment": "Production",
"ExpiresDate": {ExpiresDate},
"InAppOwnershipType": "PURCHASED",
"IsUpgraded": false,
"OfferDiscountType": "",
"OfferIdentifier": "",
"OfferType": 0,
"OriginalPurchaseDate": {OriginalPurchaseDate},
"OriginalTransactionId": "{OriginalTransactionId_A}",
"Price": {Price},
"ProductId": "{ProductId}",
"PurchaseDate": {PurchaseDate},
"Quantity": 1,
"RevocationDate": 0,
"RevocationReason": 0,
"SignedDate": {SignedDate},
"Storefront": "CHN",
"StorefrontId": {StorefrontId},
"SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}",
"TransactionId": "{TransactionId_A}",
"TransactionReason": "PURCHASE",
"Type": "Auto-Renewable Subscription",
"WebOrderLineItemId": "{WebOrderLineItemId}"
}
Log Information on March 21, 2025, at 09:38:49:
{
"AppAccountToken": "{AppAccountToken}",
"BundleId": "{BundleId}",
"Currency": "CNY",
"Environment": "Production",
"ExpiresDate": {ExpiresDate},
"InAppOwnershipType": "PURCHASED",
"IsUpgraded": false,
"OfferDiscountType": "",
"OfferIdentifier": "",
"OfferType": 0,
"OriginalPurchaseDate": {OriginalPurchaseDate},
"OriginalTransactionId": "{OriginalTransactionId_B}",
"Price": {Price},
"ProductId": "{ProductId}",
"PurchaseDate": {PurchaseDate},
"Quantity": 1,
"RevocationDate": 0,
"RevocationReason": 0,
"SignedDate": {SignedDate},
"Storefront": "CHN",
"StorefrontId": {StorefrontId},
"SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}",
"TransactionId": "{TransactionId_A}",
"TransactionReason": "PURCHASE",
"Type": "Auto-Renewable Subscription",
"WebOrderLineItemId": "{WebOrderLineItemId}"
}
From the above logs, it is evident that the same transaction (TransactionId_A) returns different OriginalTransactionId values at different times, which is clearly not expected and severely impacts our ability to correctly process and manage subscription data.
I hope you can address and investigate this issue as soon as possible. If you need any further information or assistance, please feel free to contact me. Thank you for your support!
Best regards!
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
In-App Purchase
App Store Server Notifications
App Store Server API
Hi,
My app currently offers a non-consumable in-app purchase to unlock all its features, and I would like to provide this full access for free to an organization with a few thousand Macs.
Since Apple limits non-consumable in-app purchase promo codes to 1000 per app, this isn't sufficient for the organization's size. So I'm considering an alternative approach using an auto-renewable annual subscription with offer codes:
Create a few thousand offer codes for an annual subscription.
Users within the organization would redeem these codes.
Instruct users to immediately unsubscribe after redeeming the code.
The app would then check the in-app purchase receipt. If the receipt contains a transaction redeemed with an offer code, the app would treat this as a permanent unlock of all features.
My concern is that repurposing an auto-renewable subscription in this manner—effectively turning it into a lifetime unlock triggered by redeeming an offer code and immediately cancelling—might violate App Store guidelines.
Is using an annual subscription and offer codes this way likely to be compliant with App Store guidelines?
Thank you for your guidance!
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Review
StoreKit
App Store Connect
In-App Purchase
Hello,
I am new application developer that has been developing several applications in the productivity and finance sections concurrently for about 1 year. One of my applications is nearly ready to be submitted to the App Store.
I have received a lot of discouragement from people who have submitted apps in regards to putting submitting as a paid app, however due to all of the upfront and ongoing investment I've made, I do not wish to release my application for free initially.
(I am learning how to best integrate storekit and in-app purchases and subscriptions, but I'm not ready to implement that yet)
QUESTION:
When releasing an app as a paid app and then converting to a FREE app with subscription later on, is there anything I need to be aware of technically or in regards to guidelines so I don't shoot myself in the foot when changing pricing?
Any advice is greatly appreciated. Thank you.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
App Store
App Review
In-App Purchase
Over the past month I've been seeing a recent spate of customers suddenly having IAP problems where they are not getting their purchase because Apple is not providing an up to date receipt.
To be clear, this is for consumable IAPs.
This is super frustrating because nothing has changed from our side. Apple developer support have refused to investigate and say they aren't technical support.
Yes I've told the customer to uninstall/restart/reinstall the app from the MAS which should force an up to date receipt but it still doesn't work.
One customer went through the Apple support process and was simply given a refund, which is totally unhelpful because we've already had to manually add the purchased product and now we've lost the revenue and it doesn't get the problem fixed.
Anyone else having similar problems?
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
In-App Purchase
App Store Receipts
Hi everyone,
I’m hoping to get advice or hear from anyone with similar experiences.
Our app Pixllove was originally rejected under Guideline 4.3 (“Spam”).
We were later invited to an App Review call with Erica, who reviewed everything and confirmed verbally and in writing (April 8, 2025) that the spam classification was removed. She acknowledged that our app uses a unique concept and only required us to implement a pre-chat consent popup.
We implemented exactly that:
• A popup appears before any chat starts, displaying the match’s name, age, and distance.
• Users must actively accept before the chat begins.
• We show this clearly in our new demo video.
• Full reporting/blocking/moderation is in place.
However, after submitting the updated build, we were again rejected under a different interpretation of 1.2, with the reasoning that our app “connects users randomly.”
This appears to be a misunderstanding, since no match occurred during their test – and it takes at least 2 users online for a match to happen.
We explained this and even submitted a screenshot of the consent popup, which had been explicitly requested by Erica.
Sadly, the reviewer ignored our message and Erica’s previous confirmation and labeled us as spam again.
We replied and asked them to please review Erica’s note from April 8, but we haven’t received a response yet.
We’re lucky to have a second review meeting scheduled for Tuesday, but this experience has been extremely frustrating and honestly, quite unprofessional — especially after being told the issue had been resolved.
Has anyone experienced something similar?
What can be done to ensure prior Apple Review decisions are respected by future reviewers?
Thanks so much in advance,
Emilija
Pixllove Team
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
App Review
App Store Connect
In-App Purchase
TestFlight
Hello Community,
My application was rejected by Apple App Review, citing Guideline 4.7 and "non-embedded," which I believe is incorrect. All transactions are signed and sent directly through the app with explicit user permission. Additionally, there's an issue with min apps where users can access the functionality via a browser to interact with the service. This feature has been part of my old application and hasn't changed in the new update. It’s the same functionality as used by popular wallets like
Metamask
Uniswap
Coinbase
Which also employ web3 technology.
Over the past two weeks, I've tried to communicate with Apple's support team but have been ignored or received only generic rejection emails. This has left me frustrated and concerned about the time and resources I’ve invested in developing and supporting this app.
Could you please help me find a solution? Your assistance would be greatly appreciated!
Hello,
I have submitted my app for review what seems like countless times. With my first submission, i created five consumable in app purchases and submitted those for review alongside my build.
My app keeps getting rejected because the reviewer cannot find the in app purchase in my app. I keep telling them that my app screen is dynamic and only shows available products. All of my submitted in app purchases are still in the "Waiting for Review" state and therefore do not show up.
This is a chicken or the egg scenerio. I need the purchases approved so they show up in the app and can be tested by the reviewer but for whatever reason they are not being approved and the reviewer is only looking at my build and rejecting it.
How do others get around this? This seems like a broken process (submitting in app purchases with builds instead of independently).
I desperatly want to get out of this submit->rejection cycle.
We sell magazines through a third party app platform called Pocketmags and our website. The magazines have Print, Digital and Combo options available for purchase. Also, this third party app provides the platform to read the digital version of the magazines.
Once a user buys a subscription on the website, he/she receives the email with the login information on PocketMags, where he registers his login details and can start reading his subscription. With us, the customer shares his billing/shipping address along with their email id while they make payment.
Now we have our own app where through which we want to sell these magazines and have to integrate In-App purchase for selling these digital subscriptions. How do we send the 3rd party subscription access details on email to the user if they do in app purchase?
I am unable to sign in to a Sandbox Apple Account, where this issue occurs only via Simulator.
Under Settings > Developer, I tap "Sign In" under Sandbox Apple Account. I enter my account credentials, and after bringing me back to the Developer page, the Sign In button briefly appears as disabled, before being re-enabled, without signing in to the account. (The account credentials are also recognized as correct, as I will receive an alert popup if incorrect.) See screenshots below:
After signing in, Sign In button appears disabled...
... then is re-enabled without actually signing in to the account.
I have now tried setting up multiple sandbox accounts via App Store Connect with various permutations (no confirmation of Apple Account email, confirming Apple Account email, logging in to iCloud and accepting terms of service), running different device simulators, running simulators on different Mac computers... none of which yield a different result.
By contrast, I can sign in to the Sandbox Apple Account without issue on a physical device. The problem occurs only via Simulator.
Hello,
I am writing this because the behavior of the App Store Server Notification that our server receives is problematic in the Sandbox environment.
I have two questions in total.
When purchasing a Free Trial subscription, after receiving the SUBSCRIBED / INITAL_BUY Notification, DID_RENEW should be sent when it expires, but DID_FAIL_TO_RENEW/GRACE_PERIOD is sent.
The EXPIRE Notification is sent after the subscription expires or DID_CHANGE_RENEWAL_STATUS/AUTO_RENEW_DISABLED is sent, but it does not arrive.
The first problem is that I recently heard that automatic payments after a free trial require the user's consent via email. Is this the reason?
If so, I am curious about how I can test it in the Sandbox environment.
Is the second problem a bug?
Topic:
App & System Services
SubTopic:
Notifications
Tags:
Subscriptions
In-App Purchase
App Store Server Notifications
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.
Yesterday I noticed that if I purchase a free trial subscription in my app using a sandbox account, when the subscription expires I see a “Billing Problem” message every time I open the app.
”allow purchases & renewals“ setting is ON so this shouldn’t happen.
has anyone else seen this or knows how to resolve?
observed on iOS 18.3.2 & 16.7.10
thanks
I have an app which is already on App Store with In-app purchase. Now I want to integrate In-app purchase in my another app for the same products as in the existing app. Both the apps are using same Apple Account. Can I reuse those Product Ids from the first app in the second one. If yes, what is the ways to use them.
Thank you in advance.
New subscriptions have been failing to renew in the sandbox for 3 days. I am seeing multiple posts and comments from people that appear to be experiencing the same issue. But I haven't seen any feedback from Apple representatives.
I really do not want to launch a new app without seeing functioning renewals in the sandbox.
Is there somewhere else we are intended to seek assistance?
Hello everyone,
I am facing an issue with in-app subscriptions while submitting my app for review.
I have created subscriptions properly in App Store Connect.
Coding-wise, everything is implemented correctly on both the application side and backend side.
I have ensured that banking and tax information is complete, and all necessary agreements are active.
I followed the correct procedure to create and submit subscriptions for review.
Problem: App Review Team Can't See Product IDs
When I submitted my first Product ID for review with the new app binary, the app got rejected because the App Review team is unable to see the product IDs in the purchase flow.
They are trying to make a purchase using Sandbox, but the SKProducts array is coming back empty from the App Store.
Since the product IDs are not activated, the app cannot fetch them, leading to a failed purchase attempt.
This is causing a loop where the App Review team can't approve the IAP because they can't see the products.
Additional Information:
The app is not fetching SKProducts even in the development environment.
I have verified the Product IDs in App Store Connect, and they exist in the correct App Bundle ID.
There are no pending agreements or missing tax/banking details.
The in-app purchases have been submitted along with the app for review.
Request for Help:
Is there any additional step required to activate the subscriptions for App Review?
Why might the SKProducts array be empty even in development?
Has anyone faced a similar issue, and how did you resolve it?
Any guidance would be greatly appreciated.
Thanks in advance!
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
Subscriptions
In-App Purchase
App Store Receipts
I am testing sandbox subscribe but I always recieve DID_FAIL_TO_RENEW
I try to create new sandbox account and clear purchase history but not work
can anyone help?