web-dev-qa-db-fra.com

Cette version de l'application n'est pas configurée pour la facturation via Google Play.

Lorsque j'essaie d'exécuter mon application avec la facturation intégrée, le message d'erreur suivant s'affiche: "Cette version de l'application n'est pas configurée pour la facturation via Google Play. Consultez le centre d'aide pour plus d'informations".

J'ai déjà la permission de facturation dans le fichier Manifest et un fichier .apk signé a été chargé en tant que brouillon sur Google Play et j'ai également installé le même fichier apk signé sur mon téléphone.

Toute aide sur la façon de résoudre ce problème?

236
Gatekeeper

Ahh a trouvé la solution après avoir essayé quelques heures.

  1. Google met un certain temps à traiter les applications et à les mettre à jour sur leurs serveurs. Pour moi, cela prend environ une demi-journée. Ainsi, après avoir enregistré l'apk en tant que brouillon sur Google Play, vous devez attendre quelques heures avant que les produits intégrés à l'application répondent normalement et permettent des achats réguliers.
  2. Exporter et signer APK. Un APK non signé qui essaie de faire des achats recevra une erreur.
183
Gatekeeper

Cette erreur peut être causée par plusieurs raisons. 

Voici la liste des exigences pour les tests Google IAB.

Conditions préalables:

  1. AndroidManifest doit inclure permission "com.Android.vending.BILLING".
  2. APK est construit en mode de libération.
  3. APK est signé _ avec le certificat de version} _.
  4. L'APK est chargé sur la chaîne distribution alpha/bêta (précédemment sous forme de brouillon) sur la console du développeur au moins une fois. (prend un peu de temps ~ 2h-24h).
  5. IAB les produits sont publiés et leur statut défini sur actif.
  6. _ {Le ou les comptes de test sont ajoutés} _ dans la console du développeur.

Exigences de test:

  1. Test APK a le même versionCode que celui qui a été chargé sur la console du développeur.
  2. Le fichier APK de test correspond à signé _ avec le même certificat (s)} que celui téléchargé sur dev.console.
  3. Compte de test (non développeur) - est le compte principal sur l'appareil. (Le compte principal peut ne pas être nécessaire - selon @MinosL comment)
  4. _ {Le compte de test est activé} en tant que testeur et c'est lié à un mode de paiement valide. ( @Kyone )

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

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

Thnx @zlgdev , @Kyone , @MinosL pour les mises à jour

288
Luten

La même chose se produira si votre version publiée n'est pas la même que celle que vous testez sur votre téléphone. 

Par exemple, la version téléchargée est Android:versionCode="1" et la version que vous testez sur votre téléphone est Android:versionCode="2".

129
sandalone

Vous devez signer votre APK avec votre certificat en direct. Puis installez-le sur votre appareil de test. Vous pouvez ensuite tester InAppBilling. Si vous testez votre application en mode d'exécution directe via Eclipse vers périphérique (en mode débogage), vous obtiendrez cette erreur.

Si vous utilisez Android.test.purchased en tant que SKU, cela fonctionnera jusqu'au bout, mais le développeurPayload ne figurera pas dans votre réponse finale.

Si vous utilisez votre propre brouillon dans l'élément de l'application, vous pouvez effectuer un test complet, mais des frais vous seront facturés et vous devrez donc les rembourser vous-même ultérieurement.

Vous ne pouvez pas acheter d’éléments avec le même compte Gmail que celui que vous utilisez pour la console de développement Google Play.

45
Chirag Patel

Si vous êtes ici à partir de 2018, vous devez télécharger l'APK directement à partir du Play Store et installer l'APK "dérivé". C'est peut-être parce que Google Play Store a une fonctionnalité "App Signing by Google Play".

9
Law Gimenez

Dans la console du développeur:

Settings -> Account details -> License Testing -> Comptes Gmail avec accès de test

et tapez ici vos comptes

8
Pablo Cegarra

Laissez-moi juste ajouter ce qui est arrivé avec moi, peut aider quelqu'un.

C'était principalement dû à la signature.

Depuis que j'ai ajouté les détails de la signature dans la structure du projet, je pensais que chaque fois que je cours, l'apk signé signé est installé. Mais le type de construction 'debug' a été sélectionné.

Le correctif ci-dessous a résolu le problème pour moi.

  • Apk généré généré du type de construction 'release'.
  • Installez manuellement l'apk.
3
Shree Harsha S

Cela se produira si vous utilisez une version de l'apk différente de celle de Google Play.

2
Amalka

Avait le même problème, et il n'a pas été résolu avant que je lis le post de DZDomi. Il est soudain apparu qu'un paramètre de la console de développeur Google devait être activé. Dans la section "Achats via l'application", il existe une ligne pour votre produit et, à l'extrême droite, un statut. Il devrait être actif!

1
Søren

Contrairement à de nombreuses réponses et commentaires sur SO et d'autres sites, vous n'avez PAS à effectuer de tests préliminaires avec une version alpha/bêta de votre produit qui a été téléchargée à partir de Google Play sur votre appareil de test (la publication alpha/bêta). processus mange souvent une demi-journée). Vous ne devez pas non plus charger et re-charger une version signée apk de votre studio de développement sur votre appareil de test.

Vous POUVEZ déboguer les services de facturation d'applications intégrés dans Google Play en utilisant l'application de débogage chargée depuis votre studio de développement directement sur votre appareil de test via ADB. Si vous rencontrez des erreurs empêchant cela, vous avez probablement commis une erreur dans votre code. Portez une attention particulière au CASE de vos SKU (identifiants produits) et à leur format (par exemple, si vous chargez votre APK en tant que com.mydomain.my_product_id, assurez-vous d'essayer de l'acheter de cette manière - en fournissant le même cas et le même domaine). . En outre, portez une attention particulière à votre type d'élément - il devrait être "inapp" ou "subs" pour les achats ou les abonnements gérés/non gérés dans l'application, respectivement.

Comme suggéré par Chirag Patel, à condition que votre code de facturation soit correctement établi, effectuez tous les tests à l'aide du sku Android.test.purchased (ID du produit) lors de vos tests préliminaires. Recherchez cet ID tout au long de vos opérations de facturation pour le transmettre lors des contrôles de signature, de jeton et de charge utile, car ces données ne sont pas fournies par le système de test de Google. De plus, attribuez cet ID à l'un de vos produits test pour tester son achat, son déverrouillage/son chargement et sa présentation tout au long de votre schéma. Pour EFFACER l'achat, consommez-le simplement en transmettant le même sku ET une chaîne de jetons formatée de cette façon; aucun autre champ n'est pertinent:

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

Une fois cette phase d’essai terminée, passez à l’essai en semi-direct avec votre produit alpha/bêta. Créez un groupe Google (essentiellement une liste de diffusion), ajoutez-y vos e-mails d'utilisateurs test et ajoutez/invitez ce groupe à tester votre appareil au cours de cette phase (effectuée à la partie "APK" de la liste de développeurs Google de votre application). Les achats seront simulés mais ne seront pas facturés. Toutefois, pour les effacer et les tester à nouveau, Google indique que vous devez les rembourser à partir de votre portefeuille Google. CECI est la seule phase de test qui nécessite le processus fastidieux d’utilisation des charges alpha/bêta et des utilisateurs de test.

1
Epsilon3

Si vous voulez déboguer IAB, que devez-vous faire?

  1. Soumettez pour que Google lance une version de votre application avec l'autorisation de l'IAB sur le manifeste:

  2. Ajoutez un produit à votre application sur Google Play: Administration de la facturation in-app

  3. Définissez un magasin de clés de débogage personnalisé signé: Configurez Eclipse pour utiliser le magasin de clés signé

1
Pablo

Dans mon cas, j'ai vu le même message en raison des signatures différentes de l'apk installé et d'un apk téléchargé sur le marché.

1
goRGon

Une autre raison non mentionnée ici est que vous devez effectuer des tests sur un périphérique réel. Avec l’émulateur qui devient vraiment bon, c’est une erreur facile à faire. 

0
JDenais

mon problème était que j'ai essayé de vérifier avec le debug.keystore, je veux dire l'exécuter par Eclipse. mon téléphone et que je pourrais le tester normalement.

0
Gal Rom

Le problème se produit également lorsque vous avez ajouté un achat intégré après avoir téléchargé l'apk, mais que vous n'avez pas publié l'application dans le Play Store (alpha, bêta et production). 

Ce qui signifie essentiellement que vous devez ajouter l'achat In-App APRÈS que vous ayez publié l'apk dans le Play Store (alpha, bêta et production). Sinon, vous ne pourrez pas acheter ou interroger pour l'achat In-App.

0
DZDomi

SOLUTION

Attendez quelques instants après le téléchargement de votre application sur Play Store, car Google met du temps à mettre à jour les versions des applications. Cela fonctionnera!

0
Ali Akram

J'ai le même problème en moto c2 + dans mon cas, c’est un problème d’appareil une fois que je redémarre alors cela fonctionnera parfaitement ...

0
Sagar Pithiya