The purchase dialog does not show up since iOS 13.4

try to totally "flush" the queue once:

    - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
        for (SKPaymentTransaction *transaction in transactions) {

        //debug - finish all transactions to make queue empty  
        [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
/*
            switch (transaction.transactionState) {
                case SKPaymentTransactionStatePurchased:
                     //your code 
                     [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                     break;

                case SKPaymentTransactionStateFailed:
                    //your code 
                    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                    break;
            }
*/
        }
    }

then after replace it back by your code and try to make purchase.


First, ensure you're finishing transactions upon success/failure:

In our case, the old code was not calling SKPaymentQueue.default().finishTransaction(transaction) to remove it from the queue. Prior to iOS 13.4, that apparently worked fine even though the documentation says it’s required

So what would happen is the dialog would show once and the person would cancel and then from that point on the transaction would persist in the queue and automatically return as cancelled without showing the dialog again. Finishing the transaction purges it and allows the dialog to show again


If that doesn't work:

Per an Apple engineer's request, I filed a radar for this (FB7648374) with App Store logging and sysdiagnose

Please do the same:

  • Follow the instructions for App Store logging at https://developer.apple.com/bug-reporting/profiles-and-logs/
  • Install the profile on your device that enables verbose logging
  • Then repro the problem on your device w/ device logs running (Xcode -> Devices -> Console logs)
  • Then immediately capture a sysdiagnose
  • File a new radar with that information at https://feedbackassistant.apple.com/