Semnarea codului de programare pentru Android

În acest articol, veți afla despre cum să semnați codul pentru Android (ARK). Trebuie să vă semnați aplicația pentru Android dacă ați selectat Android ca una dintre platforme în timp ce creați și construiți Wrap project.

Important

Dacă doriți să semnați o aplicație AAB pentru distribuția Google Play, consultați Semnarea aplicației dvs..

Pregătirea computerului

Aveți nevoie de următoarele informații pentru a începe:

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 folderul „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 - comanda 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 cheii.
  • 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

O captură de ecran cu comanda keytool folosind parametrii din exemplul de mai sus.

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 - aliasul folosit la generarea cheilor mai devreme.
  • keystore - numele depozitului de chei pe care îl utilizați.
  • openssl - generează cheia SHA1 pentru Android.

Adăugați hash-ul 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:

  1. Rulați keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE pentru a lista informațiile despre certificat în mod prolix (verbose).
  2. Copiați valoarea SHA1 de sub secțiunea Amprentele digitale ale certificatului din ieșire. 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
  3. 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ă în Base64: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. 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

  1. Verificați calea SDK-ului Android din Android Studio.

  2. Selectați Instrument > Manager SDK > Locație SDK Android.

    Dacă utilizați iOS, verificați fișierul apksigner din directorul buildTools Version :

    Accesați directorul SDK > build-tools > buildToolsVersion > lib și verificați fișierul apksigner.jar

Utilizați fișierul apksigner

Rulați următoarea comandă pentru a utiliza apksigner și a semna 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 aliasului cheii către fișierul APK.

Când vi se solicită, introduceți parola.

Mai multe informații: Android Studio - instrumente în 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 utilizând Microsoft Intune, consultați Adăugați o aplicație pentru domeniul de business Android în Microsoft Intune. Pentru a afla despre acordarea de acces unei aplicații la serviciul de protecție al aplicației Intune, consultați Oferiți aplicației dvs. acces la serviciul de protecție al aplicației Intune.

Consultați și