`startDownloads`无法恢复的事务.`updatedDownloads`没有被调用

And*_*huk 6 storekit in-app-purchase iap-hosted-content swift skpaymenttransaction

我在恢复托管的应用内购买内容时遇到问题.有时它有效,有时它根本不起作用.我的用户也在报告此问题.

我很难尝试复制它,但是当它发生时我设法遇到了这种情况.

现在每当我从Xcode上运行我的Mac上的应用程序时,我的商店代表会在启动后不久通知队列中有两个待处理的恢复事务.并且正在调用以下函数:

func provideContent(_ transaction:SKPaymentTransaction) {
    if transaction.downloads.count > 0 {
        GLXLogger.shared.addGeneralLog(format: "[STORE] starting download")
        SKPaymentQueue.default().start(transaction.downloads)
    }
Run Code Online (Sandbox Code Playgroud)

我看到了日志消息,[STORE] starting download所以我知道这段代码已经执行了.然后什么都没发生.updatedDownloads不叫.我已经验证finishTransaction也没有调用,所以这不可能中断正常执行.

我基本上没有想到可能导致这个问题的想法.我知道这个场景有两个挂起的恢复事务,但我认为没有理由导致这样的失败.它对应于我在一些用户的日志中看到的内容.对于他们SKPaymentQueue.default().start(transaction.downloads)被称为后来没有任何事情发生.

如果你能帮我调试一下,我至少会对你认为可能造成这种奇怪行为的想法提出一些看法.