App Signing ved Google Play har eksisteret siden 2017. Med App Signing administrerer Google dine app-signeringsnøgler og bruger dem til at signere dine APK’er med henblik på distribution. Det er valgfrit at tilmelde din app til App Signing. Du har måske besluttet at håndtere signeringen og opbevaringen af dine nøgler i stedet for at uploade dem til Google Play.
Nu har du ombestemt dig og ønsker, at Google skal administrere dine signeringsnøgler i stedet for at gøre det personligt. Eller du vil forsøge at reducere størrelsen af din app og forenkle udgivelsesprocessen med Android App Bundle, men du er forpligtet til at bruge App Signing til det. Så hvordan kan du tilmelde dine eksisterende apps til App Signing?
Tilmelding til App Signing by Google Play
Hvor du tilmelder din app til App Signing by Google Play, er der to ting, du skal vide. For det første er der ingen opt-out-mulighed, så sørg for, at du er klar til det. Desuden vil du ikke kunne downloade dine app-signeringsnøgler fra Google Play, så hvis du får brug for dem i fremtiden, skal du gemme dem et sikkert sted.
For at tilmelde din app til App Signing skal du uploade din app-signeringsnøgle til Google Play. Åbn din app i Google Play-konsollen, og naviger til Release Management > App Signing (Release > Setup > App Signing i den nye Google Play-konsol). Læs og accepter vilkårene.
Der er tre muligheder for at eksportere og uploade din app-signeringsnøgle: fra Android Studio, fra en Java-keystore og fra din nøgle (hvis du ikke bruger en Java-keystore).
Eksportér og upload en nøgle fra Android Studio
Det er nemmest at eksportere din app-signeringsnøgle ved at bruge Android Studio. Åbn menuen Build, og klik derefter på Build > Generer signeret bundle / APK… I dialogboksen Generer signeret bundle eller APK skal du vælge Android App Bundle og derefter klikke på Næste. Vælg Eksporter krypteret nøgle til registrering af offentliggjorte apps i Google Play App Signing, angiv den placering, hvor du vil eksportere den, og klik derefter på Næste. Android Studio genererer bundtet og eksporterer private_key.pepk i den mappe, du har angivet.
Vælg “Eksportér og upload en nøgle fra Android Studio” på siden Google Play Console App Signing, og upload den nøgle, som Android Studio har genereret.
Eksportér og upload en nøgle fra et Java-keystore
Hvis du bruger et Java-keystore til at signere dine apps, skal du vælge “Eksportér og upload en nøgle fra et Java-keystore” på siden Google Play Console App Signing på siden Google Play Console App Signing. Download værktøjet Play Encrypt Private Key (PEPK) fra konsollen, og gem det på din foretrukne placering. Bemærk også krypteringsnøglen i vejledningen.
PEPK-værktøjet er en JAR-fil, som giver dig mulighed for at eksportere og kryptere din nøgle til signering af appen. Hvis du f.eks. har følgende:
* PEPK-værktøjet i /Users/admin/Downloads
* app-signeringsnøglen signning-key.jks, der har “release” som alias, og som ligger i samme mappe som pepk.jar
* krypteret nøgle fra Google Play-konsollen med værdien encryptionkeyfromtheconsole
kan du eksportere nøglen til encryptedkey.pepk ved hjælp af følgende kommando:
java -jar /Users/admin/Downloads/pepk.jar – keystore=signing-key.jks – alias=release – output=/Users/admin/Downloads/encryptedkey.pepk – encryptionkey=encryptionkeyfromtheconsole
Terminalen vil bede dig om adgangskoden til keystore og nøglen. Når du har indtastet dem, vil kommandoen generere filen encryptedkey.pepk i mappen /Users/admin/Downloads/. Vælg “Eksportér og upload en nøgle fra Java-keystore” på siden Google Play Console App Signing, og upload filen encryptedkey.pepk.
Eksportér og upload en nøgle (ikke ved hjælp af en Java-keystore)
Hvis din app-signeringsnøgle ikke blev lavet ved hjælp af en Java-keystore, skal du vælge indstillingen “Eksportér og upload en nøgle (ikke ved hjælp af en Java-keystore)” på siden Google Play Console App Signing. Du kan downloade PEPK-værktøjets kildekode og bruge den hex-kodede offentlige nøgle, der er angivet i konsollen, til at eksportere din private nøgle.
Vælg “Eksporter og upload en nøgle (bruger ikke Java Keystore)” på siden Google Play Console App Signing, og upload den nøgle, du har eksporteret.
Opretning af en uploadnøgle
En uploadnøgle er den nøgle, du skal bruge til at signere dit appbundle eller APK, før du offentliggør det på Google Play. Du kan bruge den samme signeringsnøgle som uploadnøglen, så din proces vil være den samme som den, du gjorde før. Det er dog bedre at bruge en anden uploadnøgle, så appens signeringsnøgle ikke bliver kompromitteret.
For at oprette en uploadnøgle til din app skal du oprette en ny signeringsnøgle og uploade dens offentlige certifikat (i PEM-format). Du kan oprette en ny nøgle i Android Studio. Klik på Build > Generer signeret bundle / APK… I dialogboksen Generer signeret bundle eller APK skal du vælge enten Android App Bundle eller APK og derefter klikke på Næste. Klik på knappen Create new… (Opret ny…) under indtastningsteksten Key store path (sti til nøgleopbevaring). Angiv oplysningerne i dialogboksen Nyt nøglelager, og klik derefter på OK.
Lad os sige, at din nye upload-nøgle er upload-key.jks med “alias” som alias, kan du eksportere dens nøgle til upload-cert.pem ved at køre følgende kommando:
keytool -export -rfc -keystore upload-key.jks -alias alias -file upload-cert.pem
Terminalen vil bede dig om adgangskoden til keystore. Når du har angivet det med succes, vil kommandoen generere filen upload-cert.pem. Du kan derefter uploade denne PEM-fil i Google Play Console. Nu skal du signere de næste app-opdateringer med upload-key.jks-uploadnøglen.
Hvad er det næste?
Når du har uploadet app-signeringsnøglen (og oprettet en ny uploadnøgle), kan du klikke på knappen Afslut (Gem i den nye Google Play-konsol) for at gemme ændringerne. Du vil se en meddelelse om, at app-signering nu er aktiveret for appen. Du kan nu bruge Android App Bundle til at offentliggøre din næste opdatering.
Siden App Signing viser også certifikaterne for app-signeringsnøglen og uploadnøglen sammen med deres nøglesignaturer (MD5, SHA-1, SHA-256), som du skal bruge til nogle API’er.