7

問題: サンドボックス アカウントでアプリの購入をテストしようとしていますが、消耗品を 2 回購入しようとするたびに、次のエラー メッセージが表示されます。

You've already purchased this In-App Purchase but it hasn't been downloaded. 
                         [Environment: Sandbox]

これは、iOS < 6 を使用している場合にのみ発生します。これはサンドボックス関連の問題である可能性があることを読みました。その声明に真実があるかどうか誰かが知っていますか?

最初のトランザクションを完了するために、次の呼び出しが行われていると確信しています。

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]

私は運がないキューをフラッシュするために、この呼び出しも試みました:

[[SKPaymentQueue defaultQueue]  restoreCompletedTransactions];

また、iAP をテストする前に、iTunes ストアからログアウトしていることも確認しています。さらに、ビルドとバージョン番号が Xcode のターゲットの概要ペインにあることも確認しました。

4

2 に答える 2

1

このメッセージが表示され、再度購入しようとするとクラッシュするという同様の状況がありました。私には、これは(なんらかの理由で)finishTransactionが完了していないという単なるメッセージのように見えます。私のログによると、それはSKTransactionStateFailed更新されたトランザクションを許可し、finishTransactionを再送信できるようにします。

次に、アプリ内で実際にデータをダウンロードしたか、BOOL を購入したかなどをチェックインし、再度ダウンロードする必要がある場合はユーザー インターフェイスを表示します。その後のダウンロードに問題はないようです。

クラッシュを防ぐために、次のものを含めました。

[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
于 2013-03-22T00:53:33.433 に答える
0

問題はおそらくあなたのコードにこの行がありません

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

数日前に同じエラーが発生します。この行は私の問題を解決します。この行は、アプリ内のオブザーバーを追加します。

于 2013-03-17T00:26:27.017 に答える