Firmante de APK

Firmante de APK en línea: cómo firmar archivos APK gratis

Guía completa de Firmante de APK: aprenda a utilizar firmar archivos APK usando apksigner, jarsigner o debug keystore. Tutorial de firma de APK paso a paso gratuito para desarrolladores y testers. Firmar APK sin Android Studio.

¿Por qué es necesario firmar los archivos APK?

Cada aplicación de Android debe estar firmada digitalmente antes de poder instalarse. La firma tiene varios propósitos:

  • Verifica la identidad del desarrollador de la aplicación.
  • Garantiza que el APK no haya sido manipulado
  • Permite que Android haga coincidir las actualizaciones de la aplicación con la original
  • Requerido para instalar en todos los dispositivos Android

Herramienta de escritorio requerida

La firma de APK requiere herramientas de línea de comandos (JDK/Android SDK). Esto no se puede hacer en un navegador web. Siga la guía a continuación para firmar APK en su computadora.

Método 1: firmar con apksigner (recomendado)

apksigner es la herramienta de firma de APK oficial de Google, incluida en las herramientas de compilación del SDK de Android.

Paso 1: generar un almacén de claves

keytool -genkey -v -keystore my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -alias my-key-alias

Paso 2: firma el APK

apksigner sign --ks my-release-key.jks \
  --ks-key-alias my-key-alias \
  --out signed-app.apk unsigned-app.apk

Paso 3: verificar la firma

apksigner verify --verbose signed-app.apk

Método 2: firmar con jarsigner (Legacy)

# Sign
jarsigner -verbose -sigalg SHA256withRSA \
  -digestalg SHA-256 \
  -keystore my-release-key.jks \
  app-unsigned.apk my-key-alias

# Verify
jarsigner -verify -verbose app-signed.apk

Paso 4: Zipalign (¡Importante!)

Después de firmar, optimice el APK con zipalign:

zipalign -v 4 signed-app.apk aligned-app.apk

Firma de depuración (para pruebas)

Para fines de prueba, puede utilizar el almacén de claves de depuración predeterminado de Android:

# Location of debug keystore:
# Linux/Mac: ~/.android/debug.keystore
# Windows: C:\Users\{USERNAME}\.android\debug.keystore

# Sign with debug key
apksigner sign --ks ~/.android/debug.keystore \
  --ks-key-alias androiddebugkey \
  --ks-pass pass:android \
  app.apk

Comparación de herramientas de firma

Métricafirmante de apkjarsigner
Firma V1
Firma V2
Firma V3
RecomendadoLegado

Firmante de APK: preguntas frecuentes

Preguntas comunes sobre la firma de APK, los almacenes de claves y la firma de códigos de Android

Para firmar un archivo APK, necesita apksigner (recomendado) o jarsigner: (1) Generar un almacén de claves usando keytool -genkey, (2) Firmar el APK con apksigner sign --ks my-key.jks --out signed.apk unsigned.apk, (3) Verificar la firma con apksigner verify signed.apk. También puede utilizar el almacén de claves de depuración de Android con fines de prueba. Esta es la forma estándar de firmar APK sin Android Studio.

Si bien no puede utilizar firmar APK en línea de forma segura (porque la firma de APK requiere su almacén de claves privado, que nunca debe cargarse en ningún servidor), puede utilizar nuestro Guía para firmantes de APK gratuito para firmar archivos APK en su máquina local. Nuestro tutorial paso a paso lo guía a través de todo el proceso utilizando las herramientas oficiales apksigner y jarsigner de Google. Después de firmar, utilice nuestro Verificador de firma APK para verificar la firma en línea de forma gratuita.

V1 (Firma JAR): El esquema de firma original de Android. Verifica cada entrada ZIP individualmente. Más lento pero ampliamente compatible con todas las versiones de Android. V2 (esquema de firma APK): Introducido en Android 7.0. Verifica todo el APK en su conjunto, proporcionando una instalación más rápida. V3 (Esquema de firma APK v3): Android 9.0+, admite rotación de claves. V4: Android 11.0+, permite instalaciones de transmisión. Utilice apksigner para admitir todos los esquemas; jarsigner solo admite V1.

Para firmar APK sin Android Studio: (1) Instale Java JDK 8 o superior, (2) Descargue las herramientas de compilación del SDK de Android que incluye apksigner, o descargue la herramienta independiente incluida, (3) Genere un almacén de claves: keytool -genkey -v -keystore my-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias, (4) Firme: apksigner sign --ks my-key.jks --out signed.apk app.apk. Este método funciona en Windows, Mac y Linux sin requerir la instalación completa de Android Studio.

zipalign es una herramienta SDK de Android que alinea datos sin comprimir dentro del APK en límites de 4 bytes. Esta optimización reduce el consumo de RAM cuando la aplicación se ejecuta en un dispositivo. Importante: Si usa apksigner, ejecute zipalign ANTES de firmar. Si usa jarsigner (heredado), ejecute zipalign DESPUÉS de firmar. Comando: zipalign -v 4 input.apk output.apk. Google Play requiere que los APK estén alineados con zip para su envío.

Por qué es importante el orden de alineación (zipalign antes de apksigner) en Android 11-15

Uno de los errores más frecuentes que cometen los desarrolladores y modders al firmar un APK modificado o fusionado es ejecutar zipalign después firmando el paquete, o usar la utilidad jarsigner heredada de Java en lugar del SDK de Android apksigner de Google. Debido a que APK Signature Scheme v2 y v3 calculan un hash criptográfico sobre todo el diseño binario del archivo ZIP, modificar los desplazamientos de bytes con zipalign después de firmar invalida inmediatamente el bloque de firma v2/v3.

A partir de Android 11 (nivel de API 30) y aplicado estrictamente en Android 14 y 15, PackageManager requiere dos condiciones no negociables para cualquier APK dirigido a niveles de SDK modernos:

  • resources.arsc alineado de 4 bytes sin comprimir: La tabla de recursos compilada (resources.arsc) debe almacenarse sin comprimir (STORED) y alinearse en un límite de 4 bytes para que Android pueda asignarla en memoria (mmap) directamente sin copiarla en la RAM. Ejecute siempre la firma zipalign -p -f -v 4 input.apk aligned.apk antes.
  • Bloque de firma obligatorio v2+: Firmar un APK dirigido a API 30+ con jarsigner (que solo escribe una firma META-INF/ v1) hará que Android 11–15 rechace la instalación con INSTALL_PARSE_FAILED_NO_CERTIFICATES. Utilice el generador de comandos interactivo anterior para crear el comando apksigner --v2-signing-enabled=true exacto para su almacén de claves, o verifique su salida firmada en nuestro Verificador de firma APK.
Diseñado y documentado por Mst Shaefale Desarrollador líder y arquitecto de paquetes de Android • Verificado en Android 12–15

Todas las utilidades del kit de herramientas de XAPK a APK se ejecutan 100% localmente en su navegador a través de JavaScript y WebAssembly. ¿Encontró un caso extremo con un paquete específico? Infórmalo a nuestro equipo de ingeniería.