Semn cod manual pentru Android
În acest articol, veți afla cum să codificați manual semnarea pentru Android (APK). Trebuie să vă semnați aplicația pentru Android dacă ați selectat Android ca una dintre platforme în timp ce creați și construiați proiectul wrap.
Important
Dacă doriți să semnați o aplicație AAB pentru distribuția Google Play, consultați Semnați aplicația.
Pregătirea computerului
Aveți nevoie de următoarele informații pentru a începe:
- Instala Android Studio
- Instalați OpenSSL
- Instalați instrumentul apksigner
Cerințe preliminare
- Numele aplicației pentru crearea cheii hash.
- Cel mai recent fișier APK pentru procesul de conectare.
Generați cheile
Notă
Treceți la semnarea pachetului APK dacă ați generat deja chei și hash de semnătură în timp ce creați înregistrarea aplicației.
Vom folosi keytool.exe (disponibil după instalarea Android Studio, din locația folderului „Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe”) pentru a crea un certificat pentru a semna pachetul aplicației. Keytool este folosit pentru a gestiona un depozit de chei (bază de date) de chei criptografice, lanțuri de certificate X.509 și certificate de încredere.
Pentru a genera o cheie, deschideți un prompt de comandă și executați următoarea comandă:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parametri:
- genkey - comandă pentru a genera o cheie.
- alias - indică alias-ul care va fi folosit în viitor pentru a se referi la intrarea din depozitul de chei care conține cheile care sunt generate.
- keyalg - numele algoritmului cheie.
- keystore - numele depozitului de chei pe care îl utilizați.
- keysize - dimensiunea fiecărei chei care urmează să fie generată.
- validity - valabilitatea cheii în număr de zile.
Exemplu:
Dacă pregătiți Key Vault, PATH_TO_KEYSTORE ar trebui să aibă extensia .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Dacă vă pregătiți pentru semnarea manuală, PATH_TO_KEYSTORE ar trebui să aibă extensia .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Generați un cod hash de semnătură
Notă
Treceți la semnarea pachetului APK dacă ați generat deja chei și hash de semnătură în timp ce creați înregistrarea aplicației.
După generarea cheii, comanda exportcert este utilizată în keytool pentru a exporta certificatul depozitului de chei.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parametri:
- exportcert - citește din depozitul de chei certificatul asociat cu alias și îl stochează în fișierul cert_file. Când nu este specificat niciun fișier, certificatul este trimis la stdout.
- alias - alias-ul folosit la generarea cheilor anterior.
- keystore - numele depozitului de chei pe care îl utilizați.
- openssl - generează cheia SHA1 pentru Android.
Adăugați hashul de semnătură generat în URI de redirecționare în timp ce înregistrați aplicația.
Convertiți manual SHA1 hex în semnătură hash codificată în Base64
Este posibil să vedeți următoarea eroare dacă hash-ul semnăturii dvs. nu este codificat corect sau este inacceptabil în portalul Azure:
„Hash-ul semnăturii trebuie să fie SHA1 codificat în base64.”
Când apare această eroare, încercați să generați hash-ul semnăturii utilizând în schimb următorii pași:
- Rulați
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
pentru a lista informațiile despre certificat în modul detaliat. - Copiați valoarea SHA1 sub secțiunea Amprente digitale Certificat din rezultat. Asigurați-vă că copiați doar valoarea hexazecimală.
De exemplu:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Utilizați orice convertor disponibil „Hexazecimal în Base64” pentru a converti valoarea hexazecimală a amprentei digitale a certificatului copiat în valoare codificată în Base64.
Exemplu de valoare codificată Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Copiați valoarea codificată Base64 generată ca Hash de semnătură în portalul Azure în timp ce înregistrați aplicația.
Semnați pachetul APK
Pentru a semna pachetul APK, vom folosi instrumentul apksigner. Acest instrument vă permite să semnați APK-uri și să vă asigurați că semnătura pachetului APK este verificată cu succes pe toate Android platformele acceptate de APK-uri.
Găsiți apksigner
Verificați calea SDK-ului Android din Android Studio.
Selectați Tool>SDK Manager>Android SDK Location.
Dacă utilizați iOS, verificați fișierul apksigner din directorul buildTools Version :
Accesați SDK directorul >build-tools>buildToolsVersion>lib și verificați apksigner.jar
Utilizați fișierul apksigner
Rulați următoarea comandă pentru a utiliza apksigner și semnați pachetul:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parametri:
- ks - calea către depozitul de chei.
- ks-key-alias - calea alias-ului cheie către fișierul APK.
Când vi se solicită, introduceți parola.
Mai multe informații: Android Studio instrumente de linie de comandă: apksigner
Distribuiți aplicația
Puteți găzdui pachetul pe un serviciu de distribuție, cum ar fi App Center. Pentru a distribui folosind Microsoft Intune, consultați Adăugarea unei Android aplicații de linie de afaceri la Microsoft Intune. Pentru a afla despre acordarea accesului unei aplicații la serviciul de protecție a aplicației Intune, consultați Oferiți acces aplicației dvs. la serviciul de protecție a aplicației Intune.