私はこの問題を徹底的に調査しましたが、同様の質問がありましたが、私の問題への回答は見つかりませんでした。iPhone InApp購入の問題 - canMakePaymentsは常に失敗します
「[SKPaymentQueue canMakePayments]」は常に失敗するという問題があります。コードは次のように非常に簡単です。
if ([SKPaymentQueue canMakePayments]) //
{
NSLog(@"able to make payments");
[[SKPaymentQueue defaultQueue] addTransactionObserver:g_custom_store_observer]; // Register the observer
SKMutablePayment *myPayment = [SKMutablePayment paymentWithProductIdentifier: strItemName];
myPayment.quantity = 2;
[[SKPaymentQueue defaultQueue] addPayment:myPayment];
}
else{
NSLog(@"not able to make it");
return KD_FALSE;
}
私はテストプロセスで何かを逃したと思います。私はこれまで
- がiTunesConnectに私のアプリを登録してなかったことは(新しいアプリを作成し、バンドルIDを確認)
- の権利と価格」を設定し、鉱山は「無料」アプリ
- ですiTunesConnectの「アプリ内購入の管理」メニューから「消耗品」を追加しました。 はすべてのテキストフィールドに入力し、レビューのためにアップロードした画像があり、そのすべてが「レビュー待ち」状態になりました。
- テストユーザーを作成しました
- バンドルIDを確認し、適切な配布証明書でコード署名された私のアプリケーションを再構築(クリーンアンドビルド)します。バンドルIDは「iTunesConnect」ページの「App Details」に表示されているIDとまったく同じです。
- 新しく作成したAppをiTunesConnectにアップロードしました(アップロードされたバイナリ、コードサインエラーなし)、「レビュー待ち」状態になりました。
- 今、私はアプリ内購入作業をチェックしたいと思っていました。私は自分のアプリのデバッグ版を自分のiPadデバイス上で動かしました。これは、開発者証明書でコード署名されたデバッグモードで構築されています。まったく同じコードがiTunesConnectにアップロードされています。私のiPadで
- 、私はiTunesStore
- からログアウト
- 私のアプリを私は上記のコードをトリガーすると、「canMakePayments」は常に失敗蘭。
他の正常なiPhoneアプリと異なる唯一のことは私は、OpenGLベースのゲームであるということですので、コードのほとんどは、ObjectiveC/C++で書かれたiPhoneのプラットフォーム固有詰め込むとのインタフェース、C++で書かれています。
上記のコードはC++モジュールから呼び出され、iOS固有のUIViewControllerはまだ作成されていません。私は[SKPaymentQueue canMakePayments]を呼び出す前にUIViewControllerが必要ですか?
私は何かを見逃しましたか?
ありがとうございます。
ありがとうございます。ちょうど私に頭痛を救った –