やあ。
本日、iPad iOS のバージョン 3.2.2 にアップデートしましたが、アプリ内購入のテストが機能していないことに気付きました。
私はテスト アカウントを使用しており、今まではすべて機能していました (私たちのアプリは 6 月から既に稼働しており、実際のアプリ内購入は機能しています)。今は機能していません。
問題は次のとおりです。
- アプリ内購入を開始します。
- 購入を確認し、テスト ユーザーでサインインします。
- これは消耗品ではないため、App Store から、購入済みだがダウンロードされていないことが通知されます。
- OK を押します。
- これまで、トランザクション オブザーバーは transactionState SKPaymentTransactionStatePurchased でトランザクションを取得し、ユーザーはアプリ内機能を取得していました。
- しかし、今 transactionState はエラーで SKPaymentTransactionStateFailed です:
エラー Domain=SKErrorDomain Code=2 UserInfo=0x2debe0 「iTunes Store に接続できません」
Code=2 は SKErrorPaymentCancelled を意味します。なんてこと?これは、実際のエラーではなく、ユーザーがトランザクションをキャンセルした場合に発生するはずです。これは非常に誤解を招きます。ほとんどの場合、これはユーザーが実際に購入をキャンセルした場合に呼び出され、このエラーがユーザーによるものか App Store によるものかを判断する方法がないため、これをエラーとして表示することは想定されていません。
アプリ内購入のテストが機能し、製品が有効であると述べたように、すべてが正しく設定されています. また、アプリ内購入を処理するコードは変更していません。
エラーは App Store 側のどこかにあるはずです。
他の誰かがこの問題を抱えていましたか?
ありがとうございました。
アップデート
iOS 4.0.2 を実行している iPhone (ユニバーサル アプリ) でアプリをテストしたところ、エラーは次のようになりました。
エラー Domain=SKErrorDomain Code=0 「iTunes Store に接続できません」 UserInfo=0x2620e0 {NSLocalizedDescription=iTunes Store に接続できません}
Code=0 は SKErrorUnknown であり、アプリはユーザーにエラーを表示します。
したがって、iOS 4.0.2 は iOS 3.2.2 よりもこの問題をうまく処理しているようです。