So aktivieren Sie die Google Play App Signing

110

Ich denke, viele Entwickler versuchen, mehr über die neue Google Play App Signing-Funktion zu erfahren, die auf der Google I / O 2017 vorgestellt wird.

Die Möglichkeit, den Keystore zum Signieren der Apps in Google Play zu speichern, erspart Ihnen den Aufwand, den Keystore sicher zu speichern, und kann dem System helfen, die auf jedem Gerät bereitgestellten APKs basierend auf den Hardware- und Betriebssystemmerkmalen zu optimieren.

Weitere Informationen zu diesem Thema finden Sie in der offiziellen Dokumentation hier: https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing .

Mit der folgenden Antwort erkläre ich etwas besser die Schritte, die Sie zum Hochladen Ihres ursprünglichen Keystores ausführen müssen, und wie Sie den neuen Upload-Keystore erstellen, den Sie ab diesem Zeitpunkt zum Signieren Ihrer APK benötigen.

MatPag
quelle

Antworten:

189

Dieses Handbuch richtet sich an Entwickler, die bereits eine Anwendung im Play Store haben. Wenn Sie mit einer neuen App beginnen, ist der Vorgang viel einfacher und Sie können von hier aus den Richtlinien des Absatzes "Neue Apps" folgen

Voraussetzungen, die 99% der Entwickler bereits haben :

  1. Android Studio

  2. JDK 8 und nach der Installation müssen Sie eine Umgebungsvariable in Ihrem Benutzerbereich einrichten, um Terminalbefehle zu vereinfachen. In Windows x64 müssen Sie Folgendes hinzufügen: C:\Program Files\Java\{JDK_VERSION}\binzur PathUmgebungsvariablen. (Wenn Sie nicht wissen, wie das geht, können Sie meine Anleitung lesen, um der Windows 10- PathUmgebungsvariablen einen Ordner hinzuzufügen .)

Schritt 0 : Öffnen Sie die Google Play-Entwicklerkonsole und gehen Sie zu Release Management -> App Signing .

Geben Sie hier die Bildbeschreibung ein

Akzeptieren Sie die App Signing TOS.

Geben Sie hier die Bildbeschreibung ein

Schritt 1 : Laden Sie das PEPK-Tool herunter und klicken Sie auf die Schaltfläche, die mit dem folgenden Bild identisch ist

Geben Sie hier die Bildbeschreibung ein

Schritt 2 : Öffnen Sie ein Terminal und geben Sie Folgendes ein:

java -jar PATH_TO_PEPK --keystore = PATH_TO_KEYSTORE --alias = ALIAS_YOU_USE_TO_SIGN_APK --output = PATH_TO_OUTPUT_FILE --encryptionkey = GOOGLE_ENCRYPTION_KEY

Legende:

  • PATH_TO_PEPK = Der Pfad zu pepk.jar, den Sie in Schritt 1 heruntergeladen haben , könnte C:\Users\YourName\Downloads\pepk.jarfür Windows-Benutzer ähnlich sein .
  • PATH_TO_KEYSTORE = Pfad zum Keystore, mit dem Sie Ihre Release-APK signieren. Könnte eine Datei vom Typ * .keystore oder * .jks oder ohne Erweiterung sein. So etwas wie C:\Android\mykeystoreoder C:\Android\mykeystore.keystoreetc ...
  • ALIAS_YOU_USE_TO_SIGN_APK = Der Name des Alias, mit dem Sie die Release-APK signieren.
  • PATH_TO_OUTPUT_FILE = Der Pfad der Ausgabedatei mit der Erweiterung .pem, so etwas wieC:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY = Dieser Verschlüsselungsschlüssel sollte immer gleich sein. Sie finden es auf der Seite App-Signierung. Kopieren Sie es und fügen Sie es ein. Sollte in dieser Form sein:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Beispiel:

java -jar "C: \ Benutzer \ Ihr Name \ Downloads \ pepk.jar" --keystore = "C: \ Android \ mykeystore" --alias = myalias --output = "C: \ Android \ private_key.pem" - Verschlüsselungsschlüssel = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b6

Drücken Sie die Eingabetaste und Sie müssen Folgendes angeben:

  1. Das Keystore-Passwort
  2. Das Alias-Passwort

Wenn alles in Ordnung ist, haben Sie jetzt eine Datei im Ordner PATH_TO_OUTPUT_FILE mit dem Namen private_key.pem.

Schritt 3 : Laden Sie die Datei private_key.pem hoch und klicken Sie auf die Schaltfläche, die mit dem Bild unten identisch ist

Geben Sie hier die Bildbeschreibung ein

Schritt 4 : Erstellen Sie mit Android Studio eine neue Keystore-Datei.

SIE BRAUCHEN DIESEN KEYSTORE IN DER ZUKUNFT, UM DIE NÄCHSTEN VERÖFFENTLICHUNGEN IHRER APP ZU UNTERZEICHNEN. VERGESSEN SIE DIE PASSWÖRTER NICHT

Öffnen Sie eines Ihrer Android-Projekte (wählen Sie eines nach dem Zufallsprinzip aus). Gehen Sie zu Erstellen -> Signierte APK generieren und klicken Sie auf Neu erstellen .

Geben Sie hier die Bildbeschreibung ein

Jetzt sollten Sie die erforderlichen Felder ausfüllen.

Der Schlüsselspeicherpfad stellt den neuen Schlüsselspeicher dar, den Sie erstellen werden. Wählen Sie einen Ordner und einen Namen mithilfe des 3-Punkte-Symbols auf der rechten Seite aus C:\Android\upload_key.jks(die Erweiterung .jks wird automatisch hinzugefügt).

HINWEIS: Ich habe uploadden neuen Aliasnamen verwendet. Wenn Sie jedoch zuvor denselben Keystore mit unterschiedlichen Aliasnamen zum Signieren verschiedener Apps verwendet haben, sollten Sie denselben Aliasnamen auswählen, den Sie zuvor im ursprünglichen Keystore hatten.

Geben Sie hier die Bildbeschreibung ein

Drücken Sie OK, wenn Sie fertig sind, und Sie haben jetzt einen neuen upload_key.jksSchlüsselspeicher. Sie können Android Studio jetzt schließen.

Schritt 5 : Wir müssen das Upload-Zertifikat aus dem neu erstellten upload_key.jksKeystore extrahieren . Öffnen Sie ein Terminal und geben Sie Folgendes ein:

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -file PATH_TO_OUTPUT_FILE

Legende:

  • UPLOAD_KEYSTORE_PATH = Der Pfad des soeben erstellten Upload-Keystores. In diesem Fall war C:\Android\upload_key.jks.
  • UPLOAD_KEYSTORE_ALIAS = Der neue Alias, der dem Upload-Keystore zugeordnet ist. In diesem Fall war upload.
  • PATH_TO_OUTPUT_FILE = Der Pfad zur Ausgabedatei mit der Erweiterung .pem. So etwas wie C:\Android\upload_key_public_certificate.pem.

Beispiel:

keytool -export -rfc -keystore "C: \ Android \ upload_key.jks" -alias upload -file "C: \ Android \ upload_key_public_certificate.pem"

Drücken Sie die Eingabetaste und Sie müssen das Keystore-Passwort eingeben.

Wenn nun alles in Ordnung ist, wird eine Datei im Ordner PATH_TO_OUTPUT_FILE aufgerufen upload_key_public_certificate.pem.

Schritt 6 : Laden Sie die upload_key_public_certificate.pemDatei hoch, indem Sie auf die Schaltfläche klicken, die mit dem Bild unten identisch ist

Geben Sie hier die Bildbeschreibung ein

Schritt 7 : Klicken Sie am Ende der App- Signaturseite auf die Schaltfläche ANMELDEN .

Geben Sie hier die Bildbeschreibung ein

Jetzt muss jede neue APK-Version mit dem upload_key.jksin Schritt 4 erstellten Schlüsselspeicher und Aliasnamen signiert werden , bevor sie in die Google Play Developer-Konsole hochgeladen wird.

Mehr Ressourcen:

Fragen und Antworten

F: Wenn ich die mit dem neuen Keystore upload_key signierte APK hochlade, zeigt Google Play einen Fehler wie: Sie haben eine nicht signierte APK hochgeladen. Sie müssen eine signierte APK erstellen .

A: Überprüfen Sie, ob die APK mit beiden Signaturen (V1 und V2) signiert ist, während Sie die Release-APK erstellen. Lesen Sie hier für weitere Details.

AKTUALISIERT

In Schritt 4,5,6 wird ein Upload-Schlüssel erstellt, der für vorhandene Apps optional ist

"Upload-Schlüssel (optional für vorhandene Apps): Ein neuer Schlüssel, den Sie während Ihrer Registrierung im Programm generieren. Mit dem Upload-Schlüssel signieren Sie alle zukünftigen APKs, bevor Sie sie auf die Play Console hochladen." https://support.google.com/googleplay/android-developer/answer/7384423

MatPag
quelle
3
Ihre Komplettlösung ist super hilfreich! Sie sollten es auf die offizielle Website stellen lol Die Pfadnamen für Ihre Beispiele fehlen "_" Anführungszeichen, die einen Fehler auf W10 Console
NukeouT
3
Die Anführungszeichen werden nur benötigt, wenn Sie mindestens ein Leerzeichen in Ihren Pfaden haben. Auf diese Weise funktioniert jedoch jeder Konsolenbefehl. Sie müssen also die Anführungszeichen verwenden, wenn Ihr Pfad lautet: "C:\My Path\MyName"aber nicht, wenn der Pfad lautet C:\MyPath\MyName. Übrigens danke :)
MatPag
1
@layth Das Erstellen des neuen Keystores ist das Step 4des Handbuchs: D
MatPag
1
Ich habe das getan, aber als ich Ihr neues Keystore-Dialogfeld erhielt, waren die Felder für den Keystore-Pfad und das Kennwort leer. Ich habe sie auf den alten Keystore gerichtet und das alte Kennwort eingegeben. Datei PATH_TO_OUTPUT_FILE "beschwert sich immer wieder, dass sie nicht weiß, was Keytool bedeutet. Ich habe versucht, "C: \ Programme \ Java \ jdk1.8.0_25 \ bin \ keytool.exe" hinzuzufügen, aber das hat nicht funktioniert, möglicherweise weil ich nicht weiß, wo ich es genau
einfügen soll
9
Es sieht so aus, als hätte Google das Verfahren geändert, da ich das PEPK-Tool nicht mehr finden kann.
Andrea Motto
30

Es gibt eine viel einfachere Lösung, die eine Minute dauert.

  1. Wählen Sie in der Google Play-Konsole Release-Verwaltung -> App-Signatur aus
  2. Wählen Sie die erste Option, die mit Generieren eines verschlüsselten privaten Schlüssels mit Android Studio (oder so ähnlich; ich kann nicht mehr zurückkehren, um diese Seite zu sehen).
  3. Generieren Sie in Android Studio Ihr Android App Bundle (.aap-Datei) über Build -> Generate Signed Bundle / APK ... , wählen Sie die Option Android App Bundle und vergessen Sie nicht, den verschlüsselten Schlüssel exportieren zu aktivieren (erforderlich, um Ihre App Google Play App zu registrieren Signatur) Option. Wenn Sie keinen Keystore generiert haben, generieren Sie einen Ad-hoc.
  4. Nun der "knifflige" Teil. Nachdem die .aap-Datei generiert wurde, zeigt Android Studio in der unteren rechten Ecke eine Benachrichtigung mit einem Pfad zu dem Speicherort an, an dem die .aap-Datei gespeichert ist. Wenn Sie es erweitern, finden Sie in derselben Benachrichtigung einen weiteren Link zu dem Pfad, in dem der private Schlüssel gespeichert wurde ( private_key.pepk ). Wenn Sie diese Benachrichtigung verpassen, machen Sie sich keine Sorgen. Öffnen Sie einfach das Fenster " Ereignisprotokoll" , indem Sie unten rechts auf die Schaltfläche " Ereignisprotokoll" klicken. Dort finden Sie dieselben Informationen. Öffnen Sie diesen Speicherort. Für mich war C: \ Users \ yourUser \ .android

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie zurück in den Browser und drücken Sie die APP SIGNING PRIVATE KEY-Taste und navigieren Sie zum privaten Schlüssel auf Ihrem Computer.

Getan!

Jetzt können Sie Ihre zuvor generierte Version hochladen :) Viel Glück!

Marius Tanasoiu
quelle
1
Es ist die beste und einfachere Antwort
Simon
Spart mir so viel Zeit und vor allem Seelenfrieden
Meenohara
Ich erhalte diese Option nicht. Option zum Verschlüsseln des Schlüssels exportieren (erforderlich, um Ihre App zu registrieren. Google Play App-Signatur).
Jarvis
Ich würde mich sehr über eine ausführlichere Erklärung von Punkt 5 freuen. Ich sehe diese Schaltfläche nicht. Wo ist sie? Vielleicht hat sich das Layout bei den letzten Updates geändert.
AndroidNil
ok schön jetzt möchte ich beim nächsten update neugierig werden was zu tun ist ?? Zum Beispiel brauchen wir wieder einen .pepk-Schlüssel oder wir müssen die Version 2 mit demselben Schlüssel oder dem neuen privaten .pepk-Schlüssel signieren. Bitte helfen Sie
Sunil Chaudhary
14

Während der Migration der Android-Anwendungspaketdatei (APK) zum Android App Bundle (AAB) und der Veröffentlichung der App im Play Store trat dieses Problem auf und wurde wie folgt behoben:

Beim Erstellen einer .aabDatei werden Sie aufgefordert, den Speicherort für den Schlüsselexportpfad wie folgt anzugeben:

Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein Im zweiten Bild finden Sie den Exportpfad für verschlüsselte Schlüssel. Speicherort, an dem unser .pepk beim Generieren der .aab-Datei im jeweiligen Ordner gespeichert wird.

Sobald Sie sich mit Anmeldeinformationen für den Play Store bei der Google Play Console angemeldet haben, wählen Sie Ihr Projekt auf der linken Seite aus und wählen Sie die Option App-Signierung Release-Verwaltung >> App-Signierung Geben Sie hier die Bildbeschreibung ein

Sie finden das Fenster Google App Signing Certification ACCEPT.

Danach finden Sie drei Optionsfelder auswählen **

Laden Sie einen aus dem Optionsfeld Android Studio exportierten Schlüssel hoch

**, es wird Ihre APP SIGNING PRIVATE KEY-Schaltfläche wie unten erweitert

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf die Schaltfläche und wählen Sie die .pepkDatei aus (Wir haben sie beim Generieren der .aabDatei wie oben gespeichert).

Lesen Sie alle anderen Optionen und senden Sie sie ab.

Sobald dies erfolgreich ist, können Sie zur App-Version zurückkehren, die .aab-Datei durchsuchen und RollOut ...

@ Ambilpura

Ambilpura Sunil Kumar
quelle
ok schön jetzt möchte ich beim nächsten update neugierig werden was zu tun ist ?? Zum Beispiel brauchen wir wieder einen .pepk-Schlüssel oder wir müssen die Version 2 mit demselben Schlüssel oder dem neuen privaten .pepk-Schlüssel signieren. Bitte helfen Sie
Sunil Chaudhary
Nach meinem Verständnis müssen Sie für das nächste Mal nichts erstellen. Sie können den alten .pepk-Schlüssel verwenden.
Ambilpura Sunil Kumar
Wie benutzt man die .pepk für ein Update? Ich habe erfolgreich Google App Signing beim Hochladen meiner App verwendet, aber jetzt versuche ich, ein Update zu pushen und weiß nicht, wie @AmbilpuraSunilKumar
nt95
Hier gilt das gleiche. Ich lade einfach den Abb in den Play Store hoch und ignoriere die .pepk-Datei vollständig. Es wäre schön zu wissen, wozu es gut ist und was zu tun ist, wenn die App aktualisiert wird.
Julian Eggers
4

Ich musste folgendes tun:

  1. Erstellen Sie eine App in der Google Play Console Geben Sie hier die Bildbeschreibung ein

2.Gehen Sie zu App-Releases -> Produktion verwalten -> Release erstellen

3.Klicken Sie auf Google Play App Signing weiter Geben Sie hier die Bildbeschreibung ein

4.Erstellen Sie das Upload-Zertifikat, indem Sie "keytool -genkey -v -keystore c: \ path \ to \ cert.keystore -alias uploadKey -keyalg RSA -keysize 2048 -validity 10000" ausführen.

5.Signiere deine Apk mit dem generierten Zertifikat (c: \ path \ to \ cert.keystore)

6.Laden Sie signierte apk in App-Releases hoch -> Produktion verwalten -> Release bearbeiten

7. Durch das Hochladen von apk wurde das in Schritt 4 generierte Zertifikat zu App Signing-Zertifikaten hinzugefügt und wurde zu Ihrem Signaturzertifikat für alle zukünftigen Builds.

es ist falsch
quelle
1
Ich habe genau das getan, aber die Google-Anmeldung in meiner App funktioniert nicht, wenn ich die App über den Google Play Store installiere. * Aber * wenn ich die apk von der Release-Management-Seite herunterlade und manuell in meinem Emulator / Gerät installiere, funktioniert es. Irgendeine Idee, was mir fehlt?
Raghudevan Shankar
Ich habe ungefähr 3 Stunden lang überall gesucht und du hast mich endlich gerettet!
Oliver Dixon
3

Wenn Sie Fabric für öffentliche Betaversionen verwenden (signiert mit prod config), verwenden Sie die Google Play App Signing NICHT . Sie müssen nach dem Bau zwei signierte apks!

Wenn Sie an weitere Spieleläden (Samsung, Amazon, Xiaomi, ...) verteilen, müssen Sie erneut zwei signierte Apks erstellen.

Seien Sie also bei der Signierung von Google Play App sehr vorsichtig.

Es ist nicht möglich, es zurückzusetzen: / und Google Play hat keine mit dem Produktionsschlüssel signierten Apks akzeptiert. Nach dem Aktivieren der Google Play App-Signierung wird nur der Upload-Schlüssel akzeptiert ...

Es erschwert die CI-Verteilung wirklich ...

Nächste Probleme beim Upgrade: https://issuetracker.google.com/issues/69285256

mtrakal
quelle
1
Fettgedruckte DON'T USEKommentare sind gefährlich. Können Sie das Problem und die empfohlene Lösung ausführlich erläutern? Gibt es überhaupt keine Lösung? Ist es so schwer, zweimal eine APK für Fabric zu unterschreiben?
Gokhan Arik
1
Es ist nicht so schwer, APK zweimal zu signieren, aber wie ich beschreibe, müssen Sie zwei (oder mehr) APKs erstellen, die nicht identisch sind (Sie testen also auf Fabric Beta eine andere Datei als die, die im Play Store veröffentlicht wird). Es verliert den Sinn, die Produktion auf Betatestern aufzubauen ... Sie testen eine andere Datei :). Es ist nur eine Warnung für Leute, die eine komplexe CI / CD haben, dass sie sie ändern müssen ...
mtrakal
2
Beachten Sie, dass Google Play jetzt auch nach der Registrierung für die App-Signatur mit dem Produktionsschlüssel signierte APKs akzeptiert.
Pierre
2

Mach Folgendes :

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button
Sterling Diaz
quelle
Kann ich danach wie zuvor im App-Kauf testen und Dienste spielen? Hast du irgendwelche Erfahrungen damit gemacht? Denn auch ich mache keine schweren Schritte.
Siddharth
1
Nicht wirklich eine angemessene Antwort für "So aktivieren Sie die Google Play App Signing" ...
Ben Madsen
2
Und was schlagen Sie als geeigneten Weg vor, um dies zu tun?
Sterling Diaz