Post not yet marked as solved
Struggling for weeks to publish a new update of my app, which includes the first-time submission of a subscription with auto-renewal. It's constantly being rejected due to the following issue:
We have started the review of your app, but we are still not able to continue because we cannot locate the in-app purchases within your app at this time.
Next Steps
To help us proceed with the review of your app, please reply to this message providing the steps for locating the in-app purchases in your app.
If you are restricting access to in-app purchases based on factors such as storefront or device configurations, please include this information in your reply along with steps to enable the in-app purchases for our review.
No further information is provided, no communication on the steps being taken by Apple. Additionally, I have already provided a comprehensive description during submission on how to access the In-App Purchase (IAP) as text and video.
What's kind of interesting: the app got rejected, but the related subscription is still in state "waiting for review".
Has anyone else experienced a similar issue?
Post not yet marked as solved
When I make a purchase with the Simulated StoreKit Failures, it indicates that the purchase was successful. When I click OK on the alert, only then does the storekit error appear in the console. It seems like it is waiting to verify the transaction until I click 'Okay' in the alert. Why doesn't he do the transaction verification immediately and wait to show the success alert? See video
I take these steps:
I make the purchase in the app. This is successful according to StoreKit and you will receive an alert that the purchase was successful.
I press 'Okay' in the success alert.
When I press "Okay" in the alert I see that the transaction failed because it could not be verified.
So it seems that he only carries out the verification of the transaction as soon as I click away the success alert.
^Failed transaction message
func purchase(_ product: Product) async throws -> Transaction? {
print("Transactie gestart.")
let result = try await product.purchase()
switch result {
case .success(let verification):
print("Transactie doorgezet naar verificatie.")
let transaction = try checkVerified(verification)
//The transaction is verified. Deliver content to the user.
await updateCustomerProductStatus()
//Always finish a transaction.
await transaction.finish()
return transaction
case .userCancelled:
print("Transactie geannuleerd door de gebruiker.")
throw StoreError.failedVerification
case .pending:
print("Transactie in afwachting van actie door de eindgebruiker.")
return nil
default:
print("Er heeft zich een onbekende fout voorgedaan.")
throw StoreError.failedVerification
}
}
func checkVerified<T>(_ result: VerificationResult<T>) throws -> T {
//Check whether the JWS passes StoreKit verification.
switch result {
case .unverified:
print("Transactie mislukt doordat hij niet geverifieerd kon worden.")
throw StoreError.failedVerification
case .verified(let safe):
let _ = print("Transactie is geverifieerd.")
return safe
}
}
Post not yet marked as solved
Hello everyone, I'm working on auto-renewable subscriptions in my app. Could you please clarify: will I need to resubmit for review after editing an already in-sale auto-renewable subscription? Thanks in advance!
Post not yet marked as solved
Hi,
I have a 12 months subscription which I generated some offer codes for. I generated 25000 of them manually in App Store Connect (One-Time Use Codes).
I want to send those codes to users by push notifications and I need to show the final price when the code will be applied. The problem is that I use the native sheet, which only shows the price after the user entered the code.
Is there an API that I can hook into to retrieve that price?
Otherwise, the best I could do would be to calculate ActualPrice * Discount (because I know the discount since I created the codes), but I am afraid it will not be accurate enough, because it is not possible to select price for offer codes with that precision.
Post not yet marked as solved
Hello, we are using StoreKit's requestReview API to request App Reviews. From my understanding the app review alert will reliably appear in development builds, but only 3 times out of 365 days in production builds. We are building an app for a customer and they want to test the app to see that the app review functionality is implemented. One option is to provide them with a development build, and add their device ID to the developer portal. They can then tap a button (for example) and see the app review alert. However, this is not a scalable solution. Are there alternative ways, or other types of builds that we can provide the customer where the app review alert would reliably appear like it does for a development build?
Post not yet marked as solved
I created a Bible app, and I am wondering if I am able to use In App Purchases to give users the opportunity to pay to sponsor a verse, within the app and their name would be be displayed in the app next to the verse they sponsored.
I am willing to pay fee to Apple so do not insist register this one as donation.
I think I am going to users buy sponsor points and let users to see table with user name and sponsor points they bought who has purchased sponsor item once at least.
Is this possible under Apple's Guidance with In App Purchase?
Post not yet marked as solved
Does StoreKit offer an option for a product that combines auto-renewable and consumable features? Specifically, I'm referring to a scenario where a user subscribes to a product and receives 100 tokens each month. If the user exhausts these tokens within the month, they must wait until the next month to receive another 100 tokens. Essentially, the user cannot access the product if they deplete the monthly allocation of tokens provided by the auto-renewable subscription. In this setup, the 100-token package per month constitutes the auto-renewable aspect, while the tokens themselves represent the consumable part. Is there a straightforward solution available within StoreKit for implementing this functionality? If not, what would be the recommendation?
Post not yet marked as solved
I created a Bible app, and I am wondering if I am able to use In App Purchases to give users the opportunity to pay to sponsor a verse, within the app and their name would be be displayed in the app next to the verse they sponsored.
Is that going against Apples Guidelines?
Post not yet marked as solved
What I mean by "fake" here is some sort of button which will state "Buy a pass for 4.99$" and then, once you click it, it will tell you that the app is still in early phase and so the pass is actually free.
Reason for wanting this:
We'd like to test the willingness to pay without going through the hassle of setting up everything related to having real in-app purchases.
Post not yet marked as solved
I have an app in store which has in app subscription, while checking for renewal it is not providing me exact end date of subscription based on which I have to lock / unlock certain features. It never fetch right date to verify, this is seriously a little thing which seems to be too complicated.
Post not yet marked as solved
Hi,
For a user who subscribed a product via In-App Purchase, how does the application backend know that the user is still subscribed?
The initial purchase happens on the mobile app. Via receiving and validating the receipt of initial purchase, the backend of mobile app would be informed.
However, what is the appropriate option for the subsequent subscription payments?
How do I know whether the user is still paying?
Thanks.
**Question 1: **
Will ServerNotificationV2 be able to provide real-time notifications regarding Storekit1 contract renewals, and is receiving Storekit1 notifications in ServerNotificationV2 an expected use? (The documentation does not say that receiving Storekit1 notifications is not recommended, so we would like to confirm Apple's assumption.)
**Question 2: **
If ServerNotificationV2 is not able to receive Storekit1 notifications in real time, what is the expected time lag?
Post not yet marked as solved
I'm trying to test payments on an iOS app.
I have a sandbox account and its worked previously.
When I try and add a test credit card I get the error
"Your Issuer Does Not Yet Offer Support For This Card"
I'm using the cards here https://developer.apple.com/apple-pay/sandbox-testing/"
What I have tried:
Checking my Region is the UK
Checking the card details
Tried several cards
Tried signing out of my iCloud completely
I'm testing on an iPhone 12 mini using iOS 16.5.1
Static content is things like unlocking more functionality within an app, that doesn't change over time.
Very basic example: Let's say I have an app that displays the workload on the CPU as a percentage in the macOS menu bar. I might want to give the user an option to pay to unlock features that also displays the workload percentage for the GPU and RAM in the macOS menu bar.
For this, automatically renewing subscription is not allowed. But would a non-renewing subscription be acceptable, or does it have to be a perpetual (pay one time own forever) in-app purchase for static content?
I use StoreKit's StoreView to buy in-app purchases. The purchase is working in the simulator, but how can I restore purchases? I did not find a restore handler, there is only a onInAppPurchaseCompletion but I'm missing a onRestorePurchaseCompletion or similar.
This is how it looks
This is my code:
StoreView(ids: ["my.product.id"])
.storeButton(.visible, for: .restorePurchases)
.storeButton(.hidden, for: .cancellation)
.onInAppPurchaseCompletion { product, result in
if case .success(.success(let transaction)) = result {
print("Purchased successfully: \(transaction.signedDate)")
isPremium = true
} else {
print("Something went wrong")
}
}
Post not yet marked as solved
I want to test the in-app purchase in visionOS Simulator. I logged in to the Sandbox account in Simulator and was prompted to send the verification code to the phone number I wrote in the previous step. I entered the verification code accurately, but I couldn't log in normally. It was wet many times.
Post not yet marked as solved
StoreKit don't work with iOS 17.4.
After updating to iOS 17.4 our users can't make any purchases in App. Its very critical bug that affected our App.
<SKPaymentQueue: 0x302bb4670>: Error in remote proxy while checking server queue: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.storekitd" UserInfo={NSDebugDescription=connection to service named com.apple.storekitd}
[df94_SK2] Failed in XPC product request products(IDs: ["report"]): Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.storekitd" UserInfo={NSDebugDescription=connection to service named com.apple.storekitd}
Does anyone know what to do?
Post not yet marked as solved
Hello.
How can I get transaction information when a payment request is submitted to the app store server
Post not yet marked as solved
Hi,
I am following https://developer.apple.com/documentation/storekit/transaction/testing_refund_requests and trying to test refund requests.
I am able to trigger refund requests from my app (in sandbox) using https://developer.apple.com/documentation/swiftui/view/refundrequestsheet(for:ispresented:ondismiss:)
I do see that the notification URL receives a NotificationTypeV2.CONSUMPTION_REQUEST but it's not receiving NotificationTypeV2.REFUND
The product for which the refund is triggered is a consumable type
Is this expected behavior? How can I test REFUND without this?
Thanks
Post not yet marked as solved
ERROR: 💰 Product purchase for '***' failed with error: Error Domain=RevenueCat.ErrorCode Code=2 "There was a problem with the App Store." UserInfo={source_file=RevenueCat/SKError+Extensions.swift:64, NSUnderlyingError=0x600000c91890 {Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x600000c68570 {Error Domain=ASDServerErrorDomain Code=1003 "No Token Available When Expected." UserInfo={NSLocalizedFailureReason=No Token Available When Expected.}}}}, readable_error_code=STORE_PROBLEM, NSLocalizedDescription=There was a problem with the App Store., source_function=asPurchasesError}
And, I have also tested with SwiftyStoreKit and encountered the same issue.