Share via


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:

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

Una captura de pantalla con el comando keytool utilizando los parámetros del ejemplo anterior.

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:

  1. Ejecute keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE para mostrar la información del certificado en modo detallado.
  2. 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
  3. 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=
  4. 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

  1. Verifique la ruta SDK de Android en Android Studio.

  2. 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.

Consulte también