web-dev-qa-db-fra.com

Est-il possible de déboguer localement la facturation in-app de Google Play dans Android Studio?

Je reçois cette erreur en testant localement les produits d'abonnement intégrés à l'application. 

l'authentification est requise. vous devez vous connecter à votre compte google

J'ai pu vérifier l'inventaire du produit, mais ne devrais-je pas aussi pouvoir l'acheter?

Il y a un certain nombre d'articles sur les raisons de cette erreur qui, à mon avis, ont été résolus:

  • le produit est publié sur le canal bêta avec la facturation intégrée à l'application activée
  • je suis connecté à Play Store avec un compte sous licence utilisateur test sur l'appareil.

C'est le seul moyen de tester les achats réels via les canaux bêta/alpha - pas directement du studio Android. Cet article suggère que c'est possible (voir la capture d'écran)

http://developer.Android.com/google/play/billing/billing_testing.html#billing-testing-test

15

Essentiellement, les paiements de facturation intégrés à une application ne peuvent être testés qu'avec un apk signé par une version (celle que nous avons téléchargée sur la console Google Play).

Voici quelques étapes qui m'ont permis de joindre un apk signé avec Android Studio:

Je suis sous Windows. Cela aide d'avoir adb.exe dans le PATH, pour moi c'est:

C:\Utilisateurs {votre-nom-utilisateur}\AppData\Local\Android\sdk\platform-tools

  1. Dans la console Google Play, assurez-vous que l'application est publiée (<est une étape manuelle unique après son traitement initial) sur le canal alpha ou bêta et que vous disposez d'un compte de test gmail sous licence (dans la section Paramètres du compte) qui est: également dans la liste des testeurs alpha/bêta et n'est pas le propriétaire du compte de l'application. Ce compte est le seul compte sur l'appareil. Libérez l'apk et assurez-vous que tout fonctionne à partir d'une version installée à partir du Play Store.
  2. Définissez les paramètres suivants: Dans AndroidManifest.xml sous application node
Android:debuggable="true"
tools:ignore="HardcodedDebugMode"

Et dans votre fichier build.gradle sous Android > buildTypes > release, ajoutez:

debuggable true

  1. Générer un fichier APK signé à partir d'Android Studio

  2. Connectez votre appareil pour le débogage USB. Supprimer l'installation actuelle:

adb uninstall {yourdomain}.{yourpackagename}

  1. Installez-le (à partir du chemin d'accès)

adb install app-release.apk

  1. Ouvrez l'application sur l'appareil. Dans le menu Run du studio Android Studio, la dernière option est "Attacher le débogueur au processus Android" - sélectionnez votre appareil. Vous êtes en train de déboguer.

NBpour la facturation in-app, le numéro de build doit correspondre à celui actuellement publié sur Play Store

42

Peut-être une autre approche:

Semblable dans la plupart des cas à ce qui est mentionné ici sauf que vous pointez simplement sur votre magasin de clés de version dans votre buildType de débogage.

Étapes exactes: 1) Dans votre application, le fichier Gradle de la balise Android ajoute une configuration de signature de version:

signingConfigs {
        release {
            storeFile file("Path_to_your_Production_release_Keystore.jks")
            storePassword 'your_keystore_password'
            keyAlias 'your_key_alias'
            keyPassword 'your_key_password'
        }
    }

et ajoutez la configuration de signature à votre buildType de débogage:

buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-project.txt', 'proguard-google-api-client.txt'
    }
    debug {
        signingConfig signingConfigs.release
        debuggable true
    }
}

2) Assurez-vous que les sections versionCode et versionName dans votre section d'applications> defaultConfig correspondent exactement à ce qui se trouve dans l'apk que vous avez chargé sur le Play Store:

defaultConfig {
    applicationId "com.groovypackagename.groovyapp"
    minSdkVersion 16
    targetSdkVersion 24
    versionCode 56
    versionName "0.9.6"
    multiDexEnabled true
    resConfigs "en"
}

3) Assurez-vous d'ajouter l'autorisation de facturation à votre manifeste:

<uses-permission Android:name="com.Android.vending.BILLING" />

4) N'oubliez pas d'ajouter vos produits IAB (In App Billing) conformément à la documentation.

5) Définissez vos points d'arrêt et le débogage comme d'habitude.

6) Après avoir utilisé votre code avec duperie, n'oubliez pas de nettoyer au moins les modifications apportées à votre fichier de notation, telles que la suppression de la configuration de la signature afin que vos mots de passe de restauration ne flottent pas dans l'espace.

Avec un peu de chance, vous pourrez faire un débogage local pour votre code IAB.

À votre santé.

3
SN Bliss

Je suppose que, lorsque vous initialisez l’aide à la facturation, vous lui fournissez une clé publique Base64 à partir de la console du développeur. Cette clé correspond à votre certificat de version.

Le message que vous obtenez suggère que vous essayez probablement d'exécuter votre application en mode débogage. Cela signifie que votre application est signée à l'aide du certificat de débogage (par défaut). Si j'ai raison, cela explique pourquoi vous n'êtes pas authentifié.

Malheureusement, le seul moyen de tester la facturation intégrée à l'application consiste à utiliser une application signée à l'aide du certificat de version sur un appareil connecté à un compte, définie comme "Comptes Gmail avec accès test" et à publier votre application sur Google Play (alpha/bêta/production).

2
dev.bmax

Ce qui suit a fonctionné pour moi en lançant depuis mon IDE (Android Studio) 

1) Accédez à votre https://play.google.com/apps/publish/ Sous Compte de développeur/Paramètres/Détails du compte/Test de licence.

2) Ajoutez l'adresse e-mail 'Google Play' par défaut correspondant au périphérique que vous testez.

Source: https://engineering.memrise.com/faster-in-app-billing-subscriptions-testing-8e68551b4e2f

0
Mitch Thornton