`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) называется, после чего ничего не происходит.

Я был бы признателен, если бы вы помогли мне отладить это, хотя бы выдвинув некоторые идеи относительно того, что, по вашему мнению, может вызывать такое странное поведение.

0 ответов

Другие вопросы по тегам