在我的 AppDelegate 中,我运行以下命令:
SKPaymentQueue.defaultQueue().addTransactionObserver(self.storeDel);
当我运行“购买恢复”并立即终止应用程序时,在重新启动后用户界面卡住了处理所有购买所需的时间(我测试了其中的许多,每次我都用苹果验证收据- 卡住 UI 大约需要一分钟!!)
我认为可能是事务队列启动被阻塞..所以我将代码更改为:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
SKPaymentQueue.defaultQueue().addTransactionObserver(self.storeDel);
});
它没有帮助....
到目前为止 - 我开始怀疑队列在我的主线程上运行......这对我来说没有意义......
我调试了 - 并且......支付处理正在“队列:com.apple.main-thread(串行)”上运行。我假设这也是用户 GUI 线程(否则 GUI 没有理由卡住......)。
所以...
我能做些什么??有什么解决方案我可以处理收据并做出响应......?
谢谢!