Saltar al contenido principal

Firma de Android

Generador de keystore para Android

Genera un Android keystore online en segundos, sin Android Studio ni keytool. Obtén un keystore de release PKCS#12, el certificado PEM y las huellas SHA-1 y SHA-256, listos para Gradle, Capacitor, fastlane, CI y Google Play.

Contenedor

PKCS#12

Key

RSA 2048, SHA-256

Fingerprints

SHA-1 y SHA-256

Checklist de release

  1. 1. Elige el alias y la contraseña que acompañarán a esta app siempre.
  2. 2. Descarga el keystore y guarda los metadatos en tu gestor de secretos.
  3. 3. Configura el mismo alias y contraseña en Gradle o en tu entorno de CI.
  4. 4. Mantén estable la upload key para que los futuros releases en Play no fallen.

Entrada

Detalles del Keystore

Completa la información del sujeto que se incluirá en el certificado de firma y elige un alias estable.

Resultado

Bundle de firma de Android generado

Tras la generación, obtendrás un keystore descargable, además de la exportación del certificado y los fingerprints necesarios para configurar la tienda o integraciones OAuth.

Genera el bundle de firma para mostrar aquí el alias, los fingerprints y las descargas de archivos.

Basics

¿Qué es un Android keystore?

Un Android keystore es un archivo protegido por contraseña que contiene la clave privada y el certificado usados para firmar tu app. Cada APK y Android App Bundle debe estar firmado antes de poder instalarse o publicarse, y Android solo acepta una actualización si está firmada con la misma clave que la versión ya instalada.

Eso convierte al keystore en uno de los archivos más importantes de tu proyecto. Con Play App Signing, actúa como tu subir clave, que Google verifica antes de volver a firmar tu app. Sin Play App Signing, es la clave de firma de la app en sí, y perderla significa que ya no podrás actualizar la app.

Este generador crea un keystore PKCS#12 (.p12) con una clave RSA de 2048 bits y un certificado SHA-256, igual que keytool el asistente de firma de Android Studio, con una validez predeterminada de 25 años que cumple con los requisitos de Google Play.

Seguridad y privacidad

Cómo se genera tu keystore

  • El keystore se crea bajo demanda mediante un endpoint sin estado de Capgo por HTTPS y se devuelve directamente a tu navegador como descarga.
  • Las respuestas se envían con Cache-Control: no-storeLa clave privada, la contraseña y los archivos nunca se guardan en una base de datos ni se conservan tras la respuesta.
  • El keystore está protegido con tu contraseña mediante cifrado AES-256 dentro del contenedor PKCS#12.
  • No necesitas cuenta ni registro, y las peticiones tienen un límite de frecuencia para evitar abusos.

¿Necesitas una clave que nunca salga de tu máquina? Ejecuta el comando keytool equivalente localmente. Genera el mismo tipo de keystore.

Comando keytool equivalente
keytool -genkeypair -v \
  -storetype PKCS12 \
  -keystore release.p12 \
  -alias release \
  -keyalg RSA -keysize 2048 \
  -validity 9125 \
  -dname "CN=Jane Doe, O=Acme Mobile, C=DE"

Paso a paso

Cómo generar un Android keystore online

De un formulario vacío a una versión firmada en Google Play en seis pasos. Los tres primeros tardan menos de un minuto.

  1. Paso 1

    Introduce los detalles del certificado

    Añade tu nombre completo, email y el código de país de dos letras code. La organización, unidad, ciudad y estado son opcionales y solo aparecen en el subject del certificado.

  2. Paso 2

    Elige un alias, validez y contraseña

    Elige un alias sencillo como release o upload, mantén la validez de 25 años y crea una contraseña segura de al menos 8 caracteres. Anota los tres datos antes de continuar.

  3. Paso 3

    Genera y descarga el keystore

    Selecciona Generate keystore, luego descarga el keystore .p12 y el certificado PEM. Copia los fingerprints SHA-1 y SHA-256 del panel de resultados.

  4. Paso 4

    Haz un backup del keystore y las credenciales

    Guarda el archivo keystore, el alias y la contraseña juntos en un gestor de contraseñas o de secretos. Nunca subas el keystore a Git.

  5. Paso 5

    Configura la firma en tu build

    Apunta Gradle, el Capacitor CLI, fastlane o Capgo Cloud Build al keystore con el alias y la contraseña, y luego genera un AAB o APK de release firmado.

  6. Paso 6

    Sube la app firmada a Google Play

    Sube el Android App Bundle firmado en Play Console. Con Play App Signing, este keystore será tu upload key y Google gestionará la clave de firma final de la app.

Usa el resultado

Firma tu app de Android con el keystore generado

Reemplaza el alias y la contraseña con los valores que ingresaste arriba. Como el keystore es PKCS#12, la contraseña de la clave es la misma que la del almacén.

Configuración de firma de Gradle

Funciona para Capacitor, Ionic, React Native, Flutter y proyectos nativos. Guarda las contraseñas en gradle.properties o variables de entorno.

android/app/build.gradle
// android/app/build.gradle
android {
    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_STORE_PASSWORD
            storeType "pkcs12"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

# ~/.gradle/gradle.properties (keep out of Git)
RELEASE_STORE_FILE=/path/to/release.p12
RELEASE_STORE_PASSWORD=your-password
RELEASE_KEY_ALIAS=release

Capacitor CLI

Genera un Android App Bundle firmado para una app Capacitor con un solo comando.

Build firmado de Capacitor
bunx cap build android \
  --keystorepath ./release.p12 \
  --keystorepass "your-password" \
  --keystorealias release \
  --keystorealiaspass "your-password" \
  --androidreleasetype AAB

Cloud Build de Capgo

Guarda el keystore una vez, luego compila y firma apps de iOS y Android en la nube con Capgo.

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform android \
  --keystore ./release.p12 \
  --keystore-alias release \
  --keystore-key-password "your-password" \
  --keystore-store-password "your-password"

fastlane

Inyecta las propiedades de firma en la acción de Gradle desde los secrets de CI.

Fastfile
gradle(
  task: "bundle",
  build_type: "Release",
  properties: {
    "android.injected.signing.store.file" => ENV["RELEASE_STORE_FILE"],
    "android.injected.signing.store.password" => ENV["RELEASE_STORE_PASSWORD"],
    "android.injected.signing.key.alias" => ENV["RELEASE_KEY_ALIAS"],
    "android.injected.signing.key.password" => ENV["RELEASE_STORE_PASSWORD"],
  }
)

Verifica, convierte y almacena en tu CI

Comprueba el alias y los fingerprints, convierte a JKS para herramientas legacy o codifica el archivo para un secreto de CI.

keytool y base64
# Inspect the keystore, alias, and fingerprints
keytool -list -v -keystore release.p12 -storetype PKCS12

# Convert to JKS if an older tool requires it
keytool -importkeystore \
  -srckeystore release.p12 -srcstoretype PKCS12 \
  -destkeystore release.jks -deststoretype JKS

# Base64-encode the keystore for a CI secret
base64 -i release.p12 | tr -d '\n' > release.p12.base64

Solución de problemas

Errores comunes de Android keystore y soluciones

Keystore tampered with, or password was incorrect
La contraseña del store es incorrecta. Cópiala de nuevo de tu gestor de contraseñas y revisa si hay espacios al final en los secretos de CI.
No se encontró ninguna clave con el alias 'release' en el keystore
El alias no coincide. Ejecuta keytool -list en el keystore para ver el alias exacto, ya que distingue entre mayúsculas y minúsculas.
El bloque final no tiene el relleno adecuado
La contraseña de la key es incorrecta. En keystores PKCS#12, la contraseña de la key debe ser igual a la del store.
Formato de keystore inválido
Una toolchain antigua de Java 8 está leyendo un archivo PKCS#12 como JKS. Configura storeType "pkcs12" en Gradle o convierte el archivo a JKS con keytool -importkeystore.
Tu Android App Bundle está firmado con la clave incorrecta
Google Play requiere la clave de upload original. Firma con esa clave o solicita un reset de la upload key en Play Console usando el certificado PEM de un nuevo keystore.
Google Sign-In o Firebase Auth fallan solo en builds de release
Añade los fingerprints SHA-1 y SHA-256 de release a Firebase, y también los fingerprints de la Play App Signing key desde Play Console.

FAQ

FAQ del generador de Android keystore

Respuestas sobre formatos de keystore, contraseñas, validez, upload keys de Google Play y qué hacer si pierdes una clave.

¿Qué es un Android keystore?

Un Android keystore es un archivo protegido por contraseña que contiene la clave privada y el certificado para firmar tu APK o Android App Bundle. Android y Google Play usan esa firma para verificar que cada update proviene del mismo desarrollador, por lo que la misma clave debe firmar todos los futuros releases de la app.

¿Cómo genero un Android keystore online sin Android Studio?

Completa tu nombre, email, país code, un alias de clave, un periodo de validez y una contraseña en el formulario de arriba, y luego selecciona Generate keystore. Obtendrás un keystore .p12 listo para usar, una copia PEM del certificado y los fingerprints SHA-1 y SHA-256. No necesitas instalar Android Studio, JDK ni keytool.

¿Qué formato de archivo produce este generador de keystore de Android?

Genera un keystore PKCS#12 (.p12) con una única clave de firma RSA de 2048 bits y un certificado firmado con SHA-256, además de una exportación del certificado en PEM. PKCS#12 es el tipo de keystore por defecto desde Java 9 y lo aceptan Gradle, apksigner, jarsigner y Google Play. Si una herramienta antigua necesita un archivo JKS, conviértelo con keytool -importkeystore.

¿Es seguro generar un keystore online? ¿Se guarda mi clave?

El keystore se genera bajo demanda mediante un endpoint Capgo stateless sobre HTTPS y se devuelve directamente a tu navegador. Las respuestas se envían con Cache-Control: no-store, y la clave privada, la contraseña y los archivos nunca se escriben en una base de datos ni se conservan tras la respuesta. Si tu política de seguridad exige que las claves nunca salgan de tu máquina, usa el comando keytool equivalente que aparece en esta página.

¿Puedo usar este keystore para los releases en Google Play?

Sí. Úsalo como upload key para una nueva app con Play App Signing, o como app signing key para distribuir APKs directamente. Google Play exige que el certificado sea válido al menos hasta el 22 de octubre de 2033, algo que cubre la validez por defecto de 25 años.

¿Deben ser diferentes la contraseña del keystore y la de la clave?

Los keystores PKCS#12 usan una sola contraseña para el contenedor y la clave. En Gradle, el Capacitor CLI, fastlane o Capgo Cloud Build, introduce el mismo valor tanto para la contraseña del store como para la de la clave.

¿Qué periodo de validez debo elegir?

Mantén el valor por defecto de 25 años. Google recomienda al menos 25 años, y Google Play rechaza subidas firmadas con certificados que expiren antes del 22 de octubre de 2033. No podrás extender la validez de una clave existente más adelante.

¿Qué pasa si pierdo mi keystore o contraseña?

Si tu app usa Play App Signing, puedes pedir a Google que resetee la upload key desde Play Console generando un nuevo keystore aquí y subiendo su certificado PEM. Sin Play App Signing, perder la clave significa que no podrás publicar actualizaciones en la misma ficha de la app; así que guarda el archivo, el alias y la contraseña en un gestor de secretos.

¿Necesito esta herramienta para un debug keystore?

Normalmente no. El SDK de Android crea automáticamente un debug keystore en ~/.android/debug.keystore con la contraseña android y el alias androiddebugkey. Usa este generador para las release y upload keys que deben permanecer estables entre lanzamientos en la tienda.

¿Dónde encuentro los fingerprints SHA-1 y SHA-256?

Se muestran en el panel de resultados justo después de la generación. Regístralos en Firebase, Google Sign-In, Google Maps o Android App Links (assetlinks.json). Ten en cuenta que una vez que Play App Signing vuelva a firmar tu app, los servicios de Google también necesitarán el fingerprint de la app signing key de Play Console.

¿Funciona con apps de Capacitor, Ionic, React Native y Flutter?

Sí. El keystore es independiente del framework. Cualquier build de Android que use Gradle puede firmar con él, incluyendo Capacitor, Ionic, React Native, Flutter y proyectos nativos en Kotlin o Java.

Capgo Native Build

Compila y firma apps iOS y Android en la nube con Capgo

Sube el keystore generado con esta herramienta, lanza builds de release desde tu CI y envía Android App Bundles firmados a Google Play sin gestionar tu propia granja de builds.

Explora Native Build