我的应用程序有几个非耗材iAP。该应用程序的第一个版本包含应用程序包中的相应内容,因此iAP只是用于解锁可以访问内容的区域。
我正在开发该应用的第二个版本,这次将在用户进行购买时下载内容。
我创建了新版本的iAP(重要:相同iAP的新版本,但这次添加了“托管内容”,它们不是全新的iAP),托管内容已成功上传,iAP状态为“准备提交” ”。
一切正常,内容已下载到设备,直到1周前,由于某些原因,当我测试时,购买成功但内容未被下载。
在创建SKPayment
对象时使用断点,我可以看到它有可下载的内容:
(lldb) po product.downloadable
YES
即使版本与iTunes Connect相同:
(lldb) po product.downloadContentVersion
1.1
但是当处理-paymentQueue:updatedTransactions:
内的交易时,它没有SKDownload
个对象:
(lldb) po transaction.transactionState
SKPaymentTransactionStatePurchased
(lldb) po transaction.downloads
<__NSArrayM 0x13e1d38a0>(
)
我正在使用TestFlight Sandbox用户,并在执行购买时显示[Environment:Sandbox],因此我知道我不在生产环境中。
发生了什么事?为什么突然停止工作? Apple最近改变了什么吗?这真让我抓狂。 谢谢,任何帮助表示赞赏。
答案 0 :(得分:1)
好吧,我终于得到了答案。事实证明,这是Apple的一个错误。 我请求了一个技术支持事件,一位Apple工程师做出回应:
不幸的是,这是一个众所周知的问题。在问题解决之前,我只能建议您提交错误报告并准备外部TestFlight构建,如果QA团队要求的那样。
但最好的部分是今天,感谢全能的上帝,同一位工程师回来说:
您现在应该发现此问题不再发生。
我刚刚测试过,我可以确认错误消失了。