Dela via


Kodtecken för Android

I den här artikeln får du lära dig hur du kodsignerar för Android (APK). Du måste signera programmet för Android om du valde Android som en av plattformarna när du skapar och bygger ditt omsluta-projekt.

Viktigt

Om du i stället vill logga in ett AAB-program för distributionen av Google Play går du till Logga in på programmet.

Förbered datorn

Du behöver följande information för att komma igång:

Skapa nycklar

Anteckning

Hoppa över att logga APK-paketet om du redan har skapat nycklar och signaturhash när du skapar appregistreringen.

Vi använder keytool.exe (tillgänglig efter installation av Android Studio, från mappplatsen "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") för att skapa ett certifikat för att logga programpaketet. Keytool används för att hantera ett nyckelarkiv (databas) med kryptografiska nycklar, X.509-certifikat och betrodda certifikat.

Om du vill skapa en nyckel öppnar du kommandotolken och kör följande kommando:

keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000

Parametrar:

  • genkey – kommando för att skapa en nyckel.
  • alias – anger det alias som kommer att användas i framtiden för att referera till nyckelarkivsposten som innehåller de nycklar som ska skapas.
  • keyalg – namn på nyckelalgoritm.
  • keystore – namnet på det nyckelarkiv som du använder.
  • keyize – storleken på varje nyckel som ska skapas.
  • validity – nyckelns giltighet i antal dagar.

Exempel:

  • Om du förbereder Key Vault PATH_TO_KEYSTORE du ha .pfx-tillägget.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

  • Om du förbereder för manuell signering PATH_TO_KEYSTORE du ha filnamnstillägget .jks.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

En skärmbild med kommandot keytool med parametrarna i exemplet ovan.

Skapa signaturhash

Anteckning

Hoppa över att logga APK-paketet om du redan har skapat nycklar och signaturhash när du skapar appregistreringen.

När nyckeln har skapats använder vi exportcert-kommandot i keytool för att exportera nyckelarkivscertifikatet.

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Parametrar:

  • exportcert – läser in certifikatet från nyckelarkivet som är associerat med alias och lagras i cert_file-filen. När ingen fil har angetts matas certifikatet ut till stdout.
  • alias – det alias som används när nycklar skapats tidigare.
  • keystore – namnet på det nyckelarkiv som du använder.
  • openssl – skapar SHA1-nyckel för Android.

Lägg till hash för den genererade signaturen i Omdirigera URI när du registrerar programmet.

Konvertera SHA1 hex till Base64-kodad signaturhash manuellt

Följande fel kan visas om din signaturhash inte är korrekt kodad eller inte kan accepteras på Azure-portalen:

"Signaturhash måste vara base64-kodad SHA1."

När felet uppstår kan du försöka skapa signaturhash genom att i stället följa stegen nedan:

  1. Kör keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE för att visa certifikatinformationen i utförligt läge.
  2. Kopiera värdet SHA1 under avsnittet fingeravtryck för certifikat från utdata. Se till att du endast kopierar det hexadecimala värdet.
    Till exempel: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Använd alla tillgängliga "Hexadecimal till Base64" för att konvertera det kopierade certifikatet till ett kodat basvärde för Base64.
    Exempel på Base64-kodat värde: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Kopiera det genererade Base64-kodade värdet som signaturhash i Azure-portalen medan du registrerar programmet.

Signera APK-paketet

För att logga APK-paketet använder vi apksigner-verktyget. Med verktyget kan du signera APK:er och kontrollera att signaturen i APK-paketet verifieras på alla Android-plattformar som stöds av APK:erna.

Hitta apksigner

  1. Kontrollera Android SDK-sökvägen i Android Studio.

  2. Välj Verktyg > SDK Manager > Android SDK Location.

    Om du använder iOS kontrollerar du apksigner-filen från katalogen buildTools Version:

    Gå till SDK-katalogen > build-tools > buildToolsVersion > lib och kontrollera filen apksigner.jar

Använd apksigner-filen

Kör följande kommando för att använda apksigner och signera paketet:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Parametrar:

  • ks – sökväg till nyckelarkivet.
  • ks-key-alias – sökväg för nyckelalias till APK-fil.

Ange lösenordet när du ombeds om det.

Mer information: Android Studio kommandoradsverktyg: apksigner

Distribuera programmet

Du kan vara värd för paketet på en distributionstjänst som App Center. Information om hur du distribuerar med Microsoft Intune finns i Lägg till ett verksamhetsspecifikt Android-program i Microsoft Intune. Information om hur du ger ett program åtkomst till Intune-appskyddstjänsten finns i Ge ditt program åtkomst till Intune appskyddstjänst.

Se även