I have a crash reported in the sandbox environment due to "Cannot finish a purchasing transaction". Ok, I understand this part, however this is the only code in my entire application involving an SKPaymentQueue call to finishTransaction:
if (transaction.transactionState != SKPaymentTransactionStatePurchasing) { [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; // Unrelated code removed }
Can anybody shed any light on how it might be possible for me to receive this error in light of the explicit validation above? The only thing I can think of is that the transaction state might be SKPaymentTransactionStateDeferred, and somehow this deferred transaction becomes a purchasing transaction with the exact perfect timing to cause the crash.
Any insight much appreciated! Thank you.