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:
- Android Studio -asennus
- OpenSSL-asennus
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
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:
- Luetteloi varmenteen tiedot selväsanaisesti suorittamalla
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
. - 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
- 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=
- 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
Tarkista Android SDK -polku Android Studio.
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.