Firma de aplicaciones
Claves y Play App Signing
Firma de aplicaciones es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.
Por qué las aplicaciones deben estar firmadas
Android no instalará una aplicación a menos que esté firmada digitalmente. La firma demuestra dos cosas: quién publicó la aplicación y que el APK no ha sido manipulado desde entonces.
Y lo que es crucial: las firmas vinculan las actualizaciones con la aplicación original. Una actualización solo se acepta si está firmada con la misma clave que la versión instalada. Si pierde esa clave, ya no podrá actualizar su aplicación nunca más.
En esta lección se explican los almacenes de claves, la configuración de firma y el enfoque moderno y más seguro de Google: Play App Signing.
Almacenes de claves y claves
Su identidad de firma se encuentra en un archivo de almacén de claves (.jks o .keystore). Un almacén de claves puede contener varias claves; cada clave tiene un alias y su propia contraseña.
- Contraseña del almacén de claves — desbloquea el archivo.
- Alias de la clave — identifica la clave que contiene.
- Contraseña de la clave — desbloquea esa clave específica.
Las compilaciones de depuración que ejecuta a diario se firman automáticamente con un almacén de claves de depuración desechable. Para una versión necesita uno propio.
Crear un almacén de claves
Puede crear un almacén de claves desde el cuadro de diálogo de Android Studio o con el comando keytool que incluye el JDK.
Use una validez prolongada (25 años o más): si la clave caduca, no podrá publicar actualizaciones. RSA 2048 es el estándar.
keytool -genkeypair \
-v \
-keystore release.jks \
-alias upload \
-keyalg RSA \
-keysize 2048 \
-validity 10000El bloque signingConfigs
Para firmar automáticamente durante una compilación de Gradle, declare una entrada signingConfigs y asígnela al tipo de compilación release.
Esto funciona, pero observe que las contraseñas aparecen directamente en el archivo de compilación; solucionaremos ese problema a continuación.
android {
signingConfigs {
create("release") {
storeFile = file("release.jks")
storePassword = "superSecret"
keyAlias = "upload"
keyPassword = "superSecret"
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
}
}
}Mantener los secretos fuera de Git
No confirme nunca las contraseñas ni el almacén de claves en el control de versiones. Léalos de un archivo local keystore.properties ignorado por Git.
Añada keystore.properties y *.jks a .gitignore.
// top of app/build.gradle.kts
val keystoreProps = Properties().apply {
val f = rootProject.file("keystore.properties")
if (f.exists()) load(f.inputStream())
}
android {
signingConfigs {
create("release") {
storeFile = file(keystoreProps["storeFile"] as String)
storePassword = keystoreProps["storePassword"] as String
keyAlias = keystoreProps["keyAlias"] as String
keyPassword = keystoreProps["keyPassword"] as String
}
}
}El archivo keystore.properties
El archivo de propiedades correspondiente es una lista sencilla de pares clave=valor, que se mantiene fuera de Git y se almacena de forma segura (en un gestor de contraseñas o un almacén de secretos de CI).
En un servidor de CI, inyectaría estos valores como secretos respaldados por variables de entorno en lugar de utilizar un archivo confirmado en el repositorio.
# keystore.properties (git-ignored!)
storeFile=release.jks
storePassword=superSecret
keyAlias=upload
keyPassword=superSecretPlay App Signing
Las versiones modernas de Play utilizan Play App Signing. En este caso, Google guarda la clave de firma de la aplicación real en su infraestructura segura y la utiliza para firmar los APK que se entregan a los usuarios.
Usted solo administra una clave de carga: firma el bundle con ella y lo carga. Play verifica su clave de carga, la elimina y vuelve a firmar con la clave de firma de la aplicación.
La gran ventaja es que, si alguna vez pierde la clave de carga, puede solicitar que se restablezca; la clave de firma de la aplicación (en la que confían los usuarios) permanece segura con Google.
Clave de carga frente a clave de firma de la aplicación
Son dos claves con dos funciones distintas: no las confunda:
- Clave de carga — es suya. Firma el AAB que carga. Se puede restablecer si se pierde.
- Clave de firma de la aplicación — pertenece a Google (o es una que usted cargó una vez). Firma los APK finales que instalan los usuarios. Es permanente.
Al registrar una aplicación nueva, la opción más sencilla es permitir que Google genere la clave de firma de la aplicación y firmar las cargas con su clave de carga.
Verificar una firma
Para confirmar cómo está firmado un artefacto, use apksigner de las build-tools del SDK de Android. Esta herramienta informa del certificado de firma y de los esquemas de firma (v1/v2/v3) presentes.
Comparar la huella digital SHA-256 del certificado también es la forma de registrar su aplicación en servicios como Firebase o Google Sign-In.
# Verify and print signer certificates of an APK
apksigner verify --print-certs app-release.apk
# Show the SHA-256 fingerprint of a keystore key
keytool -list -v -keystore release.jks -alias uploadProteger sus claves
Su clave de carga es difícil de sustituir y su clave de firma de la aplicación (si la administra usted) es irreemplazable. Trátelas como auténticos tesoros:
- Haga copias de seguridad del almacén de claves en al menos dos ubicaciones seguras.
- Guarde las contraseñas en un gestor de contraseñas, nunca en el código fuente.
- Use Play App Signing para poder recuperar una clave de carga perdida.
- Limite quién puede acceder al almacén de claves dentro del equipo.
Muchas aplicaciones publicadas se han abandonado simplemente porque el desarrollador perdió la clave y ya no pudo publicar actualizaciones.
Integrarlo todo
El flujo completo de firma de una versión es el siguiente:
- Cree un almacén de claves de carga con
keytool. - Conéctelo a
signingConfigsleyendo los secretos dekeystore.properties. - Compile un
.aabfirmado con./gradlew bundleRelease. - Cárguelo en Play, que volverá a firmarlo con la clave de firma de la aplicación antes de entregarlo a los usuarios.
A partir de ahora, cada actualización debe firmarse con esa misma clave de carga.
Comprobación rápida
Con Play App Signing activado, ¿qué clave utiliza usted para firmar el bundle que carga y qué sucede si la pierde?
Resumen: firma de aplicaciones
La firma es lo que permite instalar y actualizar una aplicación de Android:
- Un almacén de claves contiene claves; cada clave tiene un alias y contraseñas.
- Cree una clave con validez prolongada mediante
keytooly conéctela asigningConfigs. - Mantenga las contraseñas fuera de Git mediante
keystore.propertiesy.gitignore. - Play App Signing separa las claves en su clave de carga, que se puede restablecer, y la clave de firma de la aplicación permanente de Google.
- Haga copias de seguridad de las claves con cuidado: perder una clave puede poner fin a la vida de una aplicación.
A continuación: configurar Play Console y la ficha de su aplicación.
Aprende Kotlin con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 36
- Lecciones
- 152
Preguntas frecuentes
¿La lección «Firma de aplicaciones» es gratis?
Sí — el texto completo de «Firma de aplicaciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Firma de aplicaciones»?
Claves y Play App Signing Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Android Academy?
No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Firma de aplicaciones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Android Academy?
Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Preparación de una compilación de lanzamiento
- Firma de aplicaciones
- Play Console y ficha de la aplicación
- Lanzamientos graduales y actualizaciones