Hello!
How can I set appAccountToken when I'm using the new SwiftUI view SubscriptionStoreView for subscription?
Previously I was able to set it as a purchase option here https://developer.apple.com/documentation/storekit/product/purchase(options:) but I don't see purchase options with SubscriptionStoreView.
Thank you,
sendai
Subscriptions
RSS for tagGive users access to content, services, or premium features in your app on an ongoing basis with subscriptions, a type of in-app purchase.
Posts under Subscriptions tag
200 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I am in Apple Connect and in order to sell my Subsricptions in my mobile app i need to agree to the DSA and fill in my contact information.
i do so, but only my email gets a verification code meanwhile my phone does not get one! I tried sms and call but both did not work.
because i cant verify i cant agree and because of that i cant sell my subsription?!!
*** is this clown show???
Hello, I'm using the App Store Connect API to check and modify subscription prices. I know there can be only 1 outstanding future price change for subscription pricing, so I check for any scheduled future price changes (after today's date) and then delete them before setting new ones.
This works 95% of the time -- except in the last little bit before the date changes. For example, if it is 1 hour before midnight and tomorrow's date is when the scheduled price change goes into effect, when I try to delete, I'll get something like this:
The request failed with response code 409 ENTITY_ERROR.
There is a problem with the request entity. Cannot delete Subscription Price with id . Only future price changes can be deleted.
If I look at the same subscription in App Store Connect, it will still show it as a future price change, and won't show the usual buttons to modify or delete it. However, in App Store Connect, I can still hit the "+" button to create a new price change and it will successfully delete and replace the pending price change, which will then appear with the usual Delete and Edit buttons.
My first thought was that maybe it was a timezone issue, but if I go to put the new pricing into effect, that request fails with an error like this:
"errors" : [ {
"id" : "5a51c570-1f38-4fa0-b490-9fa979f4aecf",
"status" : "409",
"code" : "STATE_ERROR",
"title" : "The request cannot be fulfilled because of the state of another resource.",
"detail" : "Must delete future price change before creating a new price change."
} ]
So... my questions are:
Is this expected behavior?
How can App Store Connect replace the pending price change in the final hours but I can't do it with the API?
As a workaround, is there a set amount of time before the price change goes into effect where the prices should no longer be editable?
Thanks!
For Apple subscription payments, my server does not receive notifications for production environment payments, but it can receive notifications for sandbox payments at the same notification address.
Signed renewal info from 'Get Subscription Statuses' or in server notifications never has the offerType or offerDiscountType even when the corresponding transaction does have those values set.
Our offer is a free trial.
Do these properties refer to something different in JWSRenewalInfoDecodedPayload than they do in transactions?
I'm trying to determine whether a subscription (identified by originalTransactionId) is currently in a free trial based on server notifications. The status doesn't tell us if the subscription is currently in free trial and the signedTransactionInfo may be for an older transaction.
Hi everyone,
I’m struggling to get StoreKit 2 to fetch products in my SwiftUI app while using a sandbox user. I think I’ve followed all necessary setup steps in Xcode, App Store Connect, and my physical test device, but Product.products(for:) always returns an empty array. I’d appreciate any insights!
What I’ve Done
Local App Setup (Xcode 16.2)
Created a blank SwiftUI Xcode project.
Enabled In-App Purchase capability under Signing & Capabilities.
Implemented minimal StoreKit 2 code to fetch available products (see below).
Using the correct bundle identifier, which matches App Store Connect.
App Store Connect Configuration
Registered the app with the same bundle identifier.
Created an Auto-Renewable Subscription with:
Product ID: v1 (matches my code).
All fields filled (pricing, localization, etc.).
Status: Ready for Review.
Linked the subscription to the latest app version in App Store Connect.
Sandbox User & Testing Setup
Created a sandbox tester account.
Logged in with the sandbox user under Settings → Developer → Sandbox Apple ID. This was on my physical device (iOS 18.2).
Installed and ran the app directly from Xcode (⌘+R).
Issue: StoreKit Returns No Products
Product.products(for:) does not return any products.
There are no errors thrown, just an empty array.
I confirmed that StoreKit Configuration is set to None in Xcode.
No StoreKit-related logs appear in the Console.
Code Snippets
//StoreKitManager.swift
import StoreKit
import SwiftUI
@MainActor
class StoreKitManager: ObservableObject {
@Published var products: [Product] = []
@Published var errorMessage: String?
func fetchProducts() async {
do {
let productIDs: Set<String> = ["v1"] // Matches App Store Connect
let fetchedProducts = try await Product.products(for: productIDs)
print(fetchedProducts) // Debug output
DispatchQueue.main.async {
self.products = fetchedProducts
}
} catch {
DispatchQueue.main.async {
self.errorMessage = "Failed to fetch products: \(error.localizedDescription)"
}
}
}
}
//ContentView.swift
import SwiftUI
struct ContentView: View {
@StateObject private var storeKitManager = StoreKitManager()
var body: some View {
VStack {
if let errorMessage = storeKitManager.errorMessage {
Text(errorMessage).foregroundColor(.red)
} else if storeKitManager.products.isEmpty {
Text("No products available")
} else {
List(storeKitManager.products, id: \.id) { product in
VStack(alignment: .leading) {
Text(product.displayName).font(.headline)
Text(product.description).font(.subheadline)
Text("\(product.price.formatted(.currency(code: product.priceFormatStyle.currencyCode ?? "USD")))")
.bold()
}
}
}
Button("Fetch Products") {
Task {
await storeKitManager.fetchProducts()
}
}
}
.padding()
.onAppear {
Task {
await storeKitManager.fetchProducts()
}
}
}
}
#Preview {
ContentView()
}
Additional Information
iOS Version: 18.2
Xcode Version: 16.2
macOS Version: 15.3.1
Device: Physical iPhone (not simulator)
TestFlight Build: Not used (app is run directly from Xcode)
StoreKit Configuration: Set to None
Hi everyone!,
I would love your help with this please as I have been stuck for days with no solution.
Issue:
I'm trying to enable In-App Purchases (IAP) in my app, but my provisioning profile does not include the com.apple.developer.in-app-purchase entitlement.
When I attempt to build in Xcode, I see the following error:
Provisioning profile "iOS Team Provisioning Profile: org.thewhiteowl.mindflow" doesn't include the com.apple.developer.in-app-purchase entitlement.
I've already verified my Apple Developer account, and Apple Support confirmed that everything looks correct from their end.
Steps Taken So Far:
Verified In-App Purchases is Enabled in the Apple Developer Portal under Certificates, Identifiers & Profiles → Identifiers.
Accepted All Agreements in App Store Connect → Agreements, Tax, and Banking (everything is marked Active).
Created a New Provisioning Profile Manually:
. Go to developer.apple.com
. Navigate to Certificates, Identifiers & Profiles
. Click "+" to register a new provisioning profile
. Choose App Store Connect → Click Continue
. Select App ID → MindFlow App (PM7JVFLCVC.org.thewhiteowl.mindflow) → Click Continue
. Select Certificate → The White Owl LLC (iOS Distribution) (Valid until Feb 22, 2026) → Click Continue
. Enter Provisioning Profile Name: "MindFlow Distribution" → Click Generate
. Download the profile and inspect the Entitlements section
❌ The In-App Purchase entitlement is missing (com.apple.developer.in-app-purchase does not appear).
Additional Troubleshooting:
. Tried regenerating the provisioning profile multiple times
. Deleted & reinstalled Xcode completely
.Ensured App ID is Explicit (not Wildcard)
. Tried refreshing App ID capabilities by toggling other entitlements
. Checked for misconfigurations in Expo and EAS (using Expo.dev for deployment)
Questions:
Why is the In-App Purchase entitlement missing from the generated provisioning profile?
Is there a way to force the entitlement to appear?
Could this be an issue with the Apple Developer Portal, and if so, is there a workaround?
Any help or insights would be greatly appreciated! 🚀
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Store
iOS
In-App Purchase
Hello. I’m having some issues testing my in app subscriptions.
when I request the products from my subscription ID I get no errors but get an empty array.
the subscriptions show as ‘waiting for review’.
is this why they aren’t appearing? Do I need to submit a version of the app for review in order to test them? That seem strange!
Thanks for any help
Hi,
We have built a Web App that allows small clubs (such as gymnastics or cheerleading clubs) to manage their members, maintain a small store and allows members to subscribe to and pay for courses, classes and other such in-person events.
We are starting to build an IOs App that will allow Club Members to book and pay for in-person events and buy physical items from a Club's online store (such as uniforms etc.). We would like to use Stripe to take payments from within the app. The app itself will be free.
I want to be sure about the rules around In App purchases, more specifically the fees for taking such payments. If Clubs have to pay Apple's 30% payment fees for In App purchases, it makes payment through the IOs apps not viable.
Can anyone confirm that this app would be allowed to use Stripe for payments and not have to use StoreKit? Also that this app would not be subject to the 30% fees for purchases of in-person events and physical products?
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
Subscriptions
Tap to Pay on iPhone
We are currently developing a dating app. Considering that the number of users will be relatively small at the initial launch, we are thinking of offering subscription features for free, such as flight mode and read receipts. This means that our initial version will be a completely free product with no in-app purchases or subscriptions.
However, we are concerned that this might lead to rejection during the App Store review process. We would greatly appreciate any guidance from the Apple review team on whether this approach is acceptable. Thank you very much!
users download app with Streamlined Purchasing ,but the logic of checking subscription doesn't work. there the code:
func checkSubscriptionStatus() async {
for await entitlement in Transaction.currentEntitlements {
guard case .verified(let transaction) = entitlement else { continue }
if transaction.productID == monthlyProductID || transaction.productID == yearlyProductID {
if transaction.revocationDate == nil && !transaction.isUpgraded {
let activeSubscribed = transaction.expirationDate ?? .distantFuture > .now
if activeSubscribed {
hasActiveSubscription = activeSubscribed
// other operation
}
}
}
}
}
Is it possible to have a subscription pricing model where the subscription is a prime number of activation of an app on multiple devices? This would be for a period of time before needing to renew. If this is possible, please could some point me in the direction of some documentation or guidance.
Our app is getting rejected because they can not find our lifetime offering in app purchase. We added it as a test, but now would like to remove it from App Store connect, but in the UI on the website, I see no option to remove it. It has been "In Review" for a while. We marked it as "Remove from Sale", but we are still getting rejected. Any advice?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Store Connect
In-App Purchase
Hello is there a way to only allow credit card that is from a certain country to access in-app subscription in my app?
Lets say I will only allow credit card from Singapore.
I don't think its possible with In-App purchase but my colleague wanted to know and I just wanted to double check here.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
StoreKit
App Store Connect
In-App Purchase
I don not need IAP integration for my app. My app is only using own specific country's payment service. And my app is rejected
works perfectly on android but doesn't work at all on IOS and i have used the same bundle id and product ids on both stores.
The error that i get on IOS is : "IAP initialization failed: NoProductsAvailable - No Product returned from store"
Here are the things that i've done:
Created an App ID on the apple developer portal with the correct capabilities
I have enabled the correct capabilities on the xcode project Unity Framework is embed and signed, Storekit (do not embed)
In singin and capabilities in-app purchases is there
I am using testflight to submit the app with a distribution certificate that appears to be valid
I've checked the the bundle identifier and it's the same everywhere (unity project, xcode project, App ID)
All of the products are cleared for sale and are in the status "ready to submit"
I always uninstall the old app version before testing the new one
My banking updates are still processing does this effect TestFlight IAP
Paid Apps Agreement is in Pending User Info state does this effect also
I still haven't filled out the tax forms, so I'm wondering if I need to complete them before my app's in-app purchases (IAPs) work in TestFlight.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
In-App Purchase
Apple Unity Plug-Ins
Hi,
I am experiencing an issue with in-app subscriptions in my React Native application known-singles, using the react-native-iap library. When a user subscribes to a plan, the transaction executes successfully, and a receipt is returned. However, the transaction remains in a pending state indefinitely and does not update. Additionally, the transaction amount is not deposited into my bank account, even though all banking details are correctly set up in App Store Connect.
We have thoroughly debugged the issue on our end but could not identify the cause. TestFlight transactions complete successfully, but real purchases remain stuck in pending status.
Here are the relevant details of our implementation:
React Native version: 0.60.4
react-native-iap version: 4.2.2
Could you please assist in resolving this issue? Any guidance on why transactions are not being completed and why payouts are not being processed would be greatly appreciated.
Looking forward to your support.
Hello,
We are an app developer offering subscription-based services, and we want to better understand how Apple determines the consumptionStatus when processing refund requests for in-app subscriptions.
Based on Apple’s documentation on subscription refund requests, we understand that the consumptionStatus value plays a key role in Apple’s refund decision-making process. However, the documentation does not provide a clear guideline on how much usage qualifies as consumptionStatus = 2 (partially used) vs. consumptionStatus = 3 (fully used).
Our key questions:
1. Usage Threshold: Does Apple have a specific percentage of subscription duration (e.g., 20% of the subscription period) that determines whether a subscription is considered “fully used”?
2. Function-Based Usage: Does Apple prioritize certain types of user actions (e.g., unlocking premium content, engaging with subscription features) when evaluating consumptionStatus?
3. Best Practices: Are there recommended best practices to increase the credibility of our consumptionStatus = 3 submission to minimize unjustified refunds?
4. Refund Preference Impact: If we set refundPreference = 2 (deny refund), how much influence does it actually have on Apple’s decision?
We aim to reduce unnecessary refunds while ensuring fairness to our users. Any official guidance or insights from other developers would be greatly appreciated!
Thank you!
We had a work card attached to our developer's account.
team ID 924RUYJZ34
dev ID 8771bf7b-31a9-4602-baae-02580fe5b6c4
Funds are debited from this card in other services, there are no problems with it, the amount in the account is sufficient.
Our membership subscription did not renew automatically. The applications are blocked. We can't renew our subscription, there's no Renew button anywhere.
There is no way to extend it on any device, web version, or anywhere else. We can't even cancel and re-arrange it, all the functions don't work.
Please help us, how can we renew our subscription?!
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Subscriptions
Developer Program
I am experiencing difficulties including subscriptions for the first time in a new binary version. The subscriptions are currently in “Developer Action Needed” status, and I am unable to reset them to “Ready to Submit”. I assume this is why the “Select In-App Purchases and Subscriptions” option is missing from the binary version page. Since subscriptions are a vital part of the app, their absence has led to the app being rejected in the review process.
Any advice on how to proceed?