我在恢复托管的应用内购买内容时遇到问题。有时它起作用,有时它根本不起作用。我的用户也报告了这个问题。
我很难尝试复制它,但是当它发生时我设法遇到了一种情况。
现在,每当我从 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)
被调用,然后什么也没发生。
如果你能帮助我调试这个问题,我将不胜感激,至少提出一些你认为可能导致这种奇怪行为的想法。