【发布时间】:2026-02-09 22:25:05
【问题描述】:
在我的 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 没有理由卡住......)。
所以...
我能做什么?? 有什么解决方案可以让我处理收据并做出响应...?
谢谢!
【问题讨论】:
标签: swift in-app-purchase skpaymenttransaction