1

アプリ内購入のサンドボックス テスト用のテスト アカウントを作成しました。これらの手順に従ってテストしています

  1. 既存のアカウントからログアウトした
  2. アプリを開き、利用可能な製品のリストの取得を開始します
  3. 製品をダウンロードするプロセスを開始する

    SKPayment *payment = [SKPayment paymentWithProductIdentifier:productId];

    [[SKPaymentQueue defaultQueue] addPayment: お支払い];

理想的には、この時点でユーザー名/パスワードを尋ねられるべきです。しかし、何も求められず、トランザクションは失敗します (明らかにログインしていないため)

[設定] -> [ストア] からログインしようとすると、クレジット情報が要求されますが、これは必要ないと確信しています。

誰かがこの問題で私を助けてくれますか?

ありがとう...

4

4 に答える 4

3

Ok。これはばかだった!しかし、誰かが私の過ちから学ぶことができることを願っています:)私は、アドホック配布プロファイルを使用してアプリ内購入をテストしていました。Apple エンジニアによると、これを行うとすぐに、テスト アカウントはテスト アカウントではなくなります。

アプリ内購入は、デバッグ モードで XCode を介してアプリを起動することによってのみテストできます。

アップデート

これはもはや真実ではありません。現在、アドホック ビルドでも問題なく動作すると思われます。

出典: アドホック ビルドを使用したアプリ内購入の最近のテスト。

于 2009-09-26T06:05:11.583 に答える
1

プロビジョニング ファイルでアプリ内購入が有効になっていることを確認してください

于 2009-09-05T19:32:25.437 に答える
0
  1. canMakePaymentsを確認してください
  2. シミュレータでは、StoreKitが応答しません。デバイスでテストする必要があります
  3. SKPaymentQueueに少なくとも1人のオブザーバーを追加する必要があります
  4. 最初に製品リストを尋ねてみてください(productIdをすでに知っているという事実に加えて)。ばかげているように聞こえますが、SKフレームワークは完璧にはほど遠いです。

また、{"receipt-data":...}を検証サーバーに送信する場合は、レシートをjsonオブジェクトに挿入する前にBase64でエンコードしてください。これは公式ドキュメントではどこにも言及されていません。いくつかのブログでのみ言及されています。

于 2009-09-01T22:08:04.977 に答える
0

私は同じ問題に遭遇しました。Oleg が示唆したように、問題は productID が無効であることでした。にブレークポイントを設定

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response and check response.products. 

productID が response.products にない場合があります。この場合、ユーザーによる購入キャンセルとして取引が進行しますので、ログインを求められることはありません。

于 2010-01-23T07:22:26.290 に答える