Received "Cannot finish a purchasing transaction" error even though transaction state was checked prior to finishing.
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.
https://developer.apple.com/forums/thread/64687
https://github.com/j3k0/cordova-plugin-purchase/commit/22aef6f13c8fa7543a8c7883ca9e709ac82aa7ed