¿Por qué conviene 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 te permite acceder a mejoras 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ú (debes mantenerla segura) |
|
| Clave de firma de la app |
Google Play |
|
| Disponible para criptografía cuántica | Google Play |
|
Nota: Para lograr la 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 la entidad 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 app nueva: Tu app se inscribirá automáticamente en la firma híbrida lista para criptografía cuántica con claves generadas por Google. También generamos una clave clásica independiente para usar en los bloques de firma que se reconocen en dispositivos con Android 16 y versiones anteriores.
- 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 una nueva versión. De forma predeterminada, cuando subes tu paquete de aplicación, tu app se inscribe automáticamente en la firma híbrida lista para criptografía cuántica con claves generadas por Google.
- Cambia la clave de firma de la app (opcional): Los desarrolladores avanzados que quieran administrar su propia clave pueden cambiar esta configuración predeterminada. Para ello, haz clic en Cambiar clave de firma en la sección Integridad de la app de tu versión o navega a Protegido con Play > Protección de Play Store > Administrar la firma de apps de Play. Luego, puedes elegir entre las siguientes opciones:
- Usar la misma clave que otra app de esta cuenta de desarrollador
- Proporciona una copia de la clave de firma de la app (siguiendo las instrucciones)
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 > Protección de Play Store > Go to Play app signing.
- Acepta las condiciones del servicio, si todavía no lo hiciste.
- Transfiere una copia de tu clave original: Descarga la herramienta PEPK y sigue las instrucciones paso a paso unificadas para encriptar y subir la clave de firma existente de tu app 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 > Play Store distribution > Go to Play app signing.
- Desplázate hasta la sección Clave de firma de la app.
- Copia las huellas digitales requeridas (SHA-1 o SHA-256). Si tu app usa la firma híbrida lista para la criptografía cuántica, debes copiar las huellas digitales de tres claves y registrar cada una de ellas con tus proveedores de APIs: tus nuevas claves clásicas y de PQC que se usan en dispositivos más nuevos, y tu clave clásica que se usa en dispositivos más antiguos.
- Pega estas huellas digitales en la consola de tu proveedor de APIs (por ejemplo, la consola de Google Cloud).
Nota: 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 más segura a nivel criptográfico, 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, para realizar una validación adicional, Google Play Protect verifica 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 múltiples 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 > Play Store distribution > Ir a Firma de apps.
- 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
- Proporcionar una copia de la clave de firma de la app (siguiendo las instrucciones)
- Haz clic en Guardar y registra las nuevas huellas digitales de la clave con los proveedores de APIs.
Cómo solicitar 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 las rutas de acceso a keytool y al almacén de claves, consulta la guía de firma de apps de Android Studio). - Una vez que se genere el archivo PEM, envía la solicitud de restablecimiento en Play Console.
- Navega a Protegido con Play > Protección de Play Store > Administrar la firma de apps de Play.
- En la sección Certificado de clave de carga, haz clic en Solicitar que se restablezca la clave de carga.
- Ingresa el motivo del restablecimiento.
- Sube tu archivo
upload_certificate.pemy haz clic en Solicitar.
Prácticas recomendadas y distribución alternativa
- Seguridad: Para proteger tu acceso a Play Console aplica la verificación en 2 pasos para todos los usuarios.
- Mejoras de Play: Si te inscribes en la firma de apps de Play, podrás acceder a las mejoras de Play para tus paquetes de aplicaciones. Para recibir las actualizaciones, primero realiza los cambios necesarios cuando crees una versión nueva 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. [1] Puedes permitir que Google genere tu clave de firma de apps y descargar un APK universal firmado desde Play Console o la API de Play Developer para distribuirlo en otro lugar (en Play Console, ve a Prueba y lanza > Versiones y paquetes más recientes, selecciona tu paquete de aplicación y haz clic en la pestaña Descargas) o [2] puedes generar la clave de firma de apps que quieras usar para todas las tiendas de aplicaciones y transferir una copia a Google cuando configures la firma de apps de Play. Obtén más información sobre cómo funcionan las actualizaciones de la app y las opciones para habilitar o inhabilitar las actualizaciones en varias tiendas.
- Pruebas: Utiliza 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 paquete 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 que reúnan los requisitos 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. Esto excluye todas las apps que usan la firma híbrida preparada para criptografía cuántica, que aún no es compatible con la firma v4. 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. Si usas un proyecto alojado por el usuario, significa que asumes la responsabilidad total de las operaciones de firma de apps y que Google Play no puede realizar funciones esenciales, como la recuperación ante desastres.