2011-02-08 6 views
5

ユーザーが購入ボタンをクリックすると、「お待ちください」ビューが表示され、支払いキューに支払いが追加されるように、アプリ内購入が設定されています。これは、トランザクションが「購入」状態に入ったことを示すキューオブザーバの即時コールバックを常に引き起こします。SKPaymentTransactionObserverがアプリケーションスイッチでコールバックを取得しない

購入の確認ダイアログが表示されてからキャンセルされる前に、メイン画面に戻ると問題が発生します。しばらくしてメイン画面を待ってから、アプリケーションに戻ってくると、アプリケーションはトランザクションの切り替え状態や取り除かれたことについて決してコールバックを取得しません。支払いキューを調べると、トランザクションがまだ「購入」状態のキューに入っていることがわかります。アプリケーションを再開した後、コールバックしてキューから削除するためにできることはありますか?

+0

同じ問題があります...あなたはそれを解決する方法を見つけましたか? – nico

答えて

5

私が正しくあなたの状況を理解している場合、あなたはこの問題に遭遇しました:

In App Purchase user cancels tx while app in background: tx state stays on purchasing

をこれはAppleのストアキットのバグに表示されます。購入を開始した直後にアプリをバックグラウンドに送信し、購入確認のポップアップが表示されたらキャンセルボタンを押すと、問題は容易に再現できます。あなたのアプリはトランザクションの失敗(キャンセル)通知を受け取ることはなく、ブロックされた状態に入ります(購入が完了するまでユーザーがアプリとやり取りするのを防ぐためUIを無効にした場合)。

アップルの修正を待つ必要があります。その間、購入中にUIを無効にしてアプリがブロックされた状態になった場合、ユーザーがその状態を去れるようにするためのメカニズムを実装する必要があります。

幸運を祈る!

+0

まあ、ありがとう。少なくとも私は唯一の人ではない。 –

0

私は同じ問題を抱えていますが、私はサンドボックスアプリストアアカウントを使用しているときにそれを再現することしかできませんでした。

誰かが実際のリンゴアカウントを使用してそれを再現できましたか?

私はまだこれを試していませんが、アプリケーションがフォーカスを失った瞬間に自分のSKPaymentTransactionObserverを削除し、次にアクティブになると再び追加することを考えています。

このバグについての奇妙なことは、あなたが購入状態のトランザクションに悩まされていることです。ただし、アプリケーションを適切にシャットダウンして再起動すると、購入状態のトランザクションはまだそこにあるはずですそうではありません... SKPaymentTransactionObserverの再追加が、それが適切に状態を再評価するようにトリガーしたかのように。

関連する問題