Comparteix a través de


Signe de codi manual per a Android

En aquest article, aprendràs a com signar manualment el codi ( Android APK). Heu de signar l'aplicació Android si heu seleccionat Android com una de les plataformes mentre creeu i creeu el vostre projecte d'embolcall.

Important

Si vols signar una aplicació AAB per a la distribució de Google Play, consulta Signar l'aplicació.

Prepareu els vostres ordinadors

Necessiteu la informació següent per començar:

Requisits previs

  • Nom de l'aplicació per crear la clau hash.
  • Últim fitxer APK per al procés d'inici de sessió.

Genereu claus

Nota

Salta per 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 de la instal·lació 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 de l'aplicació. 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 - per generar una clau.
  • Àlies : indica l'àlies que s'utilitzarà en el futur per fer referència a l'entrada del magatzem de claus que conté les claus que es generen.
  • keyalg - nom de l'algorisme clau.
  • Keystore : el nom del magatzem de claus que esteu utilitzant.
  • Keysize : la mida de cada clau que es generarà.
  • Validesa : validesa de la clau en nombre de dies.

Exemple:

  • Si prepareu Key Vault, PATH_TO_KEYSTORE hauria de tenir l'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

Una captura de pantalla amb l'ordre keytool utilitzant els paràmetres de l'exemple anterior.

Generar un hash de signatura

Nota

Salta per 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 des del magatzem de claus el certificat associat amb l'àlies i l'emmagatzema al fitxer cert_file. Quan no s'especifica cap fitxer, el certificat s'envia a stdout.
  • àlies : l'àlies utilitzat durant la generació de claus anteriorment.
  • Keystore : el nom del magatzem de claus que esteu utilitzant.
  • openssl - genera la clau SHA1 per Android.

Afegiu el hash de signatura generat 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 hash de signatura no està codificat correctament o no és acceptable 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. Executeu keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE per llistar la informació del certificat en mode detallat.
  2. Copieu el valor SHA1 a la secció Empremtes digitals del certificat 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 codificat en Base64: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Copieu el valor codificat 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 Ubicació de l'SDK de l'administrador>de l'SDK d'eines>Android .

    Si s'utilitza iOS, comproveu el fitxer apksigner des del directori de versió de buildTools :

    Aneu al directori 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í al magatzem de claus.
  • ks-key-alias - camí de l'àlies clau al fitxer APK.

Quan se us demani, introduïu la contrasenya.

Més informació: Android Studio eines de línia d'ordres: 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 Android aplicació de línia de negoci al Microsoft Intune. Per obtenir informació sobre com donar accés a una aplicació al servei de protecció d'aplicacions d'Intune, vegeu Donar accés a l'aplicació al servei de protecció d'aplicacions d'Intune.

Consulteu també