我们在iOS-9和iOS-9.0.1下遇到了SKPaymentQueue的奇怪行为.我们怀疑这是一个iOS问题.此示例是一个演示SKPaymentQueue相关问题的最小应用程序框架.在此处下载示例.
此应用需要一个非耗材IAP产品,其内容托管在Apple上.应用程序只有一个按钮,可以启动事务/下载过程.
当应用程序从前台移动到后台然后再返回到前台时,下载过程意外终止.
要重现这个问题......
将此项目调整为您的开发人员.环境(将NON_CONSUMABLE_PRODUCT_WITH_HOSTED_CONTENT设置为您的IAP产品ID).
创建一个测试应用程序(iTunes Connect).
托管非消耗性IAP产品(Application Loader).
按"获取产品"按钮.
等到下载开始.
按Home键退出应用程序.
(重新)激活应用程序(触摸应用程序图标).
SKPaymentQueue最终将发送一个或两个下载更新事件.
!SKPaymentQueue将向观察者发送paymentQueue(队列:SKPaymentQueue,removedTransactions Transactions:[SKPaymentTransaction])`消息.
!下载现已终止(无事件).
下载时将应用程序保留在前台.
在下载完成之前(在系统级别),请不要激活应用程序,然后激活应用程序.