Använda appsignering via Google Play

Med appsignering via Google Play hanterar och skyddar Google nyckeln för appsignering åt dig och signerar APK-filerna som ska distribueras med den. Det är ett säkert sätt att lagra nyckeln för appsignering på och ger ett skydd mot att nyckeln skulle komma bort eller hamna i orätta händer.

Viktigt! Om du vill använda AAB-arkiv, det rekommenderade publiceringsformatet för appar, måste du registrera dig för appsignering via Google Play innan du laddar upp AAB-arkivet på Play Console.

Kontots ägare eller en användare med den globala behörigheten Hantera produktionsversioner kan samtycka till appsignering och måste även godkänna användarvillkoren. Appar registreras för appsignering via Google Play en i taget.

Så fungerar det

När du använder appsignering via Google Play lagras nycklarna i samma infrastruktur som Google använder för sina egna nycklar. Nycklarna skyddas av Googles nyckelhanteringstjänst. Du kan läsa mer om Googles tekniska infrastruktur i Googles vitbok om molnsäkerhet.

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 appen kommer från en betrodd 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! Det är frivilligt att använda appsignering via Google Play. Du kan fortfarande ladda upp en APK-fil och själv hantera dina nycklar i stället för att använda AAB-arkiv. Men om du skulle bli av med nyckellagret eller om det skulle hamna i orätta händer kan du inte uppdatera appen utan att publicera en ny app med nytt paketnamn.

Beskrivningar av nycklar, artefakter och verktyg
Term 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 samtycker till appsignering via Google Play kan du antingen ladda upp en nyckel för appsignering eller låta Google generera en åt dig.

Nyckeln för appsignering kan aldrig bytas ut så länge appen är tillgänglig. 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 eller APK-filer 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å:

  • Använd nyckeln för appsignering: Om du låter Google generera en nyckel för appsignering åt dig i samband med att du samtycker till appsignering blir nyckeln som används till den första versionen även uppladdningsnyckel.
  • Använd en separat uppladdningsnyckel: Om du tillhandahåller en egen nyckel för appsignering i samband med att du samtycker till appsignering har du möjlighet att generera en ny uppladdningsnyckel, vilket ger ökad säkerhet. Om du inte genererar någon uppladdningsnyckel använder du nyckeln för appsignering som uppladdningsnyckel när du signerar versioner.
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 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 på Google Play 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å går appsigneringen till

Du kan ladda upp APK-filer som signerats med den ursprungliga nyckeln för appsignering innan eller efter att du samtycker till appsignering via Google Play.

Om du börjar använda AAB-arkiv kan du testa dem i testkanalerna samtidigt som den nuvarande APK-filen används i produktion. Så här går det till:

  1. Signera och ladda upp AAB-arkivet eller APK-filen på Play Console.
  2. Signeringen går till på olika sätt beroende på vad du laddar upp:
    • AAB-arkiv: Google genererar optimerade APK-filer från arkivet och signerar dem med nyckeln för appsignering.
    • APK-fil signerad med uppladdningsnyckel: Google verifierar och tar bort din signatur från APK-filen för att sedan signera den på nytt med nyckeln för appsignering.
    • APK-fil signerad med nyckel för appsignering: Google verifierar signaturen.
  3. Google skickar signerade APK-filer till användarna.

Samtycka till appsignering via Google Play

Nya appar

Steg 1: Skapa en uppladdningsnyckel

  1. Skapa en uppladdningsnyckel enligt anvisningarna.
  2. Signera den nya APK-filen med uppladdningsnyckeln.

Steg 2: Förbered versionen

  1. Följ anvisningarna för att förbereda och lansera versionen.
  2. När du har valt lanseringskanal konfigurerar du appsignering i avsnittet Låt Google hantera och skydda din nyckel för appsignering.
  3. Om du väljer Fortsätt blir nyckeln som genereras din uppladdningsnyckel, som du ska använda när du signerar kommande versioner. Alternativt kan du välja något av följande under Avancerade alternativ:
    • Använda samma nyckel som för en annan app i utvecklarkontot (alternativ 2).
    • Ladda upp en nyckel för appsignering (alternativ 2, 3 och 4): Välj det alternativ för export och uppladdning som passar dig bäst. När du har laddat upp nyckeln för appsignering och dess offentliga certifikat kan du skapa en uppladdningsnyckel eller fortsätta att använda nyckeln för appsignering som uppladdningsnyckel.

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 certifikatet för den nyckel som Google signerar appen med, för autentiseringens skull. För detta används certifikatets fingeravtryck. Här hittar du certifikatet:

  1. Logga in på Play Console.
  2. Välj en app.
  3. Välj Versionshantering på menyn till vänster > Appsignering.
  4. 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.
Befintliga appar

Steg 1: Registrera dig för appsignering via Google Play

  1. Logga in på Play Console.
  2. Välj en app.
  3. Välj Versionshantering på menyn till vänster > Appsignering.
  4. Läs igenom användarvillkoren och välj Godkänn om du inte redan har gjort det.

Steg 2: Skicka den ursprungliga nyckeln till Google och skapa en uppladdningsnyckel

  1. Plocka fram din ursprungliga nyckel för appsignering.
  2. Logga in på Play Console.
  3. Välj en app.
  4. Välj Versionshantering på menyn till vänster > Appsignering.
  5. 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)

  1. Skapa en uppladdningsnyckel och ladda upp certifikatet på Google Play.
    • Du kan även fortsätta att använda nyckeln för appsignering som uppladdningsnyckel.
  2. 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 versionerna med den ursprungliga nyckeln för appsignering innan du laddar upp dem på Google Play. Om du skulle av bli med 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 versioner med den innan du laddar upp dem på Google Play. När du har laddat upp dem verifierar Google din identitet genom att kontrollera versionens uppladdningsnyckel. Om du skulle bli av med uppladdningsnyckeln kan du kontakta supporten och återställa den.

Skapa en uppladdningsnyckel och uppdatera nyckellager

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 Versionshantering > Appsignering.

Så här skapar du en uppladdningsnyckel:

  1. Följ anvisningarna på webbplatsen för Android-utvecklare. Förvara nyckeln på ett säkert ställe.
  2. 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
  3. 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.
Begränsningar för uppladdningsnycklar
  • Det måste vara en RSA-nyckel med minst 2 048 bitar.
  • DSA-nycklar, EC-nycklar och RSA-nycklar med mindre än 2 048 bitar stöds inte.
Uppdatera nyckellager

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 för nya installationer

Under vissa omständigheter kan du begära uppgradering av nyckeln för appsignering. Den nya nyckeln används då när du signerar nya installationer och appuppdateringar, medan den gamla nyckeln för appsignering används även i fortsättningen när du signerar uppdateringar för användare som installerade appen innan du uppgraderade nyckeln.

Nyckeln för appsignering kan bara uppgraderas en gång per app. Om du har flera appar som använder samma nyckel för appsignering därför att de ska kunna köras som samma process, vilket hör till ovanligheterna, går det inte att uppgradera nyckeln för de apparna.

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! Att begära uppgradering av nyckeln för appsignering på Play Console är inte samma sak som att begära byte av nyckeln på det sätt som infördes i version 3 av APK-signaturschemat för Android P eller senare. Nyckelbyte av det slaget stöds för närvarande inte på Google Play.

Viktigt att tänka på innan du begär uppgradering av nyckeln

Innan 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 dem emellan 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.
  • 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 på Play Console.  
  • Om många 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 därför att 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.
Begära uppgradering av nyckeln för nya installationer
  1. Logga in på Play Console.
  2. Välj en app.
  3. Välj Versionshantering på menyn till vänster > Appsignering.
  4. Välj Begär uppgradering av nyckel under Uppgradera nyckeln för appsignering för nya installationer.
  5. Välj ett alternativ.
    • Beroende på vilket alternativ du väljer kan du behöva kontakta supporten under ärendets gång.
  6. 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.

Rekommendationer

  • Om du även distribuerar appen på andra ställen än Google Play eller planerar att göra det i framtiden kan du generera den nyckel för appsignering du vill använda i alla appbutiker och sedan ladda upp den på Google i samband med att du samtycker till appsignering via Google 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 testkanal eller i produktionskanalen kan du besöka utforskaren för AAB-arkiv och ladda ned ett ZIP-arkiv med alla APK-filer för en specifik enhet. Dessa APK-filer är signerade med nyckeln för appsignering, och 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 vill testa APK-filen som signerats med uppladdningsnyckeln måste du registrera uppladdningsnyckeln i alla tjänster eller API:er där appens signatur används för autentisering, t.ex. Google Maps API eller Facebook SDK.
  • Om du använder ett API från Google kan du registrera uppladdningscertifikatet för appen i Google Cloud Console.

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 och be kontots ägare att kontakta supporten och återställa nyckeln. Det är viktigt att kontots ägare bifogar filen upload_certificate.pem när han eller hon kontaktar supporten.

När vårt supportteam har registrerat den nya uppladdningsnyckeln får du ett e-postmeddelande och kan då uppdatera nyckellagren och registrera nyckeln hos API-leverantörerna.

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.

Var det här till hjälp?
Hur kan vi förbättra den?

Behöver du mer hjälp?

Logga in för ytterligare supportalternativ så att du kan lösa problemet snabbt