paymentQueueRestoreCompletedTransactionsFinished: is returning an empty queue when it should have transactions in it

Are you handling the transactions in -paymentQueue:updatedTransactions:? This callback gets your restored transactions before the paymentQueueRestoreCompletedTransactionsFinished: callback.

You should do your restore processing and handling inside -paymentQueue:updatedTransactions:.


I believe this is a bug with the sandbox App Store. My restores were not working with my test accounts (created in the iOS 5.0 era). -paymentQueue:updatedTransactions: was not getting called during a restore.

As suggested by process255's comment, I created a new test user in iTunes Connect. With the new test account, everything works fine!