我们在iOS-9和iOS-9.0.1下遇到了SKPaymentQueue的奇怪行为。我们怀疑这是一个iOS问题。 此示例是一个演示SKPaymentQueue相关问题的最小应用程序框架。下载示例here。
此应用需要一个非易耗品IAP产品,其内容托管在Apple上。 应用程序只有一个按钮,可以启动事务/下载过程。
当应用从前台移动到后台然后再回到前台时,下载过程意外终止。
重现问题...
将此项目改编为您的开发人员。环境(将NON_CONSUMABLE_PRODUCT_WITH_HOSTED_CONTENT设置为您的IAP产品ID)。
创建测试应用(iTunes Connect)。
托管非消耗品IAP产品(应用程序加载器)。
按下按钮"获取产品"。
等到下载开始。
按主页按钮退出应用程序。
(重新)激活应用程序(触摸应用程序图标)。
SKPaymentQueue最终将发送一个或两个下载更新事件。
!! SKPaymentQueue将向观察者发送paymentQueue(队列:SKPaymentQueue,removedTransactions Transactions:[SKPaymentTransaction])`消息。
!!下载现已终止(无事件)。
下载时将应用置于前台。
在下载完成之前(在系统级别)激活应用程序,然后激活应用程序。
答案 0 :(得分:1)
您是否为应用添加了背景密钥?
您可以在info.plist或功能中设置它们。
答案 1 :(得分:0)
好消息,异常突然消失,结果 - 这个问题已经结束/没有任何明显的结论/。 Github code是此问题的副产品,可用作非消费品IAP 和内容由Apple托管的简约示例。