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:
- Instal·lar Android Studio
- Instal·lar OpenSSL
- Instal·leu l'eina apksigner
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
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:
- Executeu
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
per llistar la informació del certificat en mode detallat. - 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
- 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=
- 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
Comproveu el camí de l'SDK d'Android a l'Android Studio.
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.