2011-07-16 12 views
1

Appleがアプリ内購入を使用して、すべてのアプリがすべての成功した販売のために処理するために、アプリケーションの開始時に、このiPhone - 失敗のアプリ内購入のテストは

[[SKPaymentQueue defaultQueue] addTransactionObserver:self.observer]; 

を入れて持っていることのように述べているいくつかの理由でデバイスはコンテンツを解放するための確認を受信して​​いません。

私はこれをテストしようとしていますが、トランザクションを終了しようとしているときに電話をかけたり、トランザクションを終了する前にXcodeを停止したりしていますが、何らかの理由でXcodeを終了しても、トランザクションを処理し続けると、アプリケーションはSKPaymentTransactionStateRestoredを受け取ることはありません。このアプリは常にSKPaymentTransactionStatePurchasedを受け取り、失敗したようです(StoreKitがリリースされたときに新しいiOS 4が3.2より優れているかもしれません)。

私の質問は次のとおりです。あなたがここで作成して、失敗を生成し、アプリ起動時にSKPaymentTransactionStateRestoredを受け取ることができる状況を知っていますか?この種の状況でアプリがうまく機能しているかどうかをテストする必要があります。

おかげ

答えて

2

SKPaymentTransactionStateRestoredは、あなたが(ユーザーが新しいデバイス上で自分のアプリ内購入を復元することができます)restoreCompletedTransactionsを呼び出したときのみです。 finishTransaction:を呼び出さずにアプリケーションを終了すると、トランザクションはキューに残り、SKPaymentTransactionStatePurchasedに戻ります。

+0

ah、ok、実際の状況でどのような状況でトランザクションが完了しないことがありますか? – SpaceDog

+0

なしオブザーバーを登録する限り、常にコールバックが呼び出されます。失敗した場合はSKPaymentTransactionStateFailedがあります。 – jtbandes

+0

ok。ありがとう!!!! – SpaceDog