Firmar con código para Android
En este artículo, aprenderá a usar signo de código para Android (APK). Debe firmar su aplicación para Android si seleccionó Android como uno de las plataformas mientras crea y compila su proyecto de encapsulado.
Importante
Si desea firmar una aplicación AAB para la distribución de Google Play, consulte Firmar su aplicación.
Prepare su PC
También tiene que proporcionar la siguiente información para empezar:
- Instalar Android Studio
- Instalar OpenSSL
Generar claves
Nota
Pase a firmar el paquete APK si ya ha generado claves y hash de firma al crear el registro de la aplicación.
Usaremos keytool.exe (disponible después de instalar Android Studio, de la ubicación de la carpeta "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") para crear un certificado para firmar el paquete de solicitud. Keytool se utiliza para gestionar un almacén de claves (base de datos) de claves criptográficas, cadenas de certificados X.509 y certificados de confianza.
Para generar una clave, abra un símbolo del sistema y ejecute el siguiente comando:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parámetros:
- genkey - comando para generar una clave.
- alias - indica el alias que se utilizará en el futuro para hacer referencia a la entrada del almacén de claves que contiene las claves que se generan.
- keyalg - nombre del algoritmo clave.
- keystore - el nombre del almacén de claves que está usando.
- keysize - el tamaño de cada clave a generar.
- validity - validez de la clave en número de días.
Ejemplo:
Si prepara Key Vault, PATH_TO_KEYSTORE debe tener la extensión .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Si se prepara para la firma manual, PATH_TO_KEYSTORE debe tener la extensión .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Generar hash de firma
Nota
Pase a firmar el paquete APK si ya ha generado claves y hash de firma al crear el registro de la aplicación.
Después de generar la clave, se usa el comando exportcert en keytool para exportar el certificado del almacén de claves.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parámetros:
- exportcert - lee del almacén de claves el certificado asociado con el alias y lo almacena en el archivo cert_file. Cuando no se especifica ningún archivo, el certificado se envía a la salida estándar.
- alias - el alias utilizado al generar claves antes.
- keystore - el nombre del almacén de claves que está usando.
- openssl - genera la clave SHA1 para Android.
Agregar la firma generada hash en el URI de redirección mientras registra la aplicación.
Convierta SHA1 hexadecimal a hash de firma codificado en Base64 manualmente
Es posible que vea el siguiente error si el hash de su firma no está codificado correctamente o es inaceptable en Azure Portal:
"El hash de la firma debe ser SHA1 codificado en base64".
Cuando aparezca este error, intente generar el hash de la firma siguiendo los siguientes pasos:
- Ejecute
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
para mostrar la información del certificado en modo detallado. - Copie el valor SHA1 bajo la sección Certificado de huellas dactilares de la salida. Asegúrese de copiar solo el valor hexadecimal.
Por ejemplo:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Utilice cualquier convertidor "Hexadecimal a Base64" disponible para convertir el valor hexadecimal de la huella digital del certificado copiado en un valor codificado en Base64.
Ejemplo del valor codificado Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Copie el valor codificado Base64 generado como el Hash de firma en Azure Portal mientras registra la aplicación.
Firmar el paquete APK
Para firmar el paquete APK, usaremos el herramienta de firma de apk. Esta herramienta le permite firmar APK y asegurarse de que la firma del paquete APK se verifique correctamente en todas las plataformas Android compatibles con los APK.
Encuentre su apksigner
Verifique la ruta SDK de Android en Android Studio.
Seleccione Herramienta > Administrador de SDK > Ubicación del SDK de Android.
Si usa iOS, verifique el archivo apksigner desde el directorio Versión de buildTools:
Vaya al directorio SDK > herramientas de compilación > buildToolsVersion > lib, y verifique el archivo apksigner.jar
Usar el archivo apksigner
Ejecute el siguiente comando para usar el apksigner y firmar el paquete:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parámetros:
- ks - ruta al almacén de claves.
- ks-key-alias - ruta de alias clave al archivo APK.
Cuando se le solicite, introduzca la contraseña.
Más información: Herramientas de línea de comandos de Android Studio: apksigner
Distribuir la aplicación
Puede alojar el paquete en un servicio de distribución como el App Center. Para distribuir mediante Microsoft Intune, consulte Agregar una aplicación de línea de negocio de Android a Microsoft Intune. Para obtener información sobre cómo dar acceso a una aplicación al servicio de protección de aplicaciones de Intune, consulte Otorgar a su aplicación acceso al servicio de protección de aplicaciones de Intune.