Share via


Androidin koodin allekirjoittaminen

Tässä artikkelissa käsitellään Android (APK) -koodin allekirjoitusta. Sovelluksen Android-allekirjoitus on tehtävä, jos Android on valittu yhdeksi ympäristöksi paketointiprojektia luotaessa ja muodostettaessa.

Tärkeä

Jos haluat sen sijaan allekirjoittaa AAB-sovelluksen Google Play -jakelua varten, katso Sovelluksen allekirjoittaminen.

Tietokoneen valmisteleminen

Aloittamista varten tarvitaan seuraavat tiedot:

Avaimien luonti

Huomautus

Siirry APK-paketin allekirjoittamiseen, jos olet jo luonut avaimet ja allekirjoituksen hajautusarvon sovelluksen rekisteröinnin luomisen yhteydessä.

Käytämme tiedostoa keytool.exe (saatavana Android Studio asennuksen jälkeen kansiosijainnista "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") varmenteen luomiseksi sovelluspaketin allekirjoitusta varten. Keytool-komennolla hallitaan salausavaimien, X.509-varmenneketjujen ja luotettavien varmenteiden avainsäilöä (tietokantaa).

Avain luodaan avaamalla komentokehot ja suorittamalla seuraava komento:

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

Parametrit:

  • genkey – avaimen luontikomento.
  • alias – ilmaisee aliaksen, jolla viitataan jatkossa luotavat avaimet sisältävään avainsäilömerkintään.
  • keyalg – avainalgoritmin nimi.
  • keystore – käytettävän avainsäilön nimi.
  • keysize – kunkin luotavan avaimen koko.
  • validity – avaimen voimassaoloaika päivinä.

Esimerkki:

  • Key Vault -säilöä valmisteltaessa PATH_TO_KEYSTORE-arvossa oltava .pfx-tunniste.

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

  • Jos valmistelet manuaalista allekirjoitusta, PATH_TO_KEYSTORE:lla tulisi olla .jks-tunniste.

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

Näyttökuvassa keytool-komento, jossa käytetään edellä olevan esimerkin parametreja

Allekirjoituksen hajautusarvon luominen

Huomautus

Siirry APK-paketin allekirjoittamiseen, jos olet jo luonut avaimet ja allekirjoituksen hajautusarvon sovelluksen rekisteröinnin luomisen yhteydessä.

Avaimen luonnin jälkeen avainsäilövarmenne viedään keytool-komennon exportcert-komennolla.

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

Parametrit:

  • exportcert – Lukee avainsäilöstä aliakseen liitetyn varmenteen ja tallentaa sen cert_file-tiedostoon. Jos tiedostoa ei ole määritetty, varmenteen tulos on stdout.
  • alias – alias, jota käytettiin aiemmin avaimia luotaessa.
  • keystore – käytettävän avainsäilön nimi.
  • openssl – luo Android SHA1-avaimen.

Lisää luotu allekirjoituksen hajautusarvo Uudelleenohjaukseen URI -osoitteeseen sovellusta rekisteröitäessä.

SHA1-heksadesimaalikoodin muuntaminen Base64-koodatuksi allekirjoituksen hajautusarvoksi manuaalisesti

Jos allekirjoituksen hajautusarvoa ei ole koodattu oikein tai sitä ei hyväksytä Azure-portaalissa, saatat nähdä seuraavan virheen:

"Allekirjoituksen hajautusarvon on oltava Base64-koodattu SHA1."

Kun tämä virhe tulee näkyviin, yritä luoda allekirjoituksen hajautusarvo sen sijaan käyttämällä näitä vaiheita:

  1. Luetteloi varmenteen tiedot selväsanaisesti suorittamalla keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE.
  2. Kopioi tulosteen Varmenteen sormenjäljet-osan SHA1-arvo. Varmista, että kopioit vain heksadesimaaliarvon.
    Esimerkki: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Käytä mitä tahansa käytettävissä olevaa heksadesimaali-Base64-muunninta muuntaaksesi kopioidun varmenteen sormenjäljen heksadesimaaliarvon Base64-koodatuksi arvoksi.
    Esimerkki Base64-koodatusta arvosta: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Kopioi luotu Base64-koodattu arvo Azure-portaaliin Allekirjoituksen hajautusarvona sovelluksen rekisteröinnin yhteydessä.

APK-paketin allekirjoittaminen

APK-paketin allekirjoittamiseen käytetään apksigner-työkalua. Sen avulla voidaan allekirjoittaa APK-paketit ja varmistaa, että APK-pakettien allekirjoituksen vahvistaminen onnistuu kaikissa APK-pakettien tukemissa Android-ympäristöissä.

apksigner-tiedoston etsiminen

  1. Tarkista Android SDK -polku Android Studio.

  2. Valitse Työkalu > SDK-hallinta > Android SDK -sijainti.

    Jos käytössä on iOS, apksigner-tiedoston voi tarkistaa buildTools Version -hakemistossa:

    Valitse SDK-hakemisto > build-tools > buildToolsVersion > lib ja tarkista apksigner.jar-tiedosto

apksigner-tiedoston käyttäminen

Käytä apksigner-työkalua ja allekirjoita paketti suorittamalla seuraava komento:

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

Parametrit:

  • ks – avainsäilön polku.
  • ks-key-alias – avainaliaksen polku APK-tiedostoon.

Anna salasana pyydettäessä.

Lisätietoja: Android Studio komentorivityökalut: apksigner

Sovelluksen jakelu

Pakettia voi isännöidä jakelupalvelussa, kuten App Centerissä. Lisätietoja jakelusta Microsoft Intunen avulla on kohdassa Android-toimialasovelluksen lisääminen Microsoft Intuneen. Lisätietoja Intune-sovelluksen suojauspalvelun käyttöoikeuksien antamisesta sovellukselle: Anna sovellukselle käyttöoikeudet Intune-sovelluksen suojauspalveluun.

Katso myös