AppDelegateで、次のコマンドを実行します。
SKPaymentQueue.defaultQueue().addTransactionObserver(self.storeDel);
「購入リカバリ」を実行してすぐにアプリを強制終了すると、アプリを再起動した後、すべての購入を処理するのにかかる時間の間、ユーザーインターフェイスが動かなくなります(そして、それらの多くをテストしました。それぞれについて、アップルでレシートを確認します-UIがスタックするのに約1分かかります!!)
トランザクションキューの起動がブロックされている可能性があると思ったので、コードを次のように変更しました。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
SKPaymentQueue.defaultQueue().addTransactionObserver(self.storeDel);
});
そしてそれは役に立たなかった....
今では-キューがメインスレッドで実行されているのではないかと疑うようになりました...これは私には意味がありません...
デバッグしました-そして...支払い処理は「キュー:com.apple.main-thread(シリアル)」で実行されています。これはユーザーGUIスレッドでもあると思います(そうでなければ、GUIがスタックする理由はありません...)。
そう...
私に何ができる??領収書を処理して対応できる解決策はありますか...?
ありがとう!
私はAppleに連絡し、この問題に関するバグレポートを開こうとしました。
彼らは、一般的に言えば、これは予想される動作であると述べました(はい!!私のGUIは支払いの処理中にスタックすることになっています)。
それでも問題が解決しない場合は、http://bugreport.apple.comがこの問題に関するサービスリクエストを開くためのWebサイトです。
私はそれが欠陥のあるデザインだと思います、そしてそれはバグだと思います、Appleはそれが許容できると思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加