My team has also been experiencing the same issue since Thursday night. finishTransactions is no longer properly removing the transactions from the queue.
NSArraySKPaymentTransaction * *transactions = [[SKPaymentQueue defaultQueue] transactions];
NSLog(@"BEFORE transactions = %@", transactions);
for (SKPaymentTransaction *txn in transactions) {
[[SKPaymentQueue defaultQueue] finishTransaction:txn];
}
transactions = [[SKPaymentQueue defaultQueue] transactions];
NSLog(@"AFTER transactions = %@", transactions);
// Output:
BEFORE transactions = (
"SKPaymentTransaction: 0x2802c8b10",
"SKPaymentTransaction: 0x2802c8c60",
"SKPaymentTransaction: 0x2802c8c40",
"SKPaymentTransaction: 0x2802c8c20",
"SKPaymentTransaction: 0x2802c8b00"
)
AFTER transactions = (
"SKPaymentTransaction: 0x2802c8b10",
"SKPaymentTransaction: 0x2802c8c60",
"SKPaymentTransaction: 0x2802c8c40",
"SKPaymentTransaction: 0x2802c8c20",
"SKPaymentTransaction: 0x2802c8b00"
)