8 Stimmen

Android-Lizenz-Testantwort - funktioniert nie

Ich habe an einer Android-App gearbeitet, die bereits bei Google Play veröffentlicht wurde. Für das nächste Update (versionCode = 3) möchte mein Kunde das LVL-Lizenzierungssystem integrieren.

Als erstes habe ich eine statische Testantwort vom Lizenzierungsserver erstellt. Ich setzte die Testantwort auf LIZENZIERT . Nachdem ich dies in der Dokumentation gelesen habe:

Diese Lizenztestantwort wird an Geräte gesendet, die oder die oben aufgeführten Testkonten für Anwendungen, die Sie auf Google Play hochgeladen haben. >Zusätzlich erhält dieses Konto (aber nicht die Testkonten) diese Antwort für >Anwendungen, die noch nicht zu Google Play hochgeladen wurden.

Ich dachte, das sei kein Problem, da die E-Mail meines Entwicklerkontos mit der E-Mail meines Google Play-Kontos auf meinen Testgeräten übereinstimmt. Ich sollte also die Testantwort erhalten, wenn ich die App debugge.

Danach habe ich alle anderen Lizenzierungsunterlagen und den Beispielcode durchgelesen und in die App integriert. Ich habe eine ServerManagedPolicy mit dem korrekten öffentlichen base64-Schlüssel und 20 zufällig generierten Bytes als Salt.

Nachdem alles gut aussah, lud ich es auf das Gerät hoch, um es zu testen, aber statt der LIZENZIERT Reaktion, die ich erwartet hatte, bin ich siempre Erhalt einer NICHT_LIZENZIERT Antwort. Ich ging zurück und stellte sicher, dass:

  1. Ich war mit dem Internet verbunden.
  2. Ich war in meinem Entwicklerkonto bei Google Play angemeldet.
  3. Der LicenseChecker hat den richtigen öffentlichen Schlüssel verwendet.
  4. Ich lösche meinen Google Play-Cache.

Zuerst dachte ich, dass es vielleicht etwas mit der Zwischenspeicherung zu tun hat, also habe ich versucht, eine StrictPolicy stattdessen. Dieselbe Antwort. Da ich die App nicht über den Store gekauft habe, habe ich den Eindruck, dass der Lizenzierungsserver normal zu antworten, anstatt die statische Testantwort zu senden . Hier sind einige andere Dinge, die ich ausprobiert habe:

  1. Warten Sie 24 Stunden und versuchen Sie es erneut.
  2. Ich habe versucht, die App sowohl mit dem Android-Debug-Schlüssel als auch mit dem aktuellen Verteilungsschlüssel zu erstellen.
  3. Einrichten und Verwenden eines anderen Testbenutzerkontos bei Google Play. Ich habe dafür gesorgt, dass dieses E-Mail-Konto zum Abschnitt "Testkonten" in der Entwicklerkonsole hinzugefügt wird.
  4. Die APK wird auf Google Play hochgeladen, aber nicht veröffentlicht.
  5. Erhöhen des versionCode von 2 auf 3. Dies ist interessant, denn anstatt zu antworten NICHT_LIZENZIERT gibt er den 'Anwendungsfehlercode' zurück ERROR_NOT_MARKET_MANAGED .

Dies führt mich zu der Annahme, dass der Lizenzserver immer normal antwortet, anstatt die statische Testantwort zu senden, die ich für mein Entwicklerkonto eingerichtet habe. Ich habe das Gefühl, dass es daran liegen könnte, dass die App bereits veröffentlicht ist, aber ich kann es nicht riskieren, einen Debug-Build zu veröffentlichen, nur um zu testen, ob es funktioniert oder nicht.

War jemand schon einmal in dieser Situation? Jede Hilfe wird sehr geschätzt.

2voto

rainman333 Punkte 31

Ich hatte das gleiche Problem, konnte es aber beheben. Hier sind die Dinge, die ich tat, um zu beheben: 1) Auf meinem Gerät habe ich alle Google-Konten mit Ausnahme des Testkontos, das ich eingerichtet hatte, entfernt. Anscheinend versuchte der Play Store immer noch, ein Nicht-Testkonto zu verwenden.

2) Ich musste den Teststatus für mein Entwicklerkonto aktivieren, obwohl ich der Hauptentwickler und einzige Tester bin.

die Versionserhöhung hat nicht geholfen und war ehrlich gesagt eine Ablenkung.....

1voto

logray Punkte 2322

Ich habe Stunden und sogar Tage mit dem gleichen Problem verbracht, es ist hier und anderswo dokumentiert, dass der vorveröffentlichte Lizenztest ein Volltreffer ist, und nach dem, was ich herausgefunden habe, mehr Volltreffer als Treffer.

Die einzige Möglichkeit, die ich gefunden habe, damit es "zuverlässiger" (aber immer noch nicht ganz zuverlässig) funktioniert, ist ein Hardware-Gerät, das auf die Werkseinstellungen zurückgesetzt wird, dann setzen Sie es PRIMARY Google-Benutzer als die gleiche wie Ihre Dev-Konto, das die App hochgeladen hat, mit zu testen.

Auch die speziellen AVDs sind nicht sehr zuverlässig.

0voto

Stang Texan Punkte 92

Ich habe das gleiche Problem, wenn ich die LVL-Bibliothek verwende. Ich erhalte immer die Antwort 561 (0x231 NOT_LICENSED), egal wie ich die Lizenztestantwort auf der Einstellungsseite einstelle.

Die Nutzer meiner kostenpflichtigen App scheinen sich nicht zu beschweren, also gehe ich davon aus, dass LVL für sie funktioniert.

Zuerst hatte eine meiner Anwendungen dieses Problem und es verschwand nach einem Tag (veröffentlicht am 30. Dezember 2012), jetzt erhalte ich eine gültige Testantwort in dieser Anwendung.

Ich erhalte jedoch immer noch die Antwort 561 (0x231 NOT_LICENSED) für eine neuere Anwendung (veröffentlicht am 31. Januar 2013)

Deshalb kommentiere ich jetzt einfach aus (deaktiviere den Code des Warndialogs, der bei 561 erscheint), nachdem ich die APK veröffentlicht habe, und setze meine Entwicklung für die nächste Version fort.

Ich entferne den Kommentar (aktiviere den Code für den Warndialog), bevor ich wieder veröffentliche!

Ich habe mich an Google Play gewandt und man hat mich an die Entwicklerforen verwiesen. Ich habe dort die gleiche Frage gestellt, aber ich kann meinen Beitrag nicht mehr finden.

Gut zu wissen, dass ich nicht der Einzige bin, der dieses Problem hat.

0voto

Joel Butler Punkte 171

Ich bin mir nicht sicher, ob ich etwas Neues hinzufüge, aber da ich ähnliche Probleme und Frustrationen in Bezug auf das, was passieren sollte, und das, was passiert, habe, werde ich das hier anbieten, was zu funktionieren schien: 1) Entfernen Sie alle Nutzer in der Lizenztestliste der Play Console; 2) entfernen Sie auf dem zu testenden Gerät alle Google-Konten; 3) erstellen Sie auf demselben Gerät ein neues, eindeutiges Google-Konto (z. B. iamalicensetester@gmail.com); 4) fügen Sie dieses Google-Konto zur Lizenztestliste der Play Console hinzu.

Ich denke, dass, wenn Sie mehr als ein Konto auf einem Gerät haben und eines davon lizenziert ist, ein nicht lizenziertes Konto desselben Geräts (oder anderer Geräte) diese Eigenschaft erbt. Diese Idee von mir ist nur ein Modell (alle Modelle sind falsch, aber einige sind nützlich), damit ich mich (hauptsächlich) wieder an die Arbeit des Testens machen kann... und (teilweise) um mir diesen Unsinn irgendwie erklären zu können.

Ich habe die meisten der oben genannten Dinge ausprobiert... den Cache löschen, den Speicher leeren, usw. -- Man sollte meinen, dass Google eine bessere Einrichtung mit Dashboarding wünscht, aber ich weiß nicht, ob das überhaupt auf ihrem Radar ist. Ich meine, Einnahmen, richtig?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X