web-dev-qa-db-de.com

Kann ich die In-App-Abrechnung von Google Play in Android Studio lokal debuggen?

Ich erhalte diesen Fehler beim Testen der In-App-Abonnementprodukte lokal. 

authentifikation ist erforderlich. Sie müssen sich bei Ihrem Google-Konto anmelden

Ich konnte den Bestand des Produkts überprüfen, aber sollte ich es nicht auch kaufen können?

Es gibt eine Reihe von Beiträgen, warum dieser Fehler auftreten könnte, von dem ich dachte, dass er angesprochen wurde:

  • das Produkt wird im Beta-Kanal mit aktivierter In-App-Abrechnung veröffentlicht
  • ich bin mit einem lizenzierten Testbenutzerkonto auf dem Gerät im Play Store angemeldet.

Ist der einzige Weg, um tatsächliche Einkäufe über die Beta-/Alpha-Kanäle zu testen - nicht direkt aus dem Android-Studio. Dieser Beitrag schlägt es möglich vor (siehe Screenshot)

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

15

Im Wesentlichen können In-App-Abrechnungszahlungen nur mit einem Release-signierten apk getestet werden (dem, das wir in Google Play Console hochladen).

Hier sind einige Schritte, die mich mit Android Studio an ein signiertes apk gebunden haben:

Ich bin unter Windows. Es hilft, adb.exe im PATH zu haben, für mich heißt das:

C:\Benutzer {Ihr Benutzername}\AppData\Local\Android\sdk\platform-tools

  1. Stellen Sie in der Google Play Console sicher, dass sich die App veröffentlicht (<ist ein einmaliger manueller Schritt nach ihrer anfänglichen Verarbeitung) im Alpha- oder Betakanal befindet und dass Sie über ein lizenziertes Test-Gmail-Konto (aus dem Abschnitt Kontoeinstellungen) verfügen auch in der Liste der Alpha/Beta-Tester und ist nicht der Besitzer des App-Kontos. Dieses Konto ist das einzige Konto auf dem Gerät. Geben Sie die apk frei und stellen Sie sicher, dass alles von einer installierten Version aus dem Play Store funktioniert.
  2. Haben Sie folgende Einstellungen: In AndroidManifest.xml unter application-Knoten
Android:debuggable="true"
tools:ignore="HardcodedDebugMode"

Fügen Sie in Ihrer build.gradle-Datei unter Android > buildTypes > release Folgendes hinzu:

debuggable true

  1. Generieren Sie eine signierte APK von Android Studio

  2. Schließen Sie Ihr Gerät für das USB-Debugging an. Aktuelle Installation entfernen:

adb uninstall {yourdomain}.{yourpackagename}

  1. Installieren Sie es (aus dem Veröffentlichungspfad)

adb install app-release.apk

  1. Öffnen Sie die App auf dem Gerät. Die letzte Option im Android-Menü Run ist "Debugger an Android-Prozess anhängen" - Wählen Sie Ihr Gerät aus. Sie debuggen jetzt.

NBFür die In-App-Abrechnung muss die Build-Nummer mit der aktuell im Play Store veröffentlichten Nummer übereinstimmen

42

Vielleicht ein anderer Ansatz:

Ähnlich wie hier erwähnt, mit dem Unterschied, dass Sie nur auf den Release-Keystore in Ihrem DebugbuildType zeigen.

Genaue Schritte: 1) Fügen Sie in der Gradle-Datei Ihrer Anwendung im Tag Android eine Versionssignatur hinzu:

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

und fügen Sie die signing config zu Ihrem debug buildType hinzu:

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) Stellen Sie sicher, dass der Abschnitt versionCode und versionName in Ihrem App-Bereich> defaultConfig genau mit dem übereinstimmt, was sich in der apk befindet, die Sie in den Play Store hochgeladen haben:

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

3) Stellen Sie sicher, dass Sie die Abrechnungsberechtigung zu Ihrem Manifest hinzufügen:

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

4) Vergessen Sie nicht, Ihre IAB-Produkte (In App Billing) gemäß den Dokumenten hinzuzufügen

5) Legen Sie Ihre Haltepunkte fest und debuggen Sie wie üblich.

6) Nachdem Sie Ihren Code erfolgreich ausgetrickst haben, vergessen Sie nicht, mindestens die Änderungen in Ihrer Gradle-Datei zu bereinigen, z.

Mit etwas Glück können Sie lokales Debugging für Ihren IAB-Code durchführen.

Prost.

3
SN Bliss

Ich gehe davon aus, dass Sie bei der Initialisierung des "Abrechnungshelfer" einen öffentlichen Base64-Schlüssel von der Entwicklerkonsole aus bereitstellen. Dieser Schlüssel entspricht Ihrem Freigabezertifikat.

Die Nachricht zeigt an, dass Sie wahrscheinlich versuchen, Ihre App im Debug-Modus auszuführen. Das bedeutet, dass Ihre App mit dem Debug-Zertifikat (einem Standardzertifikat) signiert ist. Wenn ich recht habe, erklärt das, warum Sie nicht authentifiziert werden.

Die einzige Möglichkeit, die In-App-Abrechnung zu testen, besteht in einer App, die mit dem Freigabezertifikat signiert ist, auf einem Gerät, das bei einem Konto angemeldet ist und als "Google Mail-Konten mit Testzugriff" definiert ist. Die App muss veröffentlicht werden zu Google Play (Alpha/Beta/Produktion).

2
dev.bmax

Folgendes funktionierte für mich beim Starten von meinem IDE (Android Studio) 

1) Gehen Sie zu Ihrem https://play.google.com/apps/publish/ Unter Entwicklerkonto/Einstellungen/Kontodetails/Lizenzprüfung

2) Fügen Sie die E-Mail-Adresse "Standard Google Play" hinzu, die dem von Ihnen getesteten Gerät entspricht

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

0
Mitch Thornton