In-App Purchases fail after rejected binary - worrisome? - ios

Our IAPs were working fine in sandbox mode with test users. We submitted our binary for review but missed one feature, which caused the review team to reject it saying that the IAP feature could not be found in the binary (it was there, but more hidden than it should have been).
Now when I am testing the IAP functionality, I get Error Domain=SKErrorDomain Code=0 "Cannot connect to iTunes Store". I have read enough to assume this will just work again once we get the binary approved, but I'd rather not have an app go live with broken in-app purchases.
Has anyone had experience with this?
Notes: similar questions on stack overflow have been met with suggestions to delete the app from the device, create a new test user, and clear all provisioning profiles, all of which are not working. The products are being fetched correctly and the error is happening in paymentQueue: updatedTransactions: with the transactionState being SKPaymentTransactionStateFailed
Thanks!

Related

In app purchase rejection due 21104 Error StoreKit 2 - SwiftUI

I implemented a Subscription product and an In app purchase product in my app with StoreKit 2. It is working fine with StoreConfiguration and also it is working fine when I uploaded to TestFlight. When I sent the app for review. They rejected it and asked me to resolve this issue.
Guideline 2.1 - Performance - App Completeness
We found that your in-app purchase products exhibited one or more bugs
which create a poor user experience. Specifically, an error message
displayed when we attempted to purchase the in-app purchase. Please
review the details and resources below and complete the next steps.
Review device details:
Device type: iPad
OS version: iOS 16.3.1
Next Steps
When validating receipts on your server, your server needs to be able
to handle a production-signed app getting its receipts from Apple’s
test environment. The recommended approach is for your production
server to always validate receipts against the production App Store
first. If validation fails with the error code "Sandbox receipt used
in production," you should validate against the test environment
instead.
They also attached a screenshot with this error below:
I am not sure what they are asking me to do. They are referring to Receipt validation on server when I am not using server to do anything with in app purchases.
Can anybody guide what they are asking me to do?
Thanks
Nabeel

Rejected reason: We are not able to continue because we cannot locate the in-app purchases within your app

I have a project in flutter. I submitted to the appstore. It reject showing the error as:
We have started the review of your app, but we are not able to continue because we cannot locate the in-app purchases within your app.
Then I removed all the subscriptions code from the project and from the itunes too and submitted to the appstore. And again it rejected saying same error as:
We have started the review of your app, but we are not able to continue because we cannot locate the in-app purchases within your app.
Now I have all deleted subscriptions from the project and itunes too.
Can anyone help to solve this problem? The solutions in stackoverflow couldn't solve my problem.
They are not asking you to remove the IAP. They are asking you to tell them how to reach the interface that offers the user the IAP. They don’t see it and they don’t have time to explore. They need instructions. Leave the IAP in, and give them instructions.

In app purchases using SwifyStoreKit unable to get info about product

I am implementing IAP in my iOS app, and I am using the latest version of SwiftyStoreKit Framework to help me with the purchases.
I have done all the pre cursor tasks such as setting up a developer account in itunes connect, generating provisiong profiles for the app, making new consumable and non consumable purchases in TestFlight, adding those purchases to the app information (ready to submit) and also creating a sandbox user. I have done debugging following this answer, this one and this one.
Now, the problem is that whenever I send a request to retrieve info about a product, I get the following error.
RetrieveResults(retrievedProducts: Set([]), invalidProductIDs: Set(["com.mycompany.app.consumable"]), error: nil)
and when I try to purchase the product, I get this error Purchase Failed: SKError(_nsError: Error Domain=SKErrorDomain Code=3 "Invalid product id: com.mycompany.app.consumable" UserInfo={NSLocalizedDescription=Invalid product id: com.mycompany.app.consumable})
Restoring purchases and verifying receipts seem to work fine...
Any pointers would be very helpful.
Thank you.
UPDATE:
I have now left behind the SwiftyStoreKit framework and am using Apple's own way of using a SKProductsRequest, where I have setup the delegate functions and all the requirements and then I run the function call 'SKProductsRequest.start()' and it still gives me back a set of invalid product ids once again.
For the new method, I setup a new project, along with bundle ids provisioning profiles, and itunes connect app. I can upload the app to itunes connect for testflight too! So the ids seem to be correct.
Ok, after all this time I visited my old co-workers again and they told me that the admin had forgotten to accept the store agreements.
Even though I had specifically mentioned it as a possibility... but oh well. They were able to get purchases working again after that.

Unity IAP for IOS -- No App Receipt found

I am trying set up some in-app purchases through Unity IAP for iOS devices. Registering the various product IDs, the initialization process seems to have passed successfully. However, when I tried to make a purchase using an iPad connected to a Mac, I received an error message on XCode saying:
UnityIAP: No App Receipt found
The purchase failed. The reason given for the error was: Unknown.
On the Unity editor, the purchase did go through without any problem.
So what could be the reason? What is an App Receipt?
I hired a freelancer to fix the issue. He asked me to test the system with a test user's account, and it succeeded. Apparently, for the IAP to work, all I needed to do was to release and publish the game in the Apple's App Store, and download the app from the App Store directly!
It is also worthwhile mentioning that we need to fill in the forms at Agreements, Tax, and Banking. Otherwise the initialisation process won't even pass.

My app is getting a very high percentage of in app purchases failing due to "Cannot connect to iTunes Store" in the released version of the app

I added in app purchase to my app and everything works great when I tested it in the sandbox. The app is currently in production and users are successfully making in app purchases as I can see the data in the sales report in iTunes Connect. In my app I track when a user starts the process to do an in app purchase and then if it was successful or not. 72% of the time that a user starts an in app purchases it fails with the error "Cannot connect to iTunes Store". My app has enough users making purchases that this is in not due to a small sample set, (i.e. 3 of the 4 users who did an IAP failed). While I have a decent amount of user's successfully making purchases, 72% seems very high to fail with "Cannot connect to iTunes Store".
Does anyone know what can cause this error in production? Is there something I am doing wrong in my app or can I give a better error message to users so that they know what is going on? When I searched stack overflow for this question I found a lot of posts about this error in the sandbox or happening on EVERY purchase, but I did not find any posts about when this happens sometimes in production.
This error occurs when the user initiates and then cancels a purchase.
Because the text in the NSLocalizedDescription of the NSError is not very helpful, I show my own error message instead.

Resources