2016-08-14 28 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是網站,用於打開有關此問題的服務請求。

我認爲這是一個有缺陷的設計,它是一個錯誤,蘋果認爲它是可以接受的。