Почему paymentQueueRestoreCompletedTransactionsFinished не вызывается после возобновления прерванного восстановления IAP?
Моя реализация восстановления, кажется, в основном работает.
От paymentQueue:updatedTransactions:
Я блокирую пользовательский интерфейс с помощью модального индикатора активности, отключаю запросы к нашему серверу для каждой восстановленной транзакции, получаю ответы, в которых сообщается идентификатор соответствующего (не расходуемого) элемента, который необходимо загрузить. Я закрываю сделку. В заключение, paymentQueueRestoreCompletedTransactionsFinished
или же restoreCompletedTransactionsFailedWithError:
мой сигнал, чтобы удалить индикатор активности и, если это не так. начать загрузку. Все идет нормально. Оно работает.
Если процесс восстановления прерывается (приложение закрывается), paymentQueue:updatedTransactions:
все еще делает свою работу нормально, когда приложение запускается снова, но я не получаю paymentQueueRestoreCompletedTransactionsFinished
событие. Таким образом, мне не хватает подсказки для удаления индикатора активности и начала загрузки.
Кто-нибудь знает, что может быть причиной этого?
Мой обходной путь - игнорировать paymentQueueRestoreCompletedTransactionsFinished
в целом и вместо того, чтобы использовать paymentQueue:removedTransactions:
отслеживать количество элементов в очереди, действуя соответственно, когда элементов больше нет. Не кажется мне особенно элегантным, хотя открывает возможность отображать более информативное сообщение о прогрессе.