Comparteix a través de


Signatura de codi per a Android

En aquest article us expliquem com podeu codificar el signe d'Android (APK). Heu de signar l'aplicació si Android heu seleccionat Android com una de les plataformes mentre creeu i creeu el vostre projecte d'embolcall.

Important

Si voleu signar una aplicació AAB per a la distribució de Google Play, consulteu Signa l'aplicació.

Prepareu els vostres ordinadors

Per començar, necessiteu la informació següent:

Genereu claus

Nota

Omet a signar el paquet APK si ja has generat claus i hash de signatura mentre crees el registre de l'aplicació.

Utilitzarem keytool.exe (disponible després d'instal·lar Android Studio, des de la ubicació de la carpeta "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") per crear un certificat per signar el paquet d'aplicacions. El keytool s'utilitza per administrar una keystore (base de dades) de claus aïnogràfices, certificats X.509 i certificats de confiança.

Per generar una clau, obriu un indicador d'ordres i executeu l'ordre següent:

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

Paràmetres:

  • genkey : ordre per generar una clau.
  • alias - indica l'àlies que s'utilitzarà en el futur per referir-se a l'entrada del magatzem de claus que conté les claus que es generen.
  • keyalg: nom clau de l'algoritme.
  • keystore : el nom de la botiga de claus que esteu utilitzant.
  • keysize: la mida de cada clau que es generarà.
  • validity : validesa de la clau en nombre de dies.

Exemple:

  • Si prepareu Key Vault, PATH_TO_KEYSTORE hauria de tenir extensió .pfx.

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

  • Si s'prepara per a la signatura manual, PATH_TO_KEYSTORE hauria de tenir l'extensió .jks.

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

Captura de pantalla amb l'ordre keytool que utilitza els paràmetres de l'exemple anterior.

Generar un hash de signatura

Nota

Omet a signar el paquet APK si ja has generat claus i hash de signatura mentre crees el registre de l'aplicació.

Després de generar la clau, l'ordre exportcert s'utilitza a keytool per exportar el certificat del magatzem de claus.

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

Paràmetres:

  • exportcert : llegeix del certificat de keys licitud associat amb àlies i l'emmagatzema al fitxer cert_file electrònic. Quan no s'especifica cap fitxer, el certificat s'envia a stdout.
  • alias : l'àlies utilitzat mentre es generen tecles abans.
  • keystore : el nom de la botiga de claus que esteu utilitzant.
  • openssl : genera clau SHA1 per a Android.

Afegiu el hash de la signatura generada a l'URI de redirecció mentre registreu l'aplicació .

Convertir manualment el control de signatura codificada des de SHA1 HEX a Base64

És possible que vegeu l'error següent si el resum de la signatura no està codificat correctament o és inacceptable al portal de l'Azure:

"El hash de signatura ha de tenir codificada la base64 SHA1".

Quan aparegui aquest error, intenteu generar el hash de signatura utilitzant els passos següents:

  1. Executa keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE per llistar la informació del certificat en mode verbal.
  2. Copieu el valor SHA1 a la secció Certifica empremtes digitals des de la sortida. Assegureu-vos que només copieu el valor hexadecimal.
    Per exemple: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Utilitzeu qualsevol convertidor "Hexadecimal a Base64" disponible per convertir el valor hexadecimal del certificat copiat en valor codificat base64.
    Exemple del valor Base64 codificat: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Copieu el valor codificat en Base64 generat com a hash de signatura al portal de l'Azure mentre registreu l'aplicació .

Signar el paquet APK

Per signar el paquet APK, utilitzarem l'eina apksigner. Aquesta eina us permet signar APK i assegurar-vos que la signatura del paquet APK es verifiqui correctament en totes les Android plataformes compatibles amb els APK.

Cercar el vostre apksigner

  1. Comproveu el camí de l'SDK d'Android a l'Android Studio.

  2. Seleccioneu Eina > Administrador de SDK > Ubicació de SDK a Android.

    Si l'utilitzeu iOS, comproveu el fitxer apksigner des del directori buildTools version :

    Aneu al directori de l'SDK >build-tools > buildToolsVersion > lib i comproveu el fitxer apksigner.jar

Utilitzar el fitxer apksigner

Executeu l'ordre següent per utilitzar l'apksigner i signar el paquet:

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

Paràmetres:

  • ks : camí a keystore.
  • ks-key-alias: camí d'àlies clau al fitxer APK.

Quan se us demani, introduïu la contrasenya.

Més informació: Eines de la línia d'ordres d'Android Studio: apksigner

Distribució de l'aplicació

Podeu allotjar el paquet en un servei de distribució, com ara l'App Center. Per distribuir amb el Microsoft Intune, vegeu Afegir una aplicació de negoci de línia d'Android al Microsoft Intunee. Per obtenir més informació sobre com proporcionar una aplicació accés al servei de protecció de l'aplicació d'Intune, vegeu Donar a l'aplicació accés al servei de protecció de l'aplicació d'Intune.

Consulteu també