我在恢复托管的应用内购买内容时遇到问题。有时它有效,有时它根本不起作用。我的用户也在报告此问题。
我很难尝试复制它,但当它发生时我设法遇到了这种情况。
现在每当我从Xcode上运行我的Mac上的应用程序时,我的商店代表会在启动后不久通知队列中有两个待处理的恢复事务。并且正在调用以下函数:
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)
被称为后来没有任何事情发生。
如果你能帮我调试一下,我会很感激,至少就你认为可能造成这种奇怪行为的想法提出一些想法。