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
Related
I published a Cordova app with iAP for iOS (using this plugin) but I got troubles in production. The issue is: the customer buy the product, he's correctly billed but he doesn't receive the product. For Apple he didn't bought the iAP even if I can see the payement on the Apple itunes connect platform and even if he received an OK for the purchase done.
I tested in sandbox of course, everything was fine, but now I got an issue in production and I don't know how to debug it.
I also wrote to the Apple support but I didn't received any answer.
Do you know a way to test in production mode or to find out where is the problem?
Apple reject my application due to below reason:
2.2 Binary Rejected
Guideline 2.1 - Performance - App Completeness We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS
From Apple
2. 1 Performance: App Completeness
3. 1.1 Business: Payments - In-App Purchase
Guideline 2.1 - Performance - App Completeness
We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 11.3.1 on Wi-Fi connected to an IPv6 network. Specifically no action occurs when we attempt to purchase your declared In-App Purchases.
Please see attached screenshots for details.
Next Steps
To resolve this issue, please run your app on a device to identify any issues, then revise and resubmit your app for review.
If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.
Resources
For information about testing your app and preparing it for review, please see Technical Note TN2431: App Testing Guide.
For a networking overview, please review About Networking. For a more specific overview of App Review’s IPv6 requirements, please review the IPv6 and App Review discussion on the Apple Developer Forum.
Guideline 3.1.1 - Business - Payments - In-App Purchase
We also found that your app offers in-app purchases that can be restored but does not include a "Restore Purchases" feature to allow users to restore the previously purchased in-app purchases, as specified in the "Restoring Purchase Products" section of the In-App Purchase Programming Guide:
"Users restore transactions to maintain access to content they've already purchased. For example, when they upgrade to a new phone, they don't lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button."
To restore previously purchased in-app purchase products, it would be appropriate to provide a "Restore" button and initiate the restore process when the "Restore" button is tapped by the user.
Request a phone call from App Review
At your request, we can arrange for an Apple Representative to call you within the next three to five business days to discuss your App Review issue.
Request a call to discuss your app’s review.
/// My openions:
I have tested complete application with live enviorenment and IAP working fine with restoring functionality.
Also in my feature section:
Please suggest:
Thanks
Please add any character in display name then save it. Then remove that word and save it.
It will change automatically waiting for review.
On the next day of my question I just edit the discription of in app purchase and save it. It removed the error and show status waiting for review.
See the screen shot.
Reject from Apple for In APP Purchase
During development in app purchase auto-renewing subscription, I've created test accounts which are able to obtain the product of the in app purchase as well as actually purchasing it without an issue. I've submitted the version to the testFlight Beta and testing in app purchase as well as purchasing it with test accounts works well at sandbox mode environment. However after submitted to the IOS version app to the Apple review, the version of the app can't even retrieve the product, and nothing shows up when I press the button to send the purchase request.
IAP is attached to the binary and IAP is approved with the binary that i submit. But its not displaying in the production. In sandbox its listing fine.
Please tell me how you solved this problem?
Or is this factor not decisive and the application will not be rejected for this reason?
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.
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!