iOS7 – receipts not validating at sandbox – error 21002 (java.lang.IllegalArgumentException)

I’ve had this problem and looked everywhere, including on Apple’s development forums. Apple will give a couple of stock replies, and that’s it. I think it’s a bug on Apple’s side. Validation locally on the device will work, so try to convert to that. If you absolutely must use server side validation, only transactionReceipt seems to work right now.

The function is just deprecated, not banned, so I would just use it and hope Apple approves of the app. In fact, it’s what I just did, fingers crossed, waiting for approval.

You can turn off the warning in Xcode by bracketing your code like this:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
// code using transactionReceipt
#pragma clang diagnostic pop

Leave a Comment