`startDownloads` не работает с восстановленной транзакцией. `updatedDownloads` не вызывается
У меня проблема с восстановлением размещенного в приложении содержимого покупки. Иногда это работает, а иногда не работает вообще. Мои пользователи также сообщают об этой проблеме.
Я с трудом пытался воспроизвести его, но мне удалось столкнуться с ситуацией, когда это произошло.
Прямо сейчас всякий раз, когда я запускаю приложение на своем Mac из Xcode, мой представитель магазина получает уведомление о двух ожидающих транзакциях восстановления в очереди вскоре после запуска. И вызывается следующая функция:
func provideContent(_ transaction:SKPaymentTransaction) {
if transaction.downloads.count > 0 {
GLXLogger.shared.addGeneralLog(format: "[STORE] starting download")
SKPaymentQueue.default().start(transaction.downloads)
}
Я вижу сообщение журнала [STORE] starting download
так что я знаю, что этот код выполняется. И тогда ничего не происходит. updatedDownloads
не называется. Я подтвердил, что finishTransaction
также не вызывается, так что это не может прерывать нормальное выполнение.
Я в основном вне идей относительно того, что может быть причиной этой проблемы. Я знаю, что в этом сценарии есть две незавершенные транзакции восстановления, но я не вижу причин, по которым он может привести к такому отказу. Это соответствует тому, что я вижу в журналах некоторых моих пользователей. Для них SKPaymentQueue.default().start(transaction.downloads)
называется, после чего ничего не происходит.
Я был бы признателен, если бы вы помогли мне отладить это, хотя бы выдвинув некоторые идеи относительно того, что, по вашему мнению, может вызывать такое странное поведение.