Podpisovanje kode za Android
V tem članku boste spoznali, kako podpisati kodo za Android (APK). Svojo aplikacijo morate podpisati za Android če ste izbrali Android kot eno od platform med ustvarjanjem in gradnjo svojega zaviti projekt.
Pomembno
Če želite namesto tega podpisati aplikacijo AAB za distribucijo v trgovini Google Play, glejte Podpisovanje aplikacije.
Priprava računalnika
Za začetek potrebujete naslednje podatke:
- Namestite Android Studio
- Namestite OpenSSL
Generiranje ključev
Opomba
Preskočite na podpis paketa APK če ste med ustvarjanjem registracije aplikacije že ustvarili ključe in zgoščeno vrednost podpisa.
Za ustvarjanje digitalnega potrdila za podpisovanje paketa aplikacij bomo uporabili keytool.exe (na voljo po namestitvi okolja Android Studio iz mesta mape »Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe«). Orodje Keytool se uporablja za upravljanje shrambe ključev (zbirke podatkov) kriptografskih ključev, verig digitalnih potrdil X.509 in zaupanja vrednih digitalnih potrdil.
Če želite ustvariti ključ, odprite ukazni poziv in zaženite naslednji ukaz:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parametri:
- genkey – ukaz za ustvarjanje ključa.
- vzdevek - označuje vzdevek, ki bo uporabljen v prihodnosti za sklicevanje na vnos v shrambi ključev, ki vsebuje ustvarjene ključe.
- keyalg – ime algoritma ključa.
- keystore – ime shrambe ključev, ki ga uporabljate.
- keysize – velikost posameznega ključa, ki bo ustvarjen.
- validity – število dni veljavnosti ključa.
Primer:
Če pripravljate shrambo ključev, mora PATH_TO_KEYSTORE imeti pripono .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Če se pripravljate na ročno podpisovanje, mora imeti POT_DO_SHRAMBE_KLJUČEV pripono .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Ustvarjanje zgoščene vrednosti podpisa
Opomba
Preskočite na podpis paketa APK če ste med ustvarjanjem registracije aplikacije že ustvarili ključe in zgoščeno vrednost podpisa.
Po generiranju ključa se ukaz exportcert uporabi v keytool za izvoz potrdila shrambe ključev.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parametri:
- exportcert – v shrambi ključev prebere digitalno potrdilo, povezano z vzdevkom, in ga shrani v datoteko cert_file. Če ni določena nobena datoteka, se digitalno potrdilo izvozi v izhod stdout.
- alias – vzdevek, uporabljen med ustvarjanjem ključev prejšnji.
- keystore – ime shrambe ključev, ki ga uporabljate.
- openssl – ustvari ključ SHA1 za Android.
Dodajte ustvarjeno zgoščeno vrednost podpisa v URI za preusmeritev med registracijo aplikacije.
Šestnajstiški ključ SHA1 ročno pretvorite v zgoščeno vrednost podpisa, kodirano v obliki Base64
Če zgoščena vrednost vašega podpisa ni pravilno kodirana ali je nesprejemljiva na portalu Azure, boste morda videli to napako:
»Zgoščena vrednost podpisa mora biti SHA1, kodirana v obliki base64«.
Če se prikaže ta napaka, poskusite zgoščeno vrednost podpisa ustvariti z naslednjimi koraki:
- Zaženite
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
da se podatki o digitalnem potrdilu prikažejo v podrobnem načinu. - Iz izhoda kopirajte vrednost SHA1 v razdelku Prstni odtisi digitalnega potrdila. Pazite, da boste kopirali le šestnajstiško vrednost.
Primer:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
. - Kopirano šestnajstiško vrednost prstnega odtisa digitalnega potrdila pretvorite v vrednost, kodirano v obliki Base64, s katerim koli razpoložljivim pretvornikom »šestnajstiških vrednosti v Base64«.
Primer vrednosti, kodirane v obliki Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Kopirajte ustvarjeno kodirano vrednost Base64 kot razpršitev podpisa na portalu Azure, medtem ko registrirate aplikacijo.
Podpisovanje paketa APK
Za podpis paketa APK bomo uporabili orodje apksigner. To orodje vam omogoča podpisovanje APK-jev in zagotavljanje, da je podpis paketa APK uspešno preverjen na vseh Android platformah, ki jih podpirajo APK-ji.
Iskanje orodja apksigner
Preverite pot kompleta SDK za Android v okolju Android Studio.
Izberite Orodje > Upravitelj SDK > Mesto SDK za Android.
Če uporabljate iOS, preverite datoteko apksigner v imeniku buildTools Version :
Odprite imenik SDK > orodja build-tools > buildToolsVersion > lib in preverite datoteko apksigner.jar
Uporaba datoteke apksigner
Zaženite naslednji ukaz, da uporabite datoteko apksigner in podpišete paket:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parametri:
- ks – pot do shrambe ključev.
- ks-key-alias – pot vzdevka ključa do datoteke APK.
Ob pozivu vnesite geslo.
Več informacij: Orodja za ukazno vrstico v okolju Android Studio: apksigner
Distribucija aplikacije
Paket lahko gostite v distribucijski storitvi, kot je App Center. Za distribucijo s storitvijo Microsoft Intune, glejte Dodajanje aplikacije Android za poslovanje v storitev Microsoft Intune. Če želite izvedeti več o tem, kako aplikaciji omogočiti dostop do storitve Intune za zaščito aplikacij glejte Aplikaciji omogočite dostop do storitve Intune za zaščito aplikacij.