309

アプリ内課金でアプリケーションを実行しようとすると、次のエラーが表示されます。

私はすでにマニフェスト ファイルに課金権限を持っており、署名済みの .apk を下書きとして Google Play にアップロードしており、同じ署名済みの apk を携帯電話にもインストールしています。

この問題を解決する方法について何か助けはありますか?

4

21 に答える 21

368

このエラーは、いくつかの理由で発生する可能性があります。

Google IAB テストの要件のリストを次に示します。

前提条件:

  1. AndroidManifest には、「com.android.vending.BILLING」パーミッションを含める必要があります。
  2. APK はリリース モードでビルドされます。
  3. APK はリリース証明書で署名されています。(重要: 「Google Play によるアプリ署名」では、GooglePlayStore から直接ダウンロードした場合にのみ機能します!)
  4. APK は、少なくとも 1 回、開発者コンソールのアルファ/ベータ配布チャネル (以前はドラフトとして) にアップロードされます。(時間がかかります~2h-24h )。
  5. IAB製品が公開され、ステータスがactiveに設定されます。
  6. テスト アカウントが開発者コンソールに追加されます。

テスト要件:

  1. テスト APK には、開発者コンソールにアップロードされたものと同じ versionCodeがあります。
  2. テスト APK は、dev.console にアップロードされたものと同じ証明書で署名されています。
  3. テスト アカウント(開発者ではない) -デバイスのメイン アカウントです。(メインアカウントは必要ないかもしれません - @MinosLコメントによると)
  4. テスト アカウントはテスターとしてオプトインされており、有効なお支払い方法にリンクされています。( @京音)

PS:リリース証明書を使用したデバッグ: https://stackoverflow.com/a/15754187/1321401 (リンクの Thnx @dipp )

PPS: ずっと前からこのリストを作りたいと思っていました。

更新のためのThnx @ zlgdev@Kyone、 @ MinosL

于 2014-03-18T02:24:02.840 に答える
199

ああ、数時間試した後、解決策を見つけました。

  1. Google は、アプリケーションを処理してサーバーに更新するのに時間がかかります。私の場合、約半日かかります。そのため、Google Play で apk を下書きとして保存した後、アプリ内製品が正常に応答して通常の購入が可能になるまで数時間待つ必要があります。
  2. APK をエクスポートして署名します。未署名の APK を購入しようとすると、エラーが発生します。
于 2012-06-18T01:19:24.623 に答える
141

公開されたバージョンが携帯電話でテストしているバージョンと同じでない場合も同じことが起こります。

たとえば、アップロードされたバージョンはandroid:versionCode="1"であり、携帯電話でテストしているバージョンはandroid:versionCode="2"

于 2012-07-09T12:31:11.263 に答える
73

古い開発者コンソールで:

Settings-> Account details-> License Testing-> テスト アクセスのある Gmail アカウントで、ここに自分のアカウントを入力します

新しい開発者コンソール:

Setup-> License Testing-> Gmail アカウントを入力し、[Enter] を押して [保存] をクリックします。

Google Play ライセンスのテスト

于 2018-07-11T12:21:11.990 に答える
48

ライブ証明書を使用してAPKに署名する必要があります。次に、それをテストデバイスにインストールします。その後、InAppBillingをテストできます。eclipseを介してデバイスに直接実行して(デバッグモードで)アプリケーションをテストしている場合は、このエラーが発生します。

SKUとして使用している場合android.test.purchased、それは完全に機能しますが、最終的な応答にdeveloperPayloadが含まれることはありません。

アプリアイテムで独自のドラフトを使用している場合は、ずっとテストできますが、課金されるため、後で自分で返金する必要があります。

GooglePlay開発コンソールで使用しているものと同じGmailアカウントでアイテムを購入することはできません。

于 2013-02-06T12:08:46.427 に答える
3

SO や他のサイトに関する多くの回答やコメントとは対照的に、Google Play からテスト デバイスにダウンロードした製品のアルファ版/ベータ版を使用して予備テストを実行する必要はありません (アルファ版/ベータ版の公開プロセスはしばしば無駄になります半日)。また、開発者スタジオからテスト デバイスに署名付きリリース apk を読み込んで再読み込みする必要もありません。

デベロッパー スタジオから ADB 経由で直接テスト デバイスにロードされたデバッグ アプリを使用して、アプリ課金サービスで予備的な Google Play をデバッグできます。これを妨げるエラーが発生している場合は、コードで何か間違ったことをしている可能性があります。SKU (製品 ID) の CASE とその形式に特に細心の注意を払ってください (たとえば、APK を com.mydomain.my_product_id としてロードする場合は、必ずこの方法で購入してみてください - 同じケースとドメインを提供してください)。 . また、itemType に特に細心の注意を払ってください。これは、管理対象/管理対象外のアプリ購入またはサブスクリプションに対して、それぞれ「inapp」または「subs」のいずれかである必要があります。

Chirag Patel が提案したように、請求コードが適切に設定されている場合は、予備テスト中に android.test.purchased Sku (製品 ID) を使用してすべてのテストを実行してください。このデータは Google テスト システムによって提供されないため、署名、トークン、およびペイロードのチェックを通過するために、課金操作全体でこの ID を確認してください。さらに、テスト製品の 1 つにこの ID を付与して、スキーマ全体で購入、ロック解除/ロード、プレゼンテーションをテストします。購入をクリアするには、同じ Sku とこのようにフォーマットされたトークン文字列を渡すだけで、それを消費します。他のフィールドは関係ありません。

    "inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";

このフェーズのテストが完了したら、アルファ/ベータ製品のセミライブ テストに進みます。Google グループ (基本的にはメーリング リスト) を作成し、テスト ユーザーの電子メールをグループに追加し、このフェーズでデバイスをテストするためにこのグループを追加/招待します (アプリの Google 開発者リストの「APK」部分で実行されます)。購入はシミュレートされますが、実際に請求されることはありません。ただし、購入をクリアして再テストするには、Google ウォレットから返金する必要があることを Google は示しています。これは、アルファ/ベータ ロードとテスト ユーザーを使用する時間のかかるプロセスを必要とする唯一のテスト フェーズです。

于 2014-07-23T00:20:36.113 に答える
2

私の場合、インストールされた apk とマーケットにアップロードされた apk の署名が異なるため、同じメッセージが表示されました。

于 2013-11-06T22:37:24.020 に答える
1

IAB をデバッグする場合は、次のことを行う必要があります。

  1. マニフェストで IAB 権限を使用して、アプリのバージョンを Google Play に送信します。

  2. Google Play でアプリに製品を追加する:アプリ内課金の管理

  3. 署名付きのカスタム デバッグ キーストアを設定する:署名付きキーストアを使用するように Eclipse を構成します。

于 2014-12-31T12:21:45.790 に答える
1

2022年の答え:

これは、デバッグ/リリース ビルドと、アプリが Play Signing によって署名されている場合 (つまり、Google Play から配信されたアプリの署名証明書が、Android Studio を使用してマシンからアプリをインストールするときの証明書とは異なることを意味します) についてテストされます。

次の手順を確認してください。

  1. Google Play Console で製品を作成し、有効化します。
  2. ライセンス テスターを追加します ( Google Play Console -> [設定] -> [ライセンス テスト]を開きます)。Android デバイスにリストされているすべての Google アカウントを追加します。
  3. 署名済みアプリを内部テスト トラックにアップロードします (リリース モードにする必要があります)。
  4. テスト リンクを使用して、アプリをダウンロードできるかどうかを確認します (内部トラックにアップロードされたアプリのバージョンが、デバッグ モードでテストしているバージョンと一致することを確認してください)。アップロードされた最新バージョンが表示されるまでに時間がかかるため、Play ストア アプリのキャッシュをクリアすることをお勧めします。
  5. Android Studio からアプリをデバッグ モードで実行します。(ここでも、アプリのバージョンとビルド番号は、内部トラックに公開されたバージョンの値と一致する必要があります)。

2 つの異なる Google Play Console アカウント (2 つの異なるアプリ) でテストしたところ、動作しました。

于 2022-01-10T09:15:13.610 に答える
0

私の問題は、 debug.keystore でそれをチェックしようとしたことです。つまり、Eclipse で実行することです。アルファ モードで公開したキーストアでエクスポートしました (テストする前に公開する必要があります)。私の電話と私はそれを正常にテストできました。

于 2014-09-28T10:04:55.727 に答える
0

この問題は、apk をアップロードした後にアプリ内購入を追加したものの、アプリケーションを Play ストア (アルファ版、ベータ版、製品版) で公開していない場合にも発生します。

これは基本的に、Play ストア (アルファ版、ベータ版、製品版) で apk を公開した後に、アプリ内購入を追加する必要があることを意味します。そうしないと、アプリ内購入を購入したり、クエリを実行したりすることができなくなります。

于 2016-08-22T13:54:36.050 に答える
0

すべての設定に問題がないのにエラーが発生する場合This version of the application is not configured for billing through Google Play. Check the help center for more information.

Play ストアでアプリ内製品の価格を編集するか、アプリ内製品を無効にしてから有効にします。これで問題は解決します。

于 2021-12-07T10:59:10.450 に答える