2016-08-14 4 views
1

上で実行するようにSKPaymentQueueを強制的に、私は次のコマンドを実行します。私AppDelegateでは、バックグラウンドスレッド

SKPaymentQueue.defaultQueue().addTransactionObserver(self.storeDel); 

私は「購入の回復」を実行し、ユーザーインターフェイスがために立ち往生され、それを再起動した後、すぐにアプリを殺すときすべての購入を処理するのにかかる時間(そして、私はリンゴでレシートを確認するたびに、多くのものをテストしました。約1分のUIしか要しません!!)

私は、トランザクションキューの起動がブロックされているので、コードを次のように変更しました。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), { 
      SKPaymentQueue.defaultQueue().addTransactionObserver(self.storeDel); 
}); 

そして、それは今では....

を助けなかった - 私は、キューが私には意味がありません。私のメインスレッドで実行されます...不審になった...

私はデバッグ - そして、...支払い処理は "キュー:com.apple.main-スレッド(シリアル)"上で実行されています。私はこれもユーザーのGUIスレッドだと考えています(そうでなければ、GUIが立ち往生する理由はありません...)。

so ...

私は何ができますか? 領収書を処理して対応可能な解決策はありますか?

ありがとうございます!

答えて

0

Appleに連絡して、この問題に関するバグレポートを開こうとしました。

彼らは、一般的に言えば、これは予想される動作であると言いました(YES !!私のGUIは、処理中にSTOCK状態になります)。

この問題についてはhttp://bugreport.apple.comがサービスリクエストを開くウェブサイトです。

私はそれは欠陥のあるデザインだと思うし、バグだと思うが、Appleはそれが受け入れられると思う。

関連する問題