Erreur d'application: cette version de l'application n'est pas configurée pour la facturation du marché

91

Depuis quelques jours, il est possible d'utiliser la facturation intégrée dans les applications Android. Très cool bien sûr. J'ai donc commencé à travailler sur une mise à jour de mon application pour l'implémenter. Mais maintenant, je rencontre des problèmes. C'est ce que j'ai fait:

  • J'ai d'abord essayé les ID de produit réservés pour tester les réponses de facturation statiques dans l'application. Cela fonctionne sans problème.
  • J'ai téléchargé un brouillon d'APK sur le marché (avec signature de production, pas de signature de débogage), qui incluait l'autorisation com.android.vending.BILLING.
  • Lorsque j'ai fait cela, j'ai pu ajouter un `` Produits intégrés à l'application '' à mon application sur le marché et lui attribuer le statut publié.
  • J'ai créé un utilisateur de test et réinitialisé mon appareil pour faire de cet utilisateur de test le compte principal sur mon appareil de test.
  • L'identifiant de produit réservé fonctionne toujours.

Maintenant vient le problème. Lorsque j'utilise mon propre identifiant de produit (celui que j'ai ajouté auparavant, voir ci-dessus), une boîte de dialogue s'affiche avec le texte suivant:

" Erreur d'application: cette version de l'application n'est pas configurée pour la facturation de marché. Consultez le centre d'aide pour plus d'informations. "

Il n'y a rien d'étrange que je puisse trouver dans le journal. Quelqu'un sait ce que je fais de mal ici?

Peter Fortuin
la source

Réponses:

157

Je viens de rencontrer ce problème et j'ai réalisé que c'était parce que j'exécutais une version de débogage non signée de mon application. Dans Eclipse, lorsque j'ai exporté et signé mon application et l'ai installée sur le téléphone, j'ai pu utiliser mes produits intégrés à l'application sans voir ce message d'erreur.

argent
la source
8
Les versions de débogage sont correctes mais elles doivent être signées.
Barry Fruitman
1
est-ce nécessaire pour publier l'application pour tester un élément inApp. J'ai publié l'élément inapp et j'ai gardé l'application non publiée. Je m'excuse si la question est idiote ou sans rapport.
Jana
@ jana non, il n'est pas nécessaire de publier l'application pour la tester dans l'application, mais oui, il est nécessaire de publier le produit intégré à l'application à publier sinon vous obtiendrez une erreur sur votre appareil lors du test du produit intégré à l'application "Élément non trouvé "
Usman Kurd
21
Il est important de noter, comme dans certaines des autres réponses, que le code de version de votre application de test doit être le même que le code de version de votre brouillon dans Google Play. Donc, si vous avez commencé avec un espace réservé v1 dans Google Play, puis préparé la vraie application en tant que v2 - cette vraie application doit être téléchargée sur GP en tant que brouillon avant que vous puissiez terminer le test.
Steve Haley
1
Les choses ont récemment changé et vous devez maintenant publier votre application sur le canal alpha sur Google Play avant que les tests IAP puissent continuer.
tenpn
43

J'ai constaté qu'une fois que j'ai téléchargé une nouvelle copie de mon APK sur le marché, j'éprouve cette "erreur d'application" au cours de l'heure suivante. Après au moins une heure (parfois jusqu'à deux heures doivent s'écouler), je n'ai plus cette erreur et je peux ensuite acheter mes articles sans aucun problème. Il semble que les serveurs de Google aient besoin d'au moins une heure pour traiter le fait que vous avez téléchargé un nouvel APK (en ce qui concerne l'aspect de facturation InApp de l'APK).

Je vous conseille donc d'attendre 1 à 2 heures après le téléchargement de votre APK, puis de voir si vous obtenez toujours "l'erreur d'application".

Simon K
la source
Je voulais juste réaffirmer que cette réponse a fonctionné pour moi. J'obtenais cette erreur - même si les versions de l'application étaient correctes. Je n'ai rien fait d'autre qu'attendre quelques heures, et cela a commencé à fonctionner correctement (je n'ai plus vu l'erreur).
Booger
4
Je vais l'appuyer: cela a fonctionné pour moi aussi d'attendre quelques heures (en fait, j'ai attendu pendant la nuit, donc je ne connais pas le moment exact). En tant que petit commentaire rédactionnel, il est frustrant que Google ne puisse pas donner un message d'erreur plus précis pour cela et nous éviter à tous beaucoup de problèmes.
M Katz
Cela signifie-t-il que j'utilise une version d'application plus ancienne que la version actuelle, que je ne peux pas utiliser les achats intégrés et que je dois d'abord mettre à jour l'application?
Kedu
34

J'ai également rencontré ce problème. J'ai finalement réalisé que mon application publiée avait une versionCode de 3, mon brouillon (apk non publié avec l'autorisation de facturation) avait une versionCode de 4, et l'apk signé que j'utilisais pour tester la facturation dans l'application était toujours à la versionCode 3. Une fois que je a changé le versionCode en 4, j'ai pu accéder à la page produit réelle de l'application pour l'achat que je demandais.

ashughes
la source
22

Cela peut se produire sur les versions signées et publiées lorsque l'apk téléchargé en tant que brouillon ne correspond pas à l'apk exécuté sur votre système en mode test. Assurez-vous simplement que vos builds correspondent, vous devriez être bien en mode test et cesserez de voir les erreurs.

Le gros souci ici est que nous verrons ce même comportement en production, c'est-à-dire que nous publions 1.0.0-1 avec la facturation intégrée à l'application, puis nous publierons 1.0.0-2, et les utilisateurs exécutant 1.0.0-1 seront impossible d'acheter ou de restaurer leurs achats et recevra la même erreur (très mauvaise expérience utilisateur). J'ai parcouru la documentation pour mentionner ce comportement comme spécifique au mode test, mais pas de chance jusqu'à présent; nous avons ajouté un bogue ici: http://code.google.com/p/marketbilling/issues/detail?id=15#c0

jen_h
la source
3
+1 pour les informations supplémentaires, la réflexion prospective et le lien vers le fil du bug.
Bill The Ape
14

J'ai également rencontré le même problème ... mais maintenant le problème est résolu

Mes observations basées sur quelques essais:

  1. Le code de version doit correspondre à la fois sur Google Play et sur l'appareil
  2. Même si les versions correspondent, nous pouvons toujours obtenir cette erreur
  3. Attendez environ 1 à 2 heures puis essayez, nous n'obtiendrons pas cette erreur

J'espère que cela t'aides

user1444172
la source
1
J'ai également découvert que le code de version devrait correspondre. Au moins, votre version de test ne peut pas être supérieure à celle de Google Play. Je ne sais pas si l'inverse est également vrai. J'espère que non, car cela signifierait que les personnes disposant d'une ancienne version de l'application ne peuvent pas utiliser ma facturation intégrée à l'application.
Peter Fortuin
# 3 était le truc. Si vous êtes sûr que tout va bien, faites une pause et essayez plus tard. Il faut juste un peu de temps pour mettre à jour :)
nuala
7

Copié à partir de la question en double: https://stackoverflow.com/a/22469253/1321401

Cette erreur peut se produire pour plusieurs raisons.
Voici la liste des exigences pour le test Google IAB.

Conditions préalables:

  1. AndroidManifest doit inclure l' autorisation "com.android.vending.BILLING" .
  2. APK est construit en mode version .
  3. L'APK est signé avec le ou les certificats de sortie .
  4. L'APK est téléchargé au moins une fois sur le canal de distribution alfa / beta (auparavant - en tant que brouillon) sur la console développeur. (prend du temps ~ 2h-24h ).
  5. Les produits IAB sont publiés et leur statut est défini sur actif .
  6. Le ou les comptes de test sont ajoutés dans la console développeur.

Exigences de test:

  1. L'APK de test a le même versionCode que celui téléchargé sur la console développeur.
  2. L'APK de test est signé avec le (s) même (s) certificat (s) que celui téléchargé sur dev.console.
  3. Compte de test (pas de développeur) - est le compte principal sur l'appareil.

PS: Débogage avec certificat de version : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp pour le lien)

PPS: Je voulais faire cette liste depuis longtemps déjà.

Thnx @zlgdev pour la mise à jour

Luten
la source
1
Le versionCode m'a compris - pourquoi est-ce nécessaire?
slott
5

Ma solution était que je devais utiliser la même clé pour signer apk dans Market (en tant que projet APK) et en test. Donc, au lieu de simplement exécuter l'application, je dois toujours exporter l'APK signé avec chaque mise à jour, le désinstaller et le réinstaller dans l'appareil à l'aide des commandes de ligne de commande apk. En principe, vous pouvez également utiliser votre propre magasin de clés comme magasin de clés de débogage, mais cela nécessite l'utilisation de mots de passe codés en dur et de noms spécifiques pour les clés.

JaakL
la source
0

J'ai pensé que je partagerais une autre solution possible si vous obtenez cette erreur. J'ai initialement téléchargé sur Google un brouillon de mon apk avec l'autorisation de facturation activée, j'ai donc pu configurer dans les achats d'applications. Plus tard, j'ai téléchargé un autre apk sans l'autorisation de facturation manquante dans mon AndroidManifest, ce qui a entraîné l'erreur. Cela semble certainement être un cas improbable, mais c'est arrivé pour moi donc c'est possible.

Modifier: Dans le même ordre d'idées, si la version que vous avez soumise en tant que brouillon à Google n'est pas signée, l'erreur se produira également.

user1174195
la source
0

Pour jeter mes deux cents, j'ai pu le tester en le téléchargeant vers la version bêta et en créant un compte Gmail avec test d'accès sous l'onglet paramètres avec une nouvelle version de mon application ...

Je passe maintenant à la production ...

Merci! Nathan

Nathan Prather
la source
-2

Vieux fil, mais en ajoutant mon expérience ...

J'ai installé un apk avec une versionCode 1 supérieure à celle du magasin. J'ai joué sur 2 comptes différents sur mon Nexus 7 et j'ai rencontré ce problème. J'ai donc désinstallé et réinstallé du magasin pour m'assurer que le versionCode correspondait. Même en attendant du jour au lendemain, l'erreur ne s'est pas effacée.

Il s'est avéré que j'avais besoin de désinstaller les 3 comptes Google que j'avais liés à mon Nexus 7. Il s'est rétabli lorsque j'ai désinstallé l'application explicitement des trois comptes de mon nexus 7, puis réinstallé à partir du magasin.

Farrell
la source