Kontots ägare eller en användare med behörighet att publicera versioner i produktionskanalen, utesluta enheter och använda appsignering via Play kan samtycka till appsignering och måste även godkänna användarvillkoren för appsignering via Play.
Så fungerar det
När du använder appsignering via Play lagras nycklarna i samma säkra infrastruktur som Google använder för sina egna nycklar. Nycklarna skyddas av Googles nyckelhanteringstjänst. Du kan läsa mer om Googles infrastruktur i Google Clouds säkerhetsdokumentation.
Android-appar signeras med en privat nyckel. Privata nycklar har ett tillhörande offentligt certifikat, med vars hjälp en enhet eller tjänst kan verifiera att appuppdateringen kommer från samma källa. Därigenom kan uppdateringar göras på ett säkert sätt. En uppdatering tas bara emot om dess signatur stämmer med den installerade appens signatur. Om du låter Google hantera nyckeln för appsignering åt dig blir den här proceduren säkrare.
Obs! Om appen skapades före augusti 2021 kan du fortfarande ladda upp en APK-fil och hantera egna nycklar i stället för att använda appsignering via Play och publicera den med ett AAB-arkiv. Men om du skulle bli av med ditt keystore eller om det skulle hamna i orätta händer kan du inte uppdatera appen utan att publicera en ny app med nytt paketnamn. Play rekommenderar att du använder appsignering och byter till AAB-arkiv för sådana appar.
Beskrivningar av nycklar, biprodukter och verktygTerm | Beskrivning |
---|---|
Nyckel för appsignering |
Nyckeln som Google Play använder för att signera de APK-filer som skickas till en användares enhet. När du använder appsignering via Play kan du antingen ladda upp en befintlig nyckel för appsignering eller låta Google generera en åt dig. Håll nyckeln för appsignering hemlig. Däremot kan du dela appens offentliga certifikat med andra. |
Uppladdningsnyckel |
Den nyckel du använder när du signerar AAB-arkiv innan de laddas upp på Google Play. Håll uppladdningsnyckeln hemlig. Däremot kan du dela appens offentliga certifikat med andra. Av säkerhetsskäl är det lämpligt att använda olika nycklar för appsignering och uppladdning. Det finns två sätt att generera en uppladdningsnyckel på:
|
Certifikat (.der eller .pem ) |
Ett certifikat innehåller en offentlig nyckel samt ytterligare uppgifter som identifierar ägaren av nyckeln. Tack vare det offentliga nyckelcertifikatet kan vem som helst kontrollera vem som signerade AAB-arkivet eller APK-filen, och du kan dela det med andra eftersom det inte innehåller den privata nyckeln. Du kan ladda ned det offentliga certifikatet för nyckeln för appsignering och uppladdningsnyckeln på sidan Appsignering via Play (Testa och lansera > Konfiguration > Appsignering) på Play Console så att du kan registrera nyckeln eller nycklarna hos API-leverantörer. Det offentliga nyckelcertifikatet kan delas med andra. Det innehåller inte din privata nyckel. |
Fingeravtryck för certifikat |
En kort och unik identifierare av ett certifikat som många API-leverantörer frågar efter tillsammans med paketnamnet när du registrerar en app hos deras tjänst. På sidan Appsignering via Play (Testa och lansera > Konfiguration > Appsignering) på Play Console hittar du MD5-, SHA-1- och SHA-256-fingeravtryck för uppladdnings- och appsigneringscertifikaten. Du kan även beräkna andra fingeravtryck genom att ladda ned det ursprungliga certifikatet (.der ) på samma sida. |
Java-nyckellager (.jks eller .keystore ) |
En lagringsplats för säkerhetscertifikat och privata nycklar. |
PEPK-verktyget (Play Encrypt Private Key) |
Ett verktyg som används för att exportera privata nycklar från ett Java-nyckellager och kryptera dem innan de överförs till Google Play. När du tillhandahåller nyckeln för appsignering som Google ska använda väljer du alternativet för att exportera och ladda upp nyckeln (och dess offentliga certifikat om det behövs) och laddar ned och använder verktyget enligt anvisningarna. Du kan även ladda ned, granska och använda PEPK-verktygets öppna källkod. |
Så här går det till:
- Signera arkivet och ladda upp det på Play Console.
- Google genererar optimerade APK-filer från arkivet och signerar dem med nyckeln för appsignering.
- Google lägger till två stämplar i appens manifest (
com.android.stamp.source
ochcom.android.stamp.type
) med hjälp av apksigner och signerar sedan APK-filerna med nyckeln för appsignering. Med stämplarna som läggs till av apksigner går det att spåra APK-filer till den som signerade dem. - Google skickar signerade APK-filer till användarna.
Konfigurera och hantera appsignering via Play
Om appen ännu inte använder appsignering via Play följer du anvisningarna nedan.
Steg 1: Skapa en uppladdningsnyckel
- Skapa en uppladdningsnyckel enligt anvisningarna.
- Signera AAB-arkivet med uppladdningsnyckeln.
Steg 2: Förbered versionen
- Följ anvisningarna för att förbereda och lansera versionen.
- När du har valt lanseringskanal visas appens status för appsignering via Play i avsnittet Appintegritet.
- Ladda upp AAB-arkivet för att fortsätta med en nyckel för appsignering som Google genererat. Du kan även välja Byt nyckel för appsignering och välja något av följande alternativ:
- Använd en nyckel för appsignering som Google genererat: Över 90 % av nya appar använder nycklar för appsignering som Google genererat Nycklar som Google genererat går inte att tappa bort eller stjäla (nyckeln går inte att ladda ned). Om du väljer det här alternativet kan du ladda ned APK-filer för distribution från utforskaren för AAB-arkiv som signerats med nyckeln som Google genererat för andra distributionskanaler eller använda en annan nyckel för dem.
- Använd en annan nyckel för appsignering: Genom att välja nyckeln för appsignering kan du använda samma nyckel som för en annan app i utvecklarkontot eller spara en lokal kopia av nyckeln för appsignering för ökad flexibilitet. Du kanske till exempel redan har bestämt dig för att använda en viss nyckel eftersom appen är förinstallerad på vissa enheter. Om du har en kopia av nyckeln som inte lagras på Googles servrar ökar risken om den lokala kopian hamnar i orätta händer. Du har följande alternativ om du använder en annan nyckel:
- Använd samma nycklar för appsignering som för en annan app i detta utvecklarkonto.
- Exportera och ladda upp en nyckel från ett Java-keystore.
- Exportera och ladda upp en nyckel (inte från ett Java-keystore).
- Välj bort appsignering via Play (du bör bara välja det här alternativet om du planerar att uppgradera nyckeln för appsignering för att kunna registrera appen för appsignering via Play).
- Följ de återstående anvisningarna för hur du förbereder och lanserar versionen.
Obs! Du måste godkänna användarvillkoren och samtycka till att använda appsignering innan du kan fortsätta.
Steg 3: Registrera nyckeln för appsignering hos API-leverantörer
Om ett API används i appen måste du normalt registrera nyckeln för appsignering hos det för autentiseringens skull. För detta används certifikatets fingeravtryck. Här hittar du certifikatet:
- Öppna sidan Appsignering via Play på Play Console (Testa och lansera
> Konfiguration > Appsignering).
- Tips! Du kan även komma åt sidan via sidan Appintegritet (Testa och lansera > Appintegritet). Där hittar du integritets- och signeringstjänsterLINK 2 som hjälper dig att säkerställa att användarna får den avsedda upplevelsen i apparna och spelen.
- Scrolla till avsnittet Certifikat för nyckel för appsignering och kopiera fingeravtrycken (MD5, SHA-1 och SHA-256) för certifikatet för appsignering.
- Om API-leverantören vill ha en annan typ av fingeravtryck kan du ladda ned det ursprungliga certifikatet i
.der
-format och konvertera det med de omvandlingsverktyg som API-leverantören vill att du använder.
- Om API-leverantören vill ha en annan typ av fingeravtryck kan du ladda ned det ursprungliga certifikatet i
När du använder en nyckel som Google genererat skapas automatiskt en kryptografiskt stark RSA -nyckel med 4 096 bitar. Om du väljer att ladda upp en egen nyckel för appsignering måste det vara en RSA-nyckel med minst 2 048 bitar.
Steg 1: Konfigurera appsignering i Play
- Öppna sidan Appsignering via Play på Play Console (Testa och lansera
> Konfiguration > Appsignering).
- Tips! Du kan även komma åt sidan via sidan Appintegritet (Testa och lansera > Appintegritet). Där hittar du integritets- och signeringstjänsterLINK 2 som hjälper dig att säkerställa att användarna får den avsedda upplevelsen i apparna och spelen.
- Läs igenom användarvillkoren för appsignering via Play och välj Godkänn om du inte redan har gjort det.
Steg 2: Skicka en kopia av den ursprungliga nyckeln till Google och skapa en uppladdningsnyckel
- Plocka fram din ursprungliga nyckel för appsignering.
- Öppna sidan Appsignering via Play på Play Console (Testa och lansera > Konfiguration > Appsignering).
- Välj det alternativ för export och uppladdning som passar bäst för det sätt som du hanterar versioner på och ladda upp en nyckel för appsignering.
Steg 3: Skapa en uppladdningsnyckel (valfritt, rekommenderas)
- Skapa en uppladdningsnyckel och ladda upp certifikatet på Google Play.
- Du kan även fortsätta att använda nyckeln för appsignering som uppladdningsnyckel.
- Kopiera fingeravtrycken (MD5, SHA-1 och SHA-256) för certifikatet för appsignering.
- Du kan behöva registrera certifikatet för uppladdningsnyckeln hos API-leverantören under testfasen. För detta används certifikatets fingeravtryck och nyckeln för appsignering.
Steg 4: Signera nästa uppdatering med uppladdningsnyckeln
När du lanserar uppdateringar av appen måste du signera dem med uppladdningsnyckeln.
- Om du inte genererade någon ny uppladdningsnyckel: Fortsätt att signera AAB-arkiv med den ursprungliga nyckeln för appsignering innan du laddar upp dem på Google Play. Om du skulle bli av med den ursprungliga nyckeln för appsignering kan du generera en ny uppladdningsnyckel och registrera den hos Google så att du kan fortsätta uppdatera appen.
- Om du genererade en ny uppladdningsnyckel: Signera nya AAB-arkiv med den innan du laddar upp dem på Google Play. Google verifierar din identitet med hjälp av uppladdningsnyckeln. Om du skulle bli av med uppladdningsnyckeln kan du kontakta supporten och återställa den.
Du kanske vill göra detta om du inte kan dela din befintliga nyckel. Innan du uppgraderar nyckeln för appsignering och registrerar appen bör du tänka på följande:
- För det här alternativet krävs lansering i två delar.
- Du måste ladda upp ett AAB-arkiv och en APK-fil som signerats med den äldre nyckeln för varje version. Google Play genererar APK-filer som signerats med den nya nyckeln utifrån AAB-arkiven för enheter med Android R* (API-nivå 30) eller senare. De äldre APK-filerna används för äldre Android-versioner (till och med API-nivå 29).
*Om appen använder sharedUserId
rekommenderar vi att du tillämpar en nyckeluppgradering för installationer och uppdateringar på enheter med Android T (API-nivå 33) eller senare. För att konfigurera detta anger du en korrekt lägsta SDK-version i paketkonfigurationen.
Steg 1: Ladda upp den nya nyckeln och generera och ladda upp en verifieringskedja
Om den nya nyckeln ska vara betrodd på Android-enheter måste du ladda upp en ny nyckel för signering från en lagringsplats samt generera och ladda upp en verifieringskedja:
- Öppna sidan Appsignering via Play på Play Console (Testa och lansera
> Konfiguration > Appsignering).
- Tips! Du kan även komma åt sidan via sidan Appintegritet (Testa och lansera > Appintegritet). Där hittar du integritets- och signeringstjänsterLINK 2 som hjälper dig att säkerställa att användarna får den avsedda upplevelsen i apparna och spelen.
- Välj fliken Appsignering.
- Klicka på Visa avancerade alternativ och välj Använd en ny nyckel för appsignering (för detta krävs pågående lansering i två delar).
- Använd samma nyckel för appsignering som en annan app i utvecklarkontot eller ladda upp en ny nyckel för appsignering från Android Studio, Java KeyStore eller en annan lagringsplats.
- Ladda ned och kör PEPK-verktyget enligt anvisningarna på skärmen.
- När ZIP-filen är klar klickar du på Ladda upp genererad ZIP-fil och laddar upp den till Play Console.
- Bredvid ”5. Gör den nya nyckeln betrodd på Android-enheter genom att ladda upp en verifieringskedja” klickar du på Visa anvisningar.
- Ladda ned APKSigner och generera en verifieringskedja genom att köra det här kommandot:
$ apksigner rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
- Klicka på Ladda upp den genererade verifieringskedjefilen och ladda upp verifieringskedjan som genererades i steg 8.
- Klicka på Spara.
Skapa en uppladdningsnyckel och uppdatera keystore
Av säkerhetsskäl rekommenderar vi att du signerar appen med en ny uppladdningsnyckel i stället för nyckeln för appsignering.
Du kan skapa en uppladdningsnyckel i samband med att du samtycker till appsignering via Google Play eller göra det senare genom att besöka Appsignering via Play (Testa och lansera > Konfiguration > Appintegritet).
Så här skapar du en uppladdningsnyckel:
- Följ anvisningarna på webbplatsen för Android-utvecklare. Förvara nyckeln på ett säkert ställe.
- Exportera certifikatet för uppladdningsnyckeln i PEM-format. Byt ut de understrukna argumenten nedan:
$ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
-
Registrera certifikatet hos Google genom att ladda upp det när du uppmanas till det.
Tänk på detta när du använder en uppladdningsnyckel:
- Uppladdningsnyckeln registreras bara hos Google för att identifiera den som gjort appen.
- Signaturen tas bort från alla APK-filer som du laddar upp innan de skickas till användarna.
- Det måste vara en RSA-nyckel med minst 2 048 bitar.
När du har skapat en uppladdningsnyckel kan du behöva uppdatera följande:
- Lokala datorer
- Låst server på webbplatsen (varierande åtkomstlistor)
- Molndator (varierande åtkomstlistor)
- Tjänster som används speciellt för hemlighetshantering
- Lagringsplatser (t.ex. git)
Uppgradera nyckeln för appsignering
Under vissa omständigheter kan du begära uppgradering av nyckeln för appsignering.
Det här är några tänkbara situationer där det kan bli aktuellt att begära uppgradering av nyckeln för appsignering:
- Du behöver en nyckel med starkare kryptering
- Nyckeln för appsignering har kommit i orätta händer.
Obs! Nyckeluppgraderingar stöds bara för appar som använder AAB-arkiv.
Innan du begär uppgradering av nyckeln på Play Console läser du avsnittet Viktigt att tänka på innan du begär uppgradering av nyckeln nedan. Du kan sedan utöka de andra avsnitten nedan och läsa mer om hur du begär uppgradering av nyckeln.
Viktigt att tänka på innan du begär uppgradering av nyckelnInnan du begär uppgradering av nyckeln är det viktigt att känna till vad du kan behöva ändra efter uppgraderingen.
- Om du använder samma nyckel för appsignering i flera appar så att kod eller data kan delas mellan dem måste du uppdatera apparna så att de kan använda certifikatet för både den nya och den gamla nyckeln för appsignering. På enheter med Android S (API-nivå 32) eller tidigare identifieras bara det äldre certifikatet för nyckeln för appsignering av Android-plattformen i syfte att dela data/kod.
- Om API:er används i appen måste du registrera certifikatet för både den nya och den gamla nyckeln för appsignering hos API-leverantörerna innan du publicerar en uppdatering, annars finns risk att API:erna slutar att fungera. Du hittar certifikaten på sidan Appsignering via Play (Testa och lansera > Konfiguration > Appsignering) på Play Console.
- Om någon av dina användare installerar sina uppdateringar via peer-to-peer-kommunikation, tänk då på att de bara kan installera uppdateringar som har signerats med samma nyckel som den appversion de redan har. Om de inte kan uppdatera eftersom de har en version av appen som signerats med en annan nyckel har de möjlighet att avinstallera appen och installera om den och få uppdateringen på det sättet.
Nyckeln för appsignering kan uppgraderas för alla installationer på Android N (API-nivå 24) och senare en gång per app och år.
Om du begär uppgradering av nyckeln och begäran godkänns används den nya nyckeln till att signera alla installationer och appuppdateringar. På enheter med Android T (API-nivå 33) eller senare måste den uppgraderade nyckeln användas. På enheter med Android S (API-nivå 32) eller tidigare tillämpas inte den uppgraderade nyckeln på Android-plattformen och den äldre signeringsnyckeln identifieras fortfarande som appens signeringsnyckel. Detta gäller även alla funktioner på Android-plattformen (till exempel anpassad behörighetsdelning) som är beroende av appens signeringsnyckel. På enheter med Android N (API-nivå 24) till Android S (API level 32) kontrollerar Google Play Protect att appuppdateringar signeras med den uppgraderade nyckeln, om inte användaren har inaktiverat detta. Detta ger en ytterligare validering eftersom Android-plattformen inte tillämpar den uppgraderade nyckeln på enheter som kör Android S (API-nivå 32) eller tidigare.
- Öppna sidan Appsignering via Play på Play Console (Testa och lansera
> Konfiguration > Appsignering).
- Tips! Du kan även komma åt sidan via sidan Appintegritet (Testa och lansera > Appintegritet). Där hittar du integritets- och signeringstjänsterLINK 2 som hjälper dig att säkerställa att användarna får den avsedda upplevelsen i apparna och spelen.
- Välj Begär uppgradering av nyckel under Uppgradera nyckeln för appsignering.
- Välj ett alternativ för att uppgradera nyckeln för appsignering för alla installationer på Android N och senare.
- Låt Google generera en ny nyckel för appsignering (rekommenderas) eller ladda upp en.
- Om du har använt samma nyckel för appsignering som för uppladdning kan du fortsätta att använda den äldre nyckeln för appsignering som uppladdningsnyckel efter uppgraderingen eller generera en ny uppladdningsnyckel.
- Välj anledningen till att du begär uppgradering av nyckeln för appsignering.
- Om det behövs registrerar du den nya nyckeln för appsignering hos API-leverantörer.
Tips! Om du distribuerar appen i flera distributionskanaler och vill maximera kompatibiliteten för appuppdateringar för användarna bör du uppgradera nyckeln i varje distributionskanal. För kompatibilitet med Google Plays nyckeluppgradering kan du använda ApkSigner-verktyget, som ingår i Android SDK Build Tools (version 33.0.1+):
$ apksigner sign --in ${INPUT_APK}
--out ${OUTPUT_APK}
--ks ${ORIGINAL_KEYSTORE}
--ks-key-alias ${ORIGINAL_KEY_ALIAS}
--next-signer --ks ${UPGRADED_KEYSTORE}
--ks-key-alias ${UPGRADED_KEY_ALIAS}
--lineage ${LINEAGE}
Läs mer om hur appuppdateringar fungerar.
Rekommenderade metoder
- Om du även distribuerar appen på andra ställen än Google Play eller planerar att göra det i framtiden och vill använda samma nyckel för signering har du två alternativ:
- Du kan antingen låta Google generera nyckeln (rekommenderas) och sedan ladda ned en signerad, universell APK-fil från utforskaren för AAB-arkiv som du kan distribuera på andra ställen än Google Play.
- Du kan också generera den nyckel för appsignering som du vill använda i alla appbutiker och sedan ladda upp en kopia av den på Google i samband med att du konfigurerar appsignering via Play.
- Skydda utvecklarkontot genom att aktivera tvåstegsverifiering för konton som kan användas med Play Console.
- När du har publicerat ett AAB-arkiv i en lanseringskanal kan du besöka utforskaren för AAB-arkiv där du hittar installerbara APK-filer som Google genererar utifrån AAB-arkivet. Du kan göra följande:
- Kopiera och dela en länk för intern appdelning så att du med ett enda tryck kan testa vad Google Play skulle installera från AAB-arkivet på olika enheter.
- Ladda ned en signerad, universell APK-fil. Den här enda APK-filen är signerad med den nyckel för appsignering som lagras hos Google och går att installera på alla enheter som appen har stöd för.
- Ladda ned ett ZIP-arkiv med alla APK-filer för en viss enhet. Dessa APK-filer är signerade med den nyckel för appsignering som lagras hos Google. Du kan installera APK-filerna som finns i ZIP-arkivet på en enhet med hjälp av kommandot
adb install-multiple *.apk
.
- Säkerheten ökar om du genererar en ny uppladdningsnyckel som inte är samma som nyckeln för appsignering.
- Om du använder ett API från Google kan du registrera certifikaten för uppladdningsnyckeln och nyckeln för appsignering för appen i Google Cloud Console.
- Om du använder Android App Links måste du uppdatera nycklarna i motsvarande JSON-fil med länkar till digitala tillgångar på din webbplats.
Har uppladdningsnyckeln kommit bort eller blivit stulen?
Om du har blivit av med den privata uppladdningsnyckeln eller om den har hamnat i orätta händer kan du skapa en ny. Utvecklarkontots ägare kan sedan återställa nyckeln på Play Console.
När vårt supportteam har registrerat den nya uppladdningsnyckeln får kontots ägare och globala administratörer ett meddelande i inkorgen på Play Console och ett e-postmeddelande med ytterligare information. Sedan kan du uppdatera nyckellagren och registrera nyckeln hos API-leverantörerna.
Kontots ägare kan även avbryta återställningsbegäran via Play Console.
Viktigt! Nyckeln för appsignering som Google Play signerar om APK-filerna med innan de skickas till användarna påverkas inte av att uppladdningsnyckeln återställs.
Version 4 av APK-signaturschemat
Enheter med Android 11 eller senare har stöd för nya version 4 av APK-signaturschemat. Vid appsignering via Play används signering med version 4 för kvalificerade appar för att ge dem tillgång till optimerade distributionsfunktioner på nyare enheter. Utvecklare behöver inte göra något och det förväntas inte att användarna påverkas av version 4-signering.