My app has been rejected by the App Store review team with the following reason:
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.
The thing is I don't validate the receipt using a remote server. I validate the receipt locally in the app. When I test the app in the Sandbox environment I receive a valid receipt and am able to carry out the purchase to completion. I then submitted the binary along with the in app purchases and the reviewer gets nothing back when my app calls SKProductsRequest and looks for products in response in the delegate method
So, what am I missing here? I see a number of posts about this issue, but no resolution. Here's one example:
https://developer.apple.com/forums/thread/93773
The app was not able to load the in-app purchase.
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.
The thing is I don't validate the receipt using a remote server. I validate the receipt locally in the app. When I test the app in the Sandbox environment I receive a valid receipt and am able to carry out the purchase to completion. I then submitted the binary along with the in app purchases and the reviewer gets nothing back when my app calls SKProductsRequest and looks for products in response in the delegate method
(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
So, what am I missing here? I see a number of posts about this issue, but no resolution. Here's one example:
https://developer.apple.com/forums/thread/93773