375 votes

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, je reçois l'erreur : "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à ajouté l'autorisation de facturation dans le fichier Manifest et j'ai un fichier .apk signé téléchargé en tant que brouillon sur Google Play, et j'ai également installé ce même fichier .apk signé sur mon téléphone.

Toute aide pour résoudre ce problème ?

4 votes

J'ai ce problème sur un vrai appareil, mais pas sur un émulateur. J'ai installé la même version sur l'émulateur et sur l'appareil. Je me suis connecté en tant que même utilisateur sur l'émulateur et sur l'appareil. Sur l'appareil, j'obtiens une erreur disant que cette version de l'application n'est pas configurée pour la facturation, alors que sur l'émulateur tout fonctionne normalement et une boîte de dialogue avec une carte de test s'affiche. Quelle est la différence?

414voto

Luten Points 861

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

Voici la liste des exigences pour les tests Google IAB.

Prérequis:

  1. AndroidManifest doit inclure la permission "com.android.vending.BILLING".
  2. APK est construit en mode release.
  3. APK est signé avec le(s) certificat(s) de release. (Important : avec "Signature d'application par Google Play", cela fonctionne uniquement si vous téléchargez directement depuis GooglePlayStore!)
  4. APK est téléchargé sur le canal de distribution alpha/bêta (précédemment - en tant que brouillon) dans la console du développeur au moins une fois. (prend un certain temps ~2h-24h).
  5. Les produits IAB sont publiés et leur statut est défini sur actif.
  6. Le(s) compte(s) de test est ajouté dans la console du développeur.

Exigences de test:

  1. L'APK de test a le même versionCode que celui téléchargé dans la console du développeur.
  2. L'APK de test est signé avec le(s) même(s) certificat(s) que celui téléchargé dans la console du développeur.
  3. Le compte de test (pas le développeur) - est le compte principal sur l'appareil. (Le compte principal peut ne pas être nécessaire - selon le commentaire de @MinosL). De plus, vous ne pouvez pas acheter des éléments avec le même compte que votre compte principal de développeur Google Play. (@chirag-patel)
  4. Le compte de test est inscrit en tant que testeur et il est lié à une méthode de paiement valide. (@Kyone)
  5. Ajoutez votre adresse e-mail de testeur ou votre groupe de testeurs sous Google Play Console -> Configuration -> Test de licence. (@pablo-cegarra)

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

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

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

0 votes

Étant un débutant absolu en développement Android, je ne comprends pas le point 3. Que voulez-vous dire par 'certificat de publication'?

0 votes

@papadi alors vous devriez lire ceci attentivement (il y a quelques pièges) : developer.android.com/tools/publishing/app-signing.html

8 votes

N'oubliez pas de vous assurer que le compte que vous utilisez pour tester l'IAB est inscrit en tant que testeur en utilisant l'URL "opt-in" générée une fois que vous avez téléchargé une version; ET qu'il est lié à une méthode de paiement valide.

207voto

Gatekeeper Points 2238

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

  1. Google prend du temps pour traiter les applications et les mettre à jour sur leurs serveurs, pour moi cela prend environ une demi-journée. Donc, 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 répondent normalement et permettent des achats réguliers.
  2. Exporter et signer l'APK. L'APK non signé essayant de faire des achats obtiendra une erreur.

89 votes

Wow, est-ce sérieux ? Je viens de rencontrer le même problème. J'ai fait tout ce que Google m'a demandé de faire pour tester la facturation In-App, mais je reçois toujours le même message d'erreur évasif. Je suppose que je vais devoir attendre et voir. Mais est-ce que Google s'attend vraiment à ce que nous, les développeurs, attendions des heures à chaque fois que nous devons mettre à jour notre application pour mettre en œuvre la facturation In-App ? Cela me semble tout à fait inapproprié, pour le moins que l'on puisse dire.

8 votes

Pouvez-vous tester tout en étant connecté à Android Studio / en cours d'exécution tout en étant connecté au débogueur? Ou avez-vous besoin d'installer l'APK de version via USB?

5 votes

Y a-t-il un moyen plus facile de tester le processus d'achat autre que, Outils Android > Exporter projet signé... etc., puis copier manuellement l'APK sur l'appareil, tester, .... répéter ? Je dois certainement passer à côté de quelque chose ?

149voto

sandalone Points 8326

La même chose se produira si votre version publiée n'est pas la même que la version 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"

3 votes

Pouvez-vous me dire s'il vous plaît ce qu'il se passe si la version téléchargée est android:versionCode="1" et que celle du téléphone est android:versionCode="2" ? Est-ce que c'est bon ou dois-je changer mon apk sur Google Play ?

2 votes

Ce que vous devez faire est de baisser la version locale à "1" afin qu'elle corresponde à la version live actuelle, du moins temporairement pour les tests.

2 votes

On dirait qu'il y a 2 solutions courantes à cette erreur selon votre situation. Dans mon cas, c'était celle-ci.

48voto

Chirag Patel Points 3460

Vous devez signer votre APK avec votre certificat en direct. Ensuite, installez-le sur votre appareil de test. Vous pourrez ensuite tester InAppBilling. Si vous testez votre application en l'exécutant directement via eclipse sur l'appareil (en mode débogage), vous obtiendrez cette erreur.

Si vous utilisez android.test.purchased comme SKU, cela fonctionnera, mais vous n'aurez pas le developerPayload dans votre réponse finale.

Si vous utilisez votre propre brouillon d'article dans l'application, vous pourrez le tester, mais vous serez facturé et devrez vous rembourser par la suite.

Vous ne pouvez pas acheter d'articles avec le même compte gmail que vous utilisez pour la console de développement Google Play.

1 votes

+1 Exécution à partir du débogueur utilise un certificat de débogage. Après avoir exporté l'application et créé une nouvelle clé publique (et l'avoir installée dans la console du développeur), il vous suffit de vous envoyer par e-mail le fichier APK et de l'installer depuis votre boîte de réception Gmail.

0 votes

Si je veux essayer "android.test.purchased", est-ce que je vais alors devoir changer le SKU à la fois dans mon code et dans la console du développeur ?

4voto

Amalka Points 51

Cela se produira si vous utilisez une version différente de l'apk que celle présente dans le Google Play.

0 votes

Il n'y a plus une telle chose, je ne suis pas sûr si c'était en 2013.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X