1

Apple は私の申請を次の理由で却下しました: 「アプリは非標準的な方法でアプリ内購入プロセスを開始します。

最初にアイテムの説明を表示し、ユーザーが [OK] をタップした後にログインを要求する代わりに、アプリは最初にログインを要求しますが、これは間違った順序です。"

コードを確認しましたが、アプリ内購入が正常に機能する他のアプリケーションと同じです。次に、バンドル ID と productID (他のアプリからバンドル ID を設定) を変更したところ、問題なく動作しました。

とても奇妙だと思います。誰もこの問題を抱えていましたか?手伝って頂けますか?

更新:

デバッガーに次のエラーが表示されます。

「トランザクションの終了中に予期しない例外が発生しました: 購入トランザクションを終了できません」

この時点でコードで発生します。

    @try 
    {
        [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
    }
    @catch (NSException *exception) 
    {
        NSLog(@"Unexpected exception during finish transaction: %@", exception);
    }
4

2 に答える 2

7

エラー メッセージは、状態が のトランザクションを終了しようとしていることを示しているようですSKPaymentTransactionStatePurchasing

[transaction transactionState]最初にトランザクションの状態を確認して、トランザクションが次のいずれかであることを確認する必要があります。

SKPaymentTransactionStateFailed

SKPaymentTransactionStatePurchased

SKPaymentTransactionStateRestored

詳細については、Apple のドキュメントを参照してください。

アプリケーションは、支払いキューから通知を受け取ったトランザクション オブザーバーからこのメソッドを呼び出す必要があります。トランザクションで finishTransaction: を呼び出すと、そのトランザクションがキューから削除されます。アプリケーションは、トランザクションを正常に処理し、ユーザーが購入した機能のロックを解除した後でのみ、finishTransaction: を呼び出す必要があります。

SKPaymentTransactionStatePurchasing 状態のトランザクションで finishTransaction: を呼び出すと、例外がスローされます。

于 2012-10-19T12:45:26.997 に答える
0

はい、この問題を解決しました。これは非常に奇妙ですが、itunesconnect.apple.com でゲームを再作成すると役に立ちます。

于 2012-10-23T10:56:21.997 に答える