¿Por qué usar la firma de apps de Play? Además de proteger tus claves contra la pérdida o el compromiso permanentes, inscribirte en la firma de apps de Play desbloquea mejoras de Play para tus Android App Bundles (.aab). Si permites que Google firme los APKs de distribución optimizados que se generan a partir de tus paquetes de aplicaciones, obtendrás acceso a servicios valiosos, como la protección automática y la traducción automática de cadenas con modelos de Gemini. Los juegos obtienen acceso a servicios automáticos adicionales, como Play Games Sidekick, Jugar durante la descarga y pruebas gratuitas de títulos pagados.
Para configurar la firma de apps de Play, debes ser el propietario de la cuenta o tener el permiso Lanzar a producción, excluir dispositivos y usar la firma de apps de Play, y aceptar las Condiciones del Servicio.
Conceptos básicos
Cuando usas la firma de apps de Play, trabajas con dos claves distintas. Comprender la diferencia y sus formatos técnicos es fundamental para evitar problemas de autenticación con las APIs de terceros.
| Tipo de clave | ¿Quién la tiene? | Detalles técnicos y propósito |
|
Clave de carga |
Tú (¡mantén su seguridad!) |
|
| Clave de firma de la app |
Google Play |
|
Nota: Para lograr una máxima seguridad, la clave de carga y la clave de firma de la app deben ser diferentes.
Cómo Google firma tu app: Cuando Google genera y firma tus APKs con la clave de firma de la app, usa apksigner para agregar dos sellos al manifiesto de la app (com.android.stamp.source y com.android.stamp.type). Estos sellos garantizan que tus APKs se puedan rastrear de forma segura hasta el firmante original.
Configura la firma de apps de Play
El proceso de configuración depende de si publicas una app nueva o migras una existente.
Para apps nuevas
- Crea una clave de carga: Genera un almacén de claves para firmar tu paquete de aplicación de lanzamiento. Puedes generarlo en Android Studio o usar la utilidad keytool de Java desde la línea de comandos.
- Sube tu paquete de aplicación: Ve a Play Console y prepara un nuevo lanzamiento. De forma predeterminada, cuando subes tu paquete de aplicación, la firma de apps de Play genera automáticamente una clave RSA de 4,096 bits con seguridad criptográfica para administrar y proteger tu app. Más del 90% de las apps nuevas usan este valor predeterminado recomendado, y no se requiere ninguna acción adicional para configurarlo.
- Cambia la clave de firma de la app (opcional): Los desarrolladores avanzados que quieran administrar su propia clave pueden cambiar este valor predeterminado. Para ello, haz clic en Cambiar la clave de firma en la sección Integridad de la app de tu versión o navega a Protegido con Play > Distribución en Play Store > Ir a la firma de apps de Play. Luego, puedes elegir una de las siguientes opciones:
- Usar la misma clave que otra app de esta cuenta de desarrollador
- Proporciona una copia de tu clave de firma de la app: Primero, descarga la clave de encriptación pública de Google desde Play Console. Luego, usa la herramienta Play Encrypt Private Key (PEPK) (puedes descargar la herramienta compilada o su código fuente directamente desde la consola para verificarla o compilarla por tu cuenta) para encriptar y subir de forma segura tu clave RSA existente (de 2,048 bits o más) desde cualquier repositorio.
Para apps existentes
Si actualmente administras tus propias claves y subes APKs, puedes actualizar a la firma de apps de Play para aprovechar los paquetes de aplicaciones y las mejoras de Play.
- En Play Console, ve a Protegido con Play > Distribución en Play Store > Ir a la firma de apps de Play.
- Si aún no lo hiciste, acepta las Condiciones del Servicio.
- Transfiere una copia de tu clave de firma de la app original: Descarga la herramienta PEPK y sigue las instrucciones unificadas paso a paso para encriptar y subir tu clave de firma de la app existente desde cualquier repositorio.
Regístrate con los proveedores de APIs
Si tu app usa APIs (como Google Maps, OAuth o Acceso con Facebook), esos servicios autentican tu app con la huella digital de la clave de firma de la app.
Como Google firma el APK final, debes registrar la huella digital de la clave de firma de la app que posee Google con tus proveedores de APIs, no solo con tu clave de carga local.
- Ve a Protegido con Play > Distribución en Play Store > Ir a Firma de apps de Play.
- Desplázate hasta la sección Clave de firma de la app.
- Copia las huellas digitales requeridas (SHA-1 o SHA-256).
- Pega estas huellas digitales en la consola de Google Cloud de tu proveedor de APIs (por ejemplo, la consola de Google Cloud).
Sugerencia: Actualiza tu archivo assetlinks.json con estas huellas digitales si usas Android App Links.
Administra tus claves
Cómo actualizar la clave de firma de la app
Si se vulnera la clave de firma de la app o necesitas una clave criptográficamente más segura, puedes solicitar una actualización anual de la clave para todas las instalaciones en Android N (nivel de API 24) y versiones posteriores.
Cómo funciona la aplicación forzosa en las diferentes versiones de Android:
- Android T (nivel de API 33) y versiones posteriores: La plataforma de Android aplica de manera estricta el uso de la clave actualizada.
- Android N (nivel de API 24) a Android S (nivel de API 32): La plataforma de Android no aplica de manera forzosa la clave actualizada y aún reconoce la clave de firma heredada. Sin embargo, Google Play Protect proporciona validación adicional verificando que las actualizaciones de las apps estén firmadas con tu clave actualizada (a menos que el usuario desactive la función).
Consideración importante:
- Datos compartidos: Debido a que la plataforma no aplica de manera forzosa la clave actualizada en Android S (nivel de API 32) y versiones anteriores, si usas la misma clave en varias apps para compartir datos, esas versiones anteriores de Android solo reconocerán la clave heredada para funciones como el uso compartido de permisos personalizados.
Cómo actualizar la clave:
- Ve a Protegido con Play > Distribución en Play Store > Ir a Firma de apps de Play.
- En la sección Clave de firma de la app, haz clic en Actualizar clave.
- Elige tu ruta de actualización:
- Dejar que Google Play genere una nueva clave de firma de la app (opción recomendada)
- Usar la misma clave de firma que otra app vinculada a esta cuenta de desarrollador
- Proporciona una copia de la clave de firma de la app (siguiendo las instrucciones).
- Si proporcionas tu propia clave, genera y sube una "prueba de rotación" con la herramienta apksigner (incluida en las herramientas de compilación del SDK de Android). (Para obtener detalles sobre las marcas que se usan aquí, consulta la documentación de la línea de comandos de apksigner):
- apksigner
rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
- apksigner
- Haz clic en Guardar y registra las nuevas huellas digitales de la clave con los proveedores de API.
Solicita que se restablezca la clave de carga
Si pierdes la clave de carga o sospechas que se vio comprometida, no se te bloqueará el acceso a la app.
- Crea una clave de carga nueva en Android Studio.
- Exporta el certificado al formato PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(Para obtener más ayuda con keytool y las rutas de acceso a keystore, consulta la guía de firma de apps de Android Studio). - Pídele al propietario de la cuenta que solicite un restablecimiento de la clave de carga a través del formulario de ayuda de Play Console.
- Cuando se te solicite, sube tu archivo
upload_certificate.pem.
Nota: El restablecimiento de la clave de carga no afecta la clave de firma de la app ni a los usuarios.
Prácticas recomendadas y distribución alternativa
- Seguridad: Protege tu acceso a Play Console aplicando la verificación en 2 pasos para todos los usuarios.
- Mejoras de Play: Si te inscribes en la firma de apps de Play, desbloquearás el acceso a las mejoras de Play para tus paquetes de aplicaciones. Para recibir las actualizaciones, primero realiza los cambios necesarios cuando crees un nuevo lanzamiento y, luego, sube el nuevo paquete de aplicación.
- Distribución fuera de Google Play: Si distribuyes tu app a través de otras tiendas de aplicaciones y quieres usar la misma clave de firma en todas partes, tienes dos opciones. Puedes permitir que Google genere tu clave de firma de la app y descargar un APK universal firmado de los lanzamientos y paquetes más recientes para distribuirlo en otros lugares (ve a Pruebas y lanzamiento > Lanzamientos y paquetes más recientes, selecciona tu paquete de aplicación y haz clic en la pestaña Descargas), o bien puedes generar la clave de firma de la app que quieras usar para todas las tiendas de aplicaciones y transferir una copia a Google cuando configures la firma de apps de Play.
- Pruebas: Usa el Uso compartido interno de apps para probar exactamente lo que Google Play entregará a los usuarios o descarga APKs específicos del dispositivo desde el explorador de paquetes de aplicación y, luego, instálalos de forma local con adb install-multiple *
.apk. - Esquema de firma de APK v4: La firma de apps de Play usa automáticamente la firma v4 para las apps aptas y, de esa forma, admite la distribución optimizada en dispositivos con Android 11 y versiones posteriores. No se requiere ninguna acción de tu parte. Puedes obtener más información sobre los beneficios técnicos en la documentación del esquema de firma de APK v4.
- Proyectos de Google Cloud alojados por el usuario: Si tienes requisitos de seguridad muy específicos (por ejemplo, usar claves de OEM), puedes usar la API de Play Developer para inscribirte en la Firma de apps de Play con un proyecto de Google Cloud alojado por el usuario. Nota: Esta es una configuración no estándar que no se recomienda. Usar un proyecto alojado por tu cuenta significa que asumes la responsabilidad total de las operaciones de firma de apps y evita que Google Play realice funciones esenciales, como la recuperación ante desastres.