Hello. I am working on an application which uses auto-renewable in-app purchases. We are using sandbox with testflight to get test base64 iOS receipts.
We are making these calls server-side using the base64 receipt passed up from the app.
When we try to validate against the sandbox endpoint: https://sandbox.itunes.apple.com/verifyReceipt
when the receipt is Expired, the server throws the error status code: 21006 representing that the receipt is expired. This suggests that this receipt is iOS6 style according to Table 2-1: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html
However, we are testing on iOS 11 devices. The same error does not seem to get thrown in builds which are directly on the device from XCode.
We are wondering what behavior we are to expect from the production verification endpoint https://buy.itunes.apple.com/verifyReceiptt. Namely, whether to expect iOS6 or iOS7 or if we should support a combination of both. The app will not run on devices below iOS9 so we would like to avoid supporting iOS6 style receipts if possible.