2016-08-14 23 views
1

在我AppDelegate中运行,运行此命令:强制SKPaymentQueue到在后台线程

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(serial)”上运行。我认为这也是用户GUI线程(否则没有理由让卡住......)。

SO ...

我该怎么办? 有什么解决方案可以处理收据并做出回应...?

谢谢!

回答

0

我联系了Apple,试图打开关于此问题的错误报告。他们说,一般来说,这是预期的行为(YES !!我的GUI不适合在处理付款时被卡住)。

如果这样也会造成错误,http://bugreport.apple.com是网站,用于打开有关此问题的服务请求。

我认为这是一个有缺陷的设计,它是一个错误,苹果认为它是可以接受的。