web-dev-qa-db-ja.com

アプリケーションエラー:このバージョンのアプリケーションは、マーケット請求用に構成されていません

数日以来、アプリ内課金をAndroidアプリで使用できます。もちろん非常にクールです。だから、これを実装するためにアプリケーションの更新に取り組み始めました。これは私がやったことです:

  • 最初に、アプリ内課金の静的な応答をテストするために予約済みの製品IDを試しました。それは問題なく機能します。
  • Com.Android.vending.BILLING許可を含むドラフトAPKを市場にアップロードしました(プロダクション署名あり、デバッグ署名なし)。
  • それを行ったとき、「アプリ内製品」を市場のアプリに追加し、ステータスを公開に設定することができました。
  • テストユーザーを作成し、デバイスをリセットして、そのテストユーザーをテストデバイスのプライマリアカウントにしました。
  • 予約済みの製品IDは引き続き機能します。

ここで問題が発生します。自分の製品ID(前に追加したもの、上記を参照)を使用すると、ダイアログに次のテキストが表示されます。

"アプリケーションエラー:このバージョンのアプリケーションは、マーケット請求用に設定されていません。詳細については、ヘルプセンターを確認してください。"

ログに奇妙なものは何もありません。私がここで間違っていることを誰もが知っていますか?

91
Peter Fortuin

この問題が発生したばかりで、アプリのデバッグされた署名されていないバージョンを実行していることが原因だと気付きました。 Eclipseで、アプリケーションをエクスポートして署名し、電話にインストールすると、このエラーメッセージが表示されることなく、アプリ内製品を使用できました。

157
esilver

APKの新しいコピーを市場にアップロードすると、次の1時間ほどで「アプリケーションエラー」が発生することがわかりました。少なくとも1時間経過した後(場合によっては最大2時間経過する必要があります)、エラーが発生しなくなり、問題なくアイテムを購入できます。 Googleサーバーは、新しいAPKをアップロードしたという事実を処理するのに少なくとも1時間を要するようです(APKのInApp Billingに関して)。

したがって、APKをアップロードしてから1〜2時間待ってから、「アプリケーションエラー」が表示されるかどうかを確認することをお勧めします。

43
Simon K

私もこの問題に遭遇しました。公開されたアプリのversionCodeが3で、ドラフト(Billing権限を持つ非公開のapk)のversionCodeが4であり、アプリ内課金のテストに使用していた署名済みのapkがversionCode 3のままであることがわかりました。 versionCodeを4に変更し、リクエストした購入の実際のアプリ内製品ページにアクセスすることができました。

34
ashughes

これは、ドラフトとしてアップロードされたapkがテストモードでシステムで実行されているapkと一致しない場合に、署名されたリリース済みビルドで発生する可能性があります。ビルドが一致していることを確認してください。テストモードで問題なく実行でき、エラーが表示されなくなります。

ここでの大きな心配は、本番環境でも同じ動作が見られることです。つまり、アプリ内課金で1.0.0-1をリリースし、1.0.0-2をリリースすると、1.0.0-1を実行しているユーザーは購入できないか、購入したアイテムを復元しても、同じエラーが表示されます(非常に悪いユーザーエクスペリエンス)。この動作をテストモードに固有のものとして言及するためにドキュメントを精査してきましたが、これまでのところ運はありません。ここにバグを追加しました: http://code.google.com/p/marketbilling/issues/detail?id=15#c

22
jen_h

私も同じ問題に遭遇しました...しかし、今では問題は解決しました

いくつかの試行に基づいた私の観察:

  1. バージョンコードは、Google Playとデバイスの両方で一致する必要があります
  2. バージョンが一致しても、このエラーが表示される場合があります
  3. 約1〜2時間待ってから、試してくださいしませんこのエラーを取得します

お役に立てれば

14
user1444172

重複した質問からコピー: https://stackoverflow.com/a/22469253/1321401

このエラーはいくつかの理由で発生する可能性があります。
Google IABテストの要件のリストは次のとおりです。

前提条件:

  1. AndroidManifestには "com.Android.vending.BILLING"許可が含まれている必要があります。
  2. APKはリリースモードに組み込まれています
  3. APKはリリース証明書で署名されています。
  4. APKは、alfa/beta distributionチャネル(以前はドラフトとして)に開発者コンソールに少なくとも1回アップロードされます。 (時間がかかります〜2h-24h)。
  5. IAB製品は公開され、そのステータスはactiveに設定されます。
  6. 開発者コンソールにテストアカウントが追加されました

テスト要件:

  1. テストAPKには、開発者コンソールにアップロードされたバージョンコードと同じversionCodeがあります。
  2. テストAPKは、dev.consoleにアップロードされたものと同じ同じ証明書で署名されています。
  3. テストアカウント(開発者ではない)-デバイス上のメインアカウント

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

P.P.S:すでに長い間このリストを作りたかった。

Thnx @ zlgdev アップデート用

7
Luten

私の解決策は、Market(ドラフトAPKとして)およびテストでapkに署名するために同じキーを使用する必要があるということでした。したがって、単にアプリケーションを実行するのではなく、すべての更新で署名されたAPKをエクスポートし、apkコマンドラインコマンドを使用してデバイスでアンインストールして再インストールする必要があります。原則として、独自のキーストアをデバッグキーストアとして使用することもできますが、キーには特定のハードコードされたパスワードと名前を使用する必要があります。

6
JaakL

このエラーが発生している場合は、もう1つの解決策を紹介します。当初、請求許可が有効になっているapkのドラフトをgoogleにアップロードしたため、アプリの購入可能項目で設定することができました。後で、AndroidManifestに請求許可がない場合に別のapkをアップロードしたため、エラーが発生しました。確かにありそうもないケースのように思えますが、それは私にとっては起こったので、可能です。

編集:同じ折り目に沿って、Googleにドラフトとして送信したバージョンが署名されていない場合、エラーも発生します。

0
user1174195

2セントを投入するために、ベータ版にアップロードし、アプリの新しいバージョンで[設定]タブでアクセスをテストするGmailアカウントを作成することでテストできました...

私は今それを生産に移しています...

ありがとう!ネイサン

0
Nathan Prather