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

Acknowledgment there is a subscription renewal problem?
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?
2
1
150
Apr ’25
The currency information obtained from [priceLocale] differs between the TestFlight version and the official release version.
When creating a subscription charging system for an iOS app, I am trying to change the display to yen, dollars, or euros depending on the user's country. I am using [priceLocale] of [SKProduct] in [StoreKit] to obtain currency information linked to the Apple account from the App Store and change the display. The smartphone I am testing on uses an Apple account created in Japan, and the nationality of the App Store is also set to Japan, so I expect the display to be in yen. As a result, the TestFligh version displayed dollars, but the official release version displayed yen. Why doesn't the TestFligh version display yen?
2
0
162
Apr ’25
“Billing problem” after free trial subscription expiry in sandbox environment
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
2
1
148
Apr ’25
StoreKit 2 - "Storefront Not Available" on TestFlight (Works on Simulator)
I'm having issues with StoreKit 2 when trying to load my auto-renewable subscriptions on a physical device via TestFlight. It works perfectly in the simulator using a local .storekit configuration file, but when I install the app through TestFlight, StoreKit does not return any products at all. Instead, I get the error: "Storefront not available" What I've Tried: ✅ In-App Purchases are enabled on my device. ✅ Using a sandbox account (confirmed logged in under Settings > Developer > Sandbox Account). ✅ The app is signed correctly with automatic signing in Xcode. ✅ The product IDs are correct (they work in the simulator with the local StoreKit file). ✅ I enabled SK2DebugLogging, but I don't see detailed errors. ✅ Restarted the device and signed out/in of my sandbox account. ✅ Checked that the App Store region matches my sandbox account’s region. ✅ The app is not fetching products dynamically at all on a real device—just getting "storefront not available." Additional Notes The app is installed via TestFlight, not running in debug mode from Xcode. The app is signed in to the App Store with a real Apple ID (not the sandbox one). Apple confirmed that products don’t need to be "Ready for Sale" for sandbox testing. I checked the Console.app logs on my Mac, but nothing obvious showed up. What I Need Help With Why would StoreKit 2 fail to return products in TestFlight, but work fine in the simulator? What does "storefront not available" actually mean in this context? Any steps I might have missed to force StoreKit to fetch products properly? Any help would be greatly appreciated! 🚀
1
0
148
Apr ’25
Problems when testing Storekit purchases and subscriptions in Xcode and TestFlight
I have an app that unlocks content based on in-app purchases, both one-time payments and subscriptions. Recently, I added new subscription products, both for distribution in App Store Connect and in the configuration file in XCode to be able to test it, declaring it in the scheme. Since the beginning of development, I have had issues with subscriptions. Every time I close the app and reopen it, in order for the app to recover which subscription is active, I have to run the purchase function. This doesn’t happen with purchases or in the production environment, where it works fine. I’ve now implemented SubscriptionStoreView, so I don’t depend on my business logic, in case I’m doing something wrong in the code. This view never remembers which product I’ve already purchased. Currently, in a version deployed to my phone from XCode, it doesn't even process the payment. On macOS, the experience is even worse. On iPad, through TestFlight, I haven’t even been able to test payments at all.
0
0
99
Apr ’25
Stripe SDK as payment option for EU company
We are an EU-based company and targeting only the EU market. According to the EU regulations, we should be able to use alternative payment systems. We decided to use Stripe SDK, as we already using Stripe on our web platform. However, when we sent the app for review, the reviewer asked us to add in-app purchases as a must in the app. We have the Alternative Terms Addendum for Apps Distributed in the European Union signed, but it seem it is igored by the reviewer. One more point, we would like to keep the payment process inside de app using Stripe SDK and not to send users out of the app via com.apple.developer.storekit.external-purchase, which is very wrong user experience. Anyway we can't find any clear documentation how to enrole and use the alternative payment options in the app. Please help.
4
0
167
Apr ’25
Converting Payed App to Freemium
I just converted my App to Freemium, but the method is used to give user, that bought the App before it was free, access to the paid futures seems not to be working. I am getting the original Purchase Date from the AppTransaction (https://developer.apple.com/documentation/storekit/apptransaction/originalpurchasedate) and comparing that to a set date where the App Model changed. In Test Flight this is working without any Problems but on the Live System, users that have purchased the App do not get access! let shared = try await AppTransaction.refresh() if case .verified(let appTransaction) = shared { result(appTransaction.originalPurchaseDate.ISO8601Format()). } I am using flutter to develop the App and the result()... send the string back to the flutter side. Here is the code of the Flutter side: Future<void> restorePurchases() async { SubscriptionProvider().updatePayment(PurchaseStatus.pending); await InAppPurchase.instance.restorePurchases(); if (Platform.isIOS) { DateTime changedToFreemium = DateTime.utc(2025, 4, 7, 11, 0, 0); String? purchaseDateRaw = await IosFlutterChannel().getOriginalPurchaseDate(); if (kDebugMode) { print("Purchase Date Raw: $purchaseDateRaw"); } if (purchaseDateRaw != null) { DateTime purchaseDate = DateTime.parse(purchaseDateRaw); if (purchaseDate.isBefore(changedToFreemium)) { if (kDebugMode) { print("Restoring legacy purchases"); } SubscriptionProvider().update(true, SubscriptionStatus.active, SubscriptionType.fs_lifetime); } else { if (kDebugMode) { print("Not restoring legacy purchases"); } } } } SubscriptionProvider().updatePayment(PurchaseStatus.purchased); } Console Log when running in Test Environment: flutter: Purchase Date Raw: 2013-08-01T07:00:00Z flutter: Restoring legacy purchases Thanks!
1
0
154
Apr ’25
Problems using sandbox to test in app purchases
Three main questions: How do I know I'm using my sandbox account in my app because when signing in, it only shows my normal apple account? How do I make sure I configured my subscriptions correctly in app store connect? How do I test without local storekit configs? Some context: I created a paywall (using a 3rd party service, superwall) for my app and everything seems to work when using local storekit configs. I submitted for review and the reviewer is having problems with purchasing because my paywall can't find the product I set up in app store connect. I have been trying to debug. I set up a sandbox tester account and can confirm that I am logged in my phone's developer settings. But when I log in my app, the sign in with apple pop up only gives the choice to sign in with my apple ID. Is this normal? Does apple just treat these accounts the same? Also, I can't seem to pull subscription info from app store connect when creating a synced storekit config. I created a new subscription in app store connect, so now I have two, a test and a weekly one. When I create a local storekit config and sync from the appstore, only my test one shows. For context, the weekly subscription shows up as "waiting for review" while test shows up as "ready to submit". Idk if that makes a difference. I highly suspect I misconfigured something with my in app subscriptions. I'm trying to replace superwall with my own built in paywall. But I can't seem to pull any product from the app store unless I use a storekit config, but even then, my weekly one doesn't show up. Plz help.
0
0
136
Apr ’25
Can I ask user to share his/her email id while doing
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?
0
0
68
Apr ’25
In-App Subscription Rejected – “Transaction ID Not Found” during Review – Need Clarification
Hi everyone, I’ve been struggling for days to get my in-app subscriptions approved, and I could really use some clarity or guidance from other developers or Apple engineers. Everything works fine in development (debug builds with sandbox). The issue starts when testing via TestFlight or during App Store Review. When Apple reviewers attempt to subscribe, my backend returns: "transaction id not found" As a result, I keep getting rejected under Guideline 2.1 (App Completeness) with this note: “When tapped to make the purchase, an error still appeared... your server needs to handle a production-signed app getting receipts from Apple’s test environment...”
1
0
99
Apr ’25
How to Simulate Subscription Cancellation with Products.storekit in Simulator?
Hi, Currently, instead of using a real device and test account for in-app purchase testing, we are using Products.storekit with the Simulator. Our app offers a subscription plan with a 3-day free trial. We would like to simulate the following test scenarios: User cancels the subscription within the 3-day free trial period. User cancels the subscription after the 3-day free trial period. However, in Xcode, under Debug > StoreKit > Manage Transactions..., we couldn’t find an option to simulate a subscription cancellation. There is an option to refund the purchase, but we believe this is not the same as a cancellation. Do you have any idea how we can simulate these two cases using Products.storekit and the Simulator? Thanks in advance!
1
1
93
Apr ’25
Postback copies dev testing with AdAttributionKit
Hello, Having bad times with Development Postback copies receival on our custom server. Current setup: App is configured to be advertised (https://developer.apple.com/documentation/adattributionkit/configuring-an-advertised-app) AdAttributionKit - Opt in for Reengagement Postback Copies ✅ AdAttributionKit - Postback Copy URL ✅ AdAttributionKit - Ad Network Identifiers ✅ Configured backend https://{name}.com/.well-known/appattribution/report-attribution/ (POST) ✅ Devices with iOS 18.4 (with Postaback Development tool and AdAttribution developer mode Enabled) Tried different Postback setup combinations, with different app builds (debug, release installed from xcode/testflight) and with AdAttribution developer mode Enabled/Disabled - doesn't make any difference. Console log: Found 0 postbacks eligible for transmission for environments: Any advise is very much appreciated
1
0
179
Apr ’25
Auto-renewable subscriptions does not work in production
I don't know why the subscription doesn't work in production, the message Subscription Unavailable appears. The subscription is approved in appstoreconnect. Works normally using storekit in xcode, both signing and using subscriber features. According to apple's guidance, first I do the test to validate https://buy.itunes.apple.com/verifyReceipt and then https://sandbox.itunes.apple.com/verifyReceipt. Plus I create the app-specific shared secret and put it in the code to validate the receipts. I have looked for several topics and I can not solve this problem. What do I need to do to make it work in production? I believe I did what's in the official documentation.
6
0
191
Apr ’25
manage sandbox account clear purchase history not working?
I would like to know whether and how people are getting the sandbox account > manage > clear purchase history feature to work. I clear purchase history (either on my device or at app store connect), and I delete my app from my device. I then run my app from Xcode on my device, and it detects at launch the existence of the purchase, and so I cannot test my purchase user interface. Does this thing actually work as advertised?
7
11
1.1k
Apr ’25
Reporting to External Purchase Server API when using alternative PSP in the EU
Dear community, Context My company operates in the European Union, where not so long ago there appeared the possibility to accept an ["Alternative Terms Addendum for Apps in the EU"] (https://developer.apple.com/contact/request/download/alternate_eu_terms_addendum.pdf), which, among others, gives us the possibility to use an alternative payment provider, other than Apple's In App Purchase PSP system (ref: Apple docs). My company did accept it and was granted the StoreKit External Purchase Entitlement (com.apple.developer.storekit.external-purchase) entitlement, with which we integrated a different PSP, so now we want to incorporate the reporting to Apple's External Purchase Server API. We are currently integrating with the External Purchase Server API and have encountered a couple of issues I would appreciate clarification on: Question 1 Is there a way to retrieve an overview or summary of the current subscription states on Apple’s servers as a result of the submitted reports to External Purchase Server API? Specifically, I would like to verify the expected outcomes before the monthly invoice is issued by Apple and to understand the subscription states for the test users I used during this process and for future reference as well. Question 2 In one scenario, I initiated a one-year subscription, and in the middle of its period, I submitted a RENEWAL for one month with a higher price. I expected the request to fail due to overlapping periods and/or pricing conflicts, but both submissions were accepted without error. Do you have an idea about: What happens at the end of the renewed month? Will the subscription continue with the renewed (higher) amount, revert to the original (lower) annual rate, or be canceled? Where can I view the final state and billing plan for that subscription? Thank you for your assistance, we are looking forward for any kind of help or information regarding this topic.
0
0
127
Apr ’25
App Store Guidelines: auto-renewable subscription offer code as non-consumable alternative?
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!
0
0
109
Apr ’25
[macOS] AppTransaction questions (internet connection requirement)
Hello, I hope to find out more about how AppTransaction works on macOS, specifically about its internet connection requirements: if I use this to validate that the app is a legit purchase from the Mac App Store, I would not want it to have an always-on requirement just to validate. Does AppTransaction require the user to always be online for AppTransaction.shared ? When an app is downloaded from the Mac App Store, is the data needed for AppTransaction automatically embedded during that download, or is that data downloaded upon first launch of the app, therefore requiring an internet connection at launch time? Once the data/receipt has been downloaded by AppTransaction, is it cached until the app's next update, or is it cleared at some time during the version's life and needs to be re-downloaded, therefore requiring an internet connection at launch? Where is that receipt/data stored? Also, if you don't mind me sneaking in this non-related but sort of related question, in terms of receipt validation: Does macOS Sequoia's MAC address rotation feature affect receipt validation in any way when using IOKit? Thank you kindly, – Matthias
2
4
654
Apr ’25
[Suggestion] Improving App Store Pricing Models
I would like to share some feedback regarding the current App Store pricing model, particularly around subscriptions. Over time, there has been a noticeable shift from one-time purchases to subscription-based pricing for nearly all types of apps and games. While subscriptions make sense for content-driven services such as streaming (movies, music, books, etc.), they often feel forced or excessive when applied to standalone apps or games that previously used a one-time purchase model. Many users view this as an abuse of the subscription system, leading to frustration and distrust. As a developer, I also understand the challenge of sustaining revenue, especially when major updates require significant time and resources. One-time purchases often don’t reflect the long-term value an app may provide or the cost of continued development. That said, I believe a more balanced approach would benefit everyone. I’d like to suggest the implementation of a major upgrade pricing model on the App Store. For example, when a developer releases a major new version of an app (e.g., 2.0, 3.0, etc.), they could offer: A standard price for new users (e.g., $2.99) A discounted upgrade price for existing users (e.g., $0.99) This would allow developers to be fairly compensated for continued innovation while also respecting customers who have already supported the app. Subscriptions could then be more appropriately reserved for content-based services. I believe this model would create a healthier ecosystem for both users and developers, encouraging more sustainable and transparent pricing practices. Feedback Assistant : FB17281833
0
0
123
Apr ’25
“Account Not In This Store” error when trying to purchase non-consumable IAP within TestFlight
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.
17
11
2.7k
Apr ’25
Acknowledgment there is a subscription renewal problem?
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?
Replies
2
Boosts
1
Views
150
Activity
Apr ’25
The currency information obtained from [priceLocale] differs between the TestFlight version and the official release version.
When creating a subscription charging system for an iOS app, I am trying to change the display to yen, dollars, or euros depending on the user's country. I am using [priceLocale] of [SKProduct] in [StoreKit] to obtain currency information linked to the Apple account from the App Store and change the display. The smartphone I am testing on uses an Apple account created in Japan, and the nationality of the App Store is also set to Japan, so I expect the display to be in yen. As a result, the TestFligh version displayed dollars, but the official release version displayed yen. Why doesn't the TestFligh version display yen?
Replies
2
Boosts
0
Views
162
Activity
Apr ’25
“Billing problem” after free trial subscription expiry in sandbox environment
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 &amp; 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 &amp; 16.7.10 thanks
Replies
2
Boosts
1
Views
148
Activity
Apr ’25
StoreKit 2 - "Storefront Not Available" on TestFlight (Works on Simulator)
I'm having issues with StoreKit 2 when trying to load my auto-renewable subscriptions on a physical device via TestFlight. It works perfectly in the simulator using a local .storekit configuration file, but when I install the app through TestFlight, StoreKit does not return any products at all. Instead, I get the error: "Storefront not available" What I've Tried: ✅ In-App Purchases are enabled on my device. ✅ Using a sandbox account (confirmed logged in under Settings &gt; Developer &gt; Sandbox Account). ✅ The app is signed correctly with automatic signing in Xcode. ✅ The product IDs are correct (they work in the simulator with the local StoreKit file). ✅ I enabled SK2DebugLogging, but I don't see detailed errors. ✅ Restarted the device and signed out/in of my sandbox account. ✅ Checked that the App Store region matches my sandbox account’s region. ✅ The app is not fetching products dynamically at all on a real device—just getting "storefront not available." Additional Notes The app is installed via TestFlight, not running in debug mode from Xcode. The app is signed in to the App Store with a real Apple ID (not the sandbox one). Apple confirmed that products don’t need to be "Ready for Sale" for sandbox testing. I checked the Console.app logs on my Mac, but nothing obvious showed up. What I Need Help With Why would StoreKit 2 fail to return products in TestFlight, but work fine in the simulator? What does "storefront not available" actually mean in this context? Any steps I might have missed to force StoreKit to fetch products properly? Any help would be greatly appreciated! 🚀
Replies
1
Boosts
0
Views
148
Activity
Apr ’25
Problems when testing Storekit purchases and subscriptions in Xcode and TestFlight
I have an app that unlocks content based on in-app purchases, both one-time payments and subscriptions. Recently, I added new subscription products, both for distribution in App Store Connect and in the configuration file in XCode to be able to test it, declaring it in the scheme. Since the beginning of development, I have had issues with subscriptions. Every time I close the app and reopen it, in order for the app to recover which subscription is active, I have to run the purchase function. This doesn’t happen with purchases or in the production environment, where it works fine. I’ve now implemented SubscriptionStoreView, so I don’t depend on my business logic, in case I’m doing something wrong in the code. This view never remembers which product I’ve already purchased. Currently, in a version deployed to my phone from XCode, it doesn't even process the payment. On macOS, the experience is even worse. On iPad, through TestFlight, I haven’t even been able to test payments at all.
Replies
0
Boosts
0
Views
99
Activity
Apr ’25
Stripe SDK as payment option for EU company
We are an EU-based company and targeting only the EU market. According to the EU regulations, we should be able to use alternative payment systems. We decided to use Stripe SDK, as we already using Stripe on our web platform. However, when we sent the app for review, the reviewer asked us to add in-app purchases as a must in the app. We have the Alternative Terms Addendum for Apps Distributed in the European Union signed, but it seem it is igored by the reviewer. One more point, we would like to keep the payment process inside de app using Stripe SDK and not to send users out of the app via com.apple.developer.storekit.external-purchase, which is very wrong user experience. Anyway we can't find any clear documentation how to enrole and use the alternative payment options in the app. Please help.
Replies
4
Boosts
0
Views
167
Activity
Apr ’25
Converting Payed App to Freemium
I just converted my App to Freemium, but the method is used to give user, that bought the App before it was free, access to the paid futures seems not to be working. I am getting the original Purchase Date from the AppTransaction (https://developer.apple.com/documentation/storekit/apptransaction/originalpurchasedate) and comparing that to a set date where the App Model changed. In Test Flight this is working without any Problems but on the Live System, users that have purchased the App do not get access! let shared = try await AppTransaction.refresh() if case .verified(let appTransaction) = shared { result(appTransaction.originalPurchaseDate.ISO8601Format()). } I am using flutter to develop the App and the result()... send the string back to the flutter side. Here is the code of the Flutter side: Future<void> restorePurchases() async { SubscriptionProvider().updatePayment(PurchaseStatus.pending); await InAppPurchase.instance.restorePurchases(); if (Platform.isIOS) { DateTime changedToFreemium = DateTime.utc(2025, 4, 7, 11, 0, 0); String? purchaseDateRaw = await IosFlutterChannel().getOriginalPurchaseDate(); if (kDebugMode) { print("Purchase Date Raw: $purchaseDateRaw"); } if (purchaseDateRaw != null) { DateTime purchaseDate = DateTime.parse(purchaseDateRaw); if (purchaseDate.isBefore(changedToFreemium)) { if (kDebugMode) { print("Restoring legacy purchases"); } SubscriptionProvider().update(true, SubscriptionStatus.active, SubscriptionType.fs_lifetime); } else { if (kDebugMode) { print("Not restoring legacy purchases"); } } } } SubscriptionProvider().updatePayment(PurchaseStatus.purchased); } Console Log when running in Test Environment: flutter: Purchase Date Raw: 2013-08-01T07:00:00Z flutter: Restoring legacy purchases Thanks!
Replies
1
Boosts
0
Views
154
Activity
Apr ’25
Problems using sandbox to test in app purchases
Three main questions: How do I know I'm using my sandbox account in my app because when signing in, it only shows my normal apple account? How do I make sure I configured my subscriptions correctly in app store connect? How do I test without local storekit configs? Some context: I created a paywall (using a 3rd party service, superwall) for my app and everything seems to work when using local storekit configs. I submitted for review and the reviewer is having problems with purchasing because my paywall can't find the product I set up in app store connect. I have been trying to debug. I set up a sandbox tester account and can confirm that I am logged in my phone's developer settings. But when I log in my app, the sign in with apple pop up only gives the choice to sign in with my apple ID. Is this normal? Does apple just treat these accounts the same? Also, I can't seem to pull subscription info from app store connect when creating a synced storekit config. I created a new subscription in app store connect, so now I have two, a test and a weekly one. When I create a local storekit config and sync from the appstore, only my test one shows. For context, the weekly subscription shows up as "waiting for review" while test shows up as "ready to submit". Idk if that makes a difference. I highly suspect I misconfigured something with my in app subscriptions. I'm trying to replace superwall with my own built in paywall. But I can't seem to pull any product from the app store unless I use a storekit config, but even then, my weekly one doesn't show up. Plz help.
Replies
0
Boosts
0
Views
136
Activity
Apr ’25
Can I ask user to share his/her email id while doing
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?
Replies
0
Boosts
0
Views
68
Activity
Apr ’25
In-App Subscription Rejected – “Transaction ID Not Found” during Review – Need Clarification
Hi everyone, I’ve been struggling for days to get my in-app subscriptions approved, and I could really use some clarity or guidance from other developers or Apple engineers. Everything works fine in development (debug builds with sandbox). The issue starts when testing via TestFlight or during App Store Review. When Apple reviewers attempt to subscribe, my backend returns: "transaction id not found" As a result, I keep getting rejected under Guideline 2.1 (App Completeness) with this note: “When tapped to make the purchase, an error still appeared... your server needs to handle a production-signed app getting receipts from Apple’s test environment...”
Replies
1
Boosts
0
Views
99
Activity
Apr ’25
What causes the "You're all set" alert to be shown after making IAP
Originally I thought this was shown by the OS after finishTransaction was called but it seems to be happening earlier, like when the transaction status changes to SKPaymentTransactionStatePurchased correct?
Replies
0
Boosts
0
Views
87
Activity
Apr ’25
How to Simulate Subscription Cancellation with Products.storekit in Simulator?
Hi, Currently, instead of using a real device and test account for in-app purchase testing, we are using Products.storekit with the Simulator. Our app offers a subscription plan with a 3-day free trial. We would like to simulate the following test scenarios: User cancels the subscription within the 3-day free trial period. User cancels the subscription after the 3-day free trial period. However, in Xcode, under Debug > StoreKit > Manage Transactions..., we couldn’t find an option to simulate a subscription cancellation. There is an option to refund the purchase, but we believe this is not the same as a cancellation. Do you have any idea how we can simulate these two cases using Products.storekit and the Simulator? Thanks in advance!
Replies
1
Boosts
1
Views
93
Activity
Apr ’25
Postback copies dev testing with AdAttributionKit
Hello, Having bad times with Development Postback copies receival on our custom server. Current setup: App is configured to be advertised (https://developer.apple.com/documentation/adattributionkit/configuring-an-advertised-app) AdAttributionKit - Opt in for Reengagement Postback Copies ✅ AdAttributionKit - Postback Copy URL ✅ AdAttributionKit - Ad Network Identifiers ✅ Configured backend https://{name}.com/.well-known/appattribution/report-attribution/ (POST) ✅ Devices with iOS 18.4 (with Postaback Development tool and AdAttribution developer mode Enabled) Tried different Postback setup combinations, with different app builds (debug, release installed from xcode/testflight) and with AdAttribution developer mode Enabled/Disabled - doesn't make any difference. Console log: Found 0 postbacks eligible for transmission for environments: Any advise is very much appreciated
Replies
1
Boosts
0
Views
179
Activity
Apr ’25
Auto-renewable subscriptions does not work in production
I don't know why the subscription doesn't work in production, the message Subscription Unavailable appears. The subscription is approved in appstoreconnect. Works normally using storekit in xcode, both signing and using subscriber features. According to apple's guidance, first I do the test to validate https://buy.itunes.apple.com/verifyReceipt and then https://sandbox.itunes.apple.com/verifyReceipt. Plus I create the app-specific shared secret and put it in the code to validate the receipts. I have looked for several topics and I can not solve this problem. What do I need to do to make it work in production? I believe I did what's in the official documentation.
Replies
6
Boosts
0
Views
191
Activity
Apr ’25
manage sandbox account clear purchase history not working?
I would like to know whether and how people are getting the sandbox account > manage > clear purchase history feature to work. I clear purchase history (either on my device or at app store connect), and I delete my app from my device. I then run my app from Xcode on my device, and it detects at launch the existence of the purchase, and so I cannot test my purchase user interface. Does this thing actually work as advertised?
Replies
7
Boosts
11
Views
1.1k
Activity
Apr ’25
Reporting to External Purchase Server API when using alternative PSP in the EU
Dear community, Context My company operates in the European Union, where not so long ago there appeared the possibility to accept an ["Alternative Terms Addendum for Apps in the EU"] (https://developer.apple.com/contact/request/download/alternate_eu_terms_addendum.pdf), which, among others, gives us the possibility to use an alternative payment provider, other than Apple's In App Purchase PSP system (ref: Apple docs). My company did accept it and was granted the StoreKit External Purchase Entitlement (com.apple.developer.storekit.external-purchase) entitlement, with which we integrated a different PSP, so now we want to incorporate the reporting to Apple's External Purchase Server API. We are currently integrating with the External Purchase Server API and have encountered a couple of issues I would appreciate clarification on: Question 1 Is there a way to retrieve an overview or summary of the current subscription states on Apple’s servers as a result of the submitted reports to External Purchase Server API? Specifically, I would like to verify the expected outcomes before the monthly invoice is issued by Apple and to understand the subscription states for the test users I used during this process and for future reference as well. Question 2 In one scenario, I initiated a one-year subscription, and in the middle of its period, I submitted a RENEWAL for one month with a higher price. I expected the request to fail due to overlapping periods and/or pricing conflicts, but both submissions were accepted without error. Do you have an idea about: What happens at the end of the renewed month? Will the subscription continue with the renewed (higher) amount, revert to the original (lower) annual rate, or be canceled? Where can I view the final state and billing plan for that subscription? Thank you for your assistance, we are looking forward for any kind of help or information regarding this topic.
Replies
0
Boosts
0
Views
127
Activity
Apr ’25
App Store Guidelines: auto-renewable subscription offer code as non-consumable alternative?
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!
Replies
0
Boosts
0
Views
109
Activity
Apr ’25
[macOS] AppTransaction questions (internet connection requirement)
Hello, I hope to find out more about how AppTransaction works on macOS, specifically about its internet connection requirements: if I use this to validate that the app is a legit purchase from the Mac App Store, I would not want it to have an always-on requirement just to validate. Does AppTransaction require the user to always be online for AppTransaction.shared ? When an app is downloaded from the Mac App Store, is the data needed for AppTransaction automatically embedded during that download, or is that data downloaded upon first launch of the app, therefore requiring an internet connection at launch time? Once the data/receipt has been downloaded by AppTransaction, is it cached until the app's next update, or is it cleared at some time during the version's life and needs to be re-downloaded, therefore requiring an internet connection at launch? Where is that receipt/data stored? Also, if you don't mind me sneaking in this non-related but sort of related question, in terms of receipt validation: Does macOS Sequoia's MAC address rotation feature affect receipt validation in any way when using IOKit? Thank you kindly, – Matthias
Replies
2
Boosts
4
Views
654
Activity
Apr ’25
[Suggestion] Improving App Store Pricing Models
I would like to share some feedback regarding the current App Store pricing model, particularly around subscriptions. Over time, there has been a noticeable shift from one-time purchases to subscription-based pricing for nearly all types of apps and games. While subscriptions make sense for content-driven services such as streaming (movies, music, books, etc.), they often feel forced or excessive when applied to standalone apps or games that previously used a one-time purchase model. Many users view this as an abuse of the subscription system, leading to frustration and distrust. As a developer, I also understand the challenge of sustaining revenue, especially when major updates require significant time and resources. One-time purchases often don’t reflect the long-term value an app may provide or the cost of continued development. That said, I believe a more balanced approach would benefit everyone. I’d like to suggest the implementation of a major upgrade pricing model on the App Store. For example, when a developer releases a major new version of an app (e.g., 2.0, 3.0, etc.), they could offer: A standard price for new users (e.g., $2.99) A discounted upgrade price for existing users (e.g., $0.99) This would allow developers to be fairly compensated for continued innovation while also respecting customers who have already supported the app. Subscriptions could then be more appropriately reserved for content-based services. I believe this model would create a healthier ecosystem for both users and developers, encouraging more sustainable and transparent pricing practices. Feedback Assistant : FB17281833
Replies
0
Boosts
0
Views
123
Activity
Apr ’25
“Account Not In This Store” error when trying to purchase non-consumable IAP within TestFlight
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.
Replies
17
Boosts
11
Views
2.7k
Activity
Apr ’25