アプリケーションエラー:このバージョンのアプリケーションはマーケットビリング用に設定されていません


91

数日以来、Androidアプリでアプリ内課金を使用することが可能です。もちろんとてもクールです。それで、これを実装するためのアプリケーションの更新に取り組み始めました。しかし今、私はいくつかの問題に遭遇します。これは私がやったことです:

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

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

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

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

回答:


157

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


8
デバッグバージョンは問題ありませんが、署名する必要があります。
Barry Fruitman、2012年

1
これは、アプリ内アイテムをテストするためにアプリを公開するために必要です。アプリ内アイテムを公開し、アプリを非公開のままにしました。質問が愚かであるか無関係である場合は、お詫び申し上げます。
ジャナ

@ janaいいえアプリでテストするためにアプリを公開する必要はありませんが、はいアプリ内アイテムを公開する必要があります。そうしないと、アプリ内アイテムのテスト中にデバイスでエラーが発生します "アイテムが見つかりません」
Usman Kurd、2012年

21
他の回答の一部と同様に、注意することが重要です。テストアプリのバージョンコードは、Google Playのドラフトのバージョンコードと同じである必要があります。したがって、Google Playでプレースホルダーv1から始めた場合は、実際のアプリをv2として準備しました。テストを完了する前に、実際のアプリをドラフトとしてGPにアップロードする必要があります。
スティーブヘイリー

1
最近状況が変わったため、IAPテストを続行するには、Google Playのアルファチャネルにアプリを公開する必要があります。
tenpn 2015

43

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

したがって、私のアドバイスは、APKをアップロードしてから1〜2時間待ってから、「アプリケーションエラー」が発生するかどうかを確認することです。


私はこの答えが私にとってうまくいったことを再確認したかっただけです。アプリのバージョンが正しいにもかかわらず、このエラーが発生しました。私は数時間待つ以外に何もしなかった、そしてそれは正しく働き始めた(私は再びエラーを見なかった)。
Booger

4
2つ目は、2時間待つこともできました(実際には一晩待っていたため、正確なタイミングがわかりません)。小さな編集コメントとして、Googleがこれについてより正確なエラーメッセージを提供できず、私たち全員に多くのトラブルを救わせなかったことはイライラさせられます。
M Katz

これは、現在より古いバージョンのアプリを使用しているユーザーがアプリ内購入を使用できず、最初にアプリを更新する必要があることを意味しますか?
Kedu 2014年

34

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


22

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

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


3
+1、追加情報、前向きな考え、バグスレッドへのリンク。
Bill The Ape

14

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

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

  1. バージョンコードはGoogle Playとデバイスの両方で一致する必要があります
  2. バージョンが一致しても、このエラーが発生する可能性があります
  3. 約1〜2時間待ってから、このエラーは発生しませ

お役に立てれば


1
また、バージョンコードが一致する必要があることも発見しました。少なくとも、テストバージョンをGoogle Playのバージョンより高くすることはできません。逆も真実かどうかはわかりません。古いバージョンのアプリケーションを使用している人が私のアプリ内課金を使用できないことを意味するので、私はそうしないことを望みます。
Peter Fortuin、2012年

#3がトリックでした。すべて問題がないと確信している場合は、休憩を取り、後で再試行してください。更新する
のに

7

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

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

前提条件:

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

テスト要件:

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

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

PPS:このリストをもう長い間作りたかったのです。

更新用のThnx @zlgdev


1
versionCodeが私を助けました-なぜこれが必要なのですか?
スロット

5

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


0

このエラーが発生した場合は、もう1つの可能な解決策を共有します。私は最初に課金権限を有効にしてapkの下書きをグーグルにアップロードしたので、アプリで購入できるように設定することができました。後で、AndroidManifestから請求権限が欠落していない別のAPKをアップロードしたため、エラーが発生しました。確かにありそうもないケースのように思えますが、私にはそれが起こったので可能です。

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


0

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

現在、本番環境に移行しています...

ありがとう!ネイサン


-2

古いスレッドですが、私の経験を追加しています...

ストアにあるよりも高いversionCode 1のAPKをインストールしました。Nexus 7の2つの異なるアカウントでプレイして、この問題が発生しました。そこで、ストアからアンインストールして再インストールし、versionCodeが一致することを確認しました。一晩待ってもエラーは解消されませんでした。

Nexus 7に関連付けられている3つのGoogleアカウントすべてからアンインストールする必要があることがわかりました。Nexus7の3つのアカウントすべてからアプリを明示的にアンインストールし、ストアから再インストールすると回復しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.