Cómo usar la firma de apps de Google Play

Con la firma de apps de Google Play, Google administra y protege la clave de firma de tu app, y la usa para firmar los APK que se distribuyen. Es una forma segura de almacenar la clave de firma que te protegerá si alguna vez la pierdes o se ve comprometida.

Importante: Para usar Android App Bundle, el formato de publicación de apps recomendado, debes inscribirte en el programa de firma de apps de Google Play antes de subir el paquete de aplicación a Play Console.

Para inscribirte en este programa, debes ser propietario de una cuenta o un usuario con los permisos globales para "Administrar versiones en producción" y aceptar las Condiciones del Servicio. Las apps solo se pueden inscribir en el programa de firma de apps de Google Play de a una por vez.

Cómo funciona

Cuando usas la firma de apps de Google Play, las claves se almacenan en la misma infraestructura que usa Google para almacenar sus propias claves. Las claves se protegen con el servicio de administración de claves de Google. Si quieres obtener más información acerca de la infraestructura técnica de Google, consulta los informes de seguridad de Google Cloud.

Las apps para Android se firman con una clave privada. Para garantizar que las actualizaciones sean confiables, cada clave privada tiene un certificado público asociado que los dispositivos y servicios usan para verificar si esas apps provienen de un origen seguro. Los dispositivos solo aceptan actualizaciones cuando la firma coincide con la firma de la app instalada. Si permites que Google administre la clave de firma de tu app, el proceso será más seguro.

Nota: La participación en el programa de firma de apps de Google Play es opcional. Puedes subir un APK y administrar tus propias claves en lugar de usar un paquete de aplicación. Sin embargo, si pierdes tu almacén de claves o este se ve comprometido, no podrás actualizar tu app sin publicar una app nueva con un nuevo nombre de paquete.

Descripciones de claves, artefactos y herramientas
Término Descripción
Clave de firma de la app

La clave que usa Google Play para firmar los APK que se implementan en el dispositivo de un usuario. Cuando habilitas la firma de apps de Google Play, puedes subir una clave de firma de la app existente o pedirle a Google que genere una.

La clave de firma no se puede cambiar durante la vigencia de la app. Debes mantener la clave de firma de tu app en secreto, pero puedes compartir el certificado público con otras personas.

Clave de carga

La clave que usas para firmar el paquete de aplicación o APK antes de subirlo a Google Play. Debes mantenerla en secreto, pero puedes compartir el certificado público de la app con otras personas. Por motivos de seguridad, te recomendamos que la clave de firma de la app y la clave de carga sean distintas.

Existen dos formas de generar una clave de carga:

  • Usar la clave de firma de tu app: Si le pides a Google que genere una clave de firma cuando habilitas la firma de apps, la clave que uses para la primera versión también será tu clave de carga.
  • Usar una clave de carga distinta: Si proporcionas tu propia clave de firma cuando habilitas la firma de apps, tendrás la opción de generar una clave de carga nueva para aumentar la seguridad. Si no generas una nueva, usarás la clave de firma de tu app como clave de carga para firmar las actualizaciones.
Certificado (.der o .pem)

Contiene una clave pública, así como información de identificación adicional sobre el propietario de la clave. El certificado de clave pública permite que cualquier persona verifique quién firmó el paquete de aplicación o APK, y puedes compartirlo con quien quieras porque no incluye tu clave privada.

Para registrar tus claves con los proveedores de API, puedes descargar el certificado público de la clave de firma de la app y tu clave de carga desde la página de firma de apps de Play Console. Puedes compartir el certificado de clave pública con quien quieras; este no incluye tu clave privada.

Huella digital del certificado

Una representación corta y única de un certificado que suelen solicitar los proveedores de API junto con el nombre del paquete para registrar una aplicación que usará su servicio.

Puedes encontrar las huellas digitales MD5, SHA-1 y SHA-256 de los certificados de carga y firma de apps en la página de firma de apps de Play Console. Para procesar otras huellas digitales, descarga el certificado original (.der) de la misma página.

Almacén de claves Java (.jks o .keystore) Un repositorio de certificados de seguridad y claves privadas.
Herramienta Play Encrypt Private Key (PEPK)

Herramienta que se utiliza para exportar claves privadas de un almacén de claves Java y encriptarlas para transferirlas a Google Play.

Cuando proporciones la clave de firma de la app para que la use Google, selecciona la opción para exportar y subir la clave (y su certificado público, si fuera necesario) y sigue las instrucciones para descargar y usar la herramienta. Si lo prefieres, puedes descargar, revisar y usar el código abierto de la herramienta PEPK.

Proceso de firma de apps

Puedes subir APK firmados con la clave de firma original antes o después de habilitar la firma de apps de Google Play.

Si comenzaste a usar Android App Bundles, puedes probarlos en los segmentos de prueba mientras usas tu APK existente en producción. El proceso funciona de la siguiente manera:

  1. Firmas el paquete de aplicación o APK y lo subes a Play Console.
  2. En función del contenido que subas, el proceso de firma difiere de las siguientes maneras:
    • Paquete de aplicación: Google genera APK optimizados a partir del paquete de aplicación y los firma con la clave de firma de la app.
    • APK firmado con la clave de carga: Google verifica la firma del APK, la quita y luego vuelve a firmar el APK con la clave de firma de la app.
    • APK firmado con la clave de firma de la app: Google verifica la firma.
  3. Google entrega los APK firmados a los usuarios.

Habilita la firma de apps de Google Play

Apps nuevas

Paso 1: Crea una clave de carga

  1. Sigue las instrucciones para crear una clave de carga.
  2. Firma tu nuevo APK con la clave de carga.

Paso 2: Prepara tu versión

  1. Sigue las instrucciones para preparar y lanzar la versión.
  2. Una vez que hayas elegido un segmento de prueba, configura la firma de apps en la sección "Permite que Google administre y proteja la clave de firma de la app".
  3. Selecciona Continuar para que la clave generada se convierta en la clave de carga que usarás para firmar versiones futuras. También puedes elegir Opciones avanzadas para optar por lo siguiente:
    • Usar la misma clave que otra app de tu cuenta de desarrollador (opción 2).
    • Subir una clave de firma existente (opciones 2, 3 y 4). Para ello, selecciona la opción de exportación y carga que mejor funcione en tu caso. Una vez que hayas cargado la clave de firma de tu app y su certificado público, podrás crear una clave de carga o seguir usando la clave de firma de la app como clave de carga.

Nota: Debes aceptar las Condiciones del Servicio y habilitar la firma de apps para continuar.

Paso 3: Registra la clave de firma de tu app con proveedores de API

Si tu app usa una API, por lo general deberás registrar el certificado de la clave con la que Google accede a tu app para su autenticación mediante el uso de la huella digital del certificado. Para encontrar el certificado, sigue estos pasos:

  1. Accede a tu cuenta de Play Console.
  2. Selecciona una app.
  3. En el menú de la izquierda, selecciona Administración de lanzamientos > Firma de apps.
  4. Copia las huellas digitales (MD5, SHA-1 y SHA-256) del certificado de firma de tu app.
    • Si el proveedor de la API requiere una huella digital de otro tipo, también puedes descargar el certificado original en formato .der y convertirlo mediante las herramientas de transformación que exija el proveedor.
Apps existentes

Paso 1: Inscríbete en el programa de firma de apps de Google Play

  1. Accede a tu cuenta de Play Console.
  2. Selecciona una app.
  3. En el menú de la izquierda, selecciona Administración de lanzamientos > Firma de apps.
  4. Si todavía no lo hiciste, revisa las Condiciones del Servicio y selecciona Aceptar.

Paso 2: Envía la clave original a Google y crea una clave de carga

  1. Busca la clave de firma original de tu app.
  2. Accede a tu cuenta de Play Console.
  3. Selecciona una app.
  4. En el menú de la izquierda, selecciona Administración de lanzamientos > Firma de apps.
  5. Selecciona la opción de exportación y carga que mejor se adapte al proceso de lanzamiento y sube una clave de firma de la app existente.

Paso 3: Crea una clave de carga (opcional y recomendado)

  1. Crea una clave de carga y sube el certificado a Google Play.
    • También puedes seguir usando la clave de firma de la app como clave de carga.
  2. Copia las huellas digitales (MD5, SHA-1 y SHA-256) del certificado de firma de tu app.
    • Para realizar pruebas, es posible que debas registrar el certificado de la clave de carga con los proveedores de API mediante la huella digital del certificado y la clave de firma de la app.

Paso 4: Firma la próxima actualización de tu app con la clave de carga

Cuando publiques actualizaciones de tu app, tendrás que firmarlas con tu clave de carga.

  • Si no generaste una clave de carga nueva: Sigue usando la clave de firma original de tu app para firmar las actualizaciones antes de subirlas a Google Play. Si pierdes la clave de firma, puedes generar una clave de carga nueva y registrarla con Google para seguir actualizando la app.
  • Si generaste una clave de carga nueva: Úsala para firmar las actualizaciones antes de subirlas a Google Play. Después de que subas las actualizaciones, Google controlará la clave de carga para verificar tu identidad. Si pierdes la clave de carga, puedes comunicarte con el equipo de asistencia para restablecerla.

Crea una clave de carga y actualiza los almacenes de claves

Para mayor seguridad, te recomendamos firmar tu app con una clave de carga nueva en lugar de usar la clave de firma de la app.

Puedes crear una clave de carga cuando aceptas participar en el programa de firma de apps de Google Play. Si decides generarla en otro momento, visita Administración de lanzamientos > Firma de apps cuando quieras crearla.

Para crear una clave de carga, sigue estos pasos:

  1. Sigue las instrucciones que aparecen en el sitio para desarrolladores de Android. Almacena la clave en un lugar seguro.
  2. Exporta el certificado de la clave de carga en formato PEM. Reemplaza los siguientes argumentos subrayados:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Durante el proceso de actualización, sube el certificado para registrarlo con Google cuando se te solicite.

Cuando usas una clave de carga:

  • Tu clave de carga solo está registrada en Google para autenticar la identidad del creador de la app.
  • Tu firma se quita de los APK subidos antes de enviarlos a los usuarios.
Restricciones de la clave de carga
  • Debe ser una clave RSA de 2048 bits o más.
  • No se admiten las claves DSA, EC o RSA de menos de 2048 bits.
Actualiza los almacenes de claves

Estas son algunas ubicaciones que recomendamos revisar y actualizar después de crear una clave de carga:

  • Maquinas locales
  • Servidor en sitio bloqueado (diferentes LCA)
  • Máquina en la nube (diferentes LCA)
  • Servicios de administración confidencial
  • Repositorios (Git)

Recomendaciones

  • Si también distribuyes la app fuera de Google Play o planeas hacerlo en el futuro, puedes generar la clave de firma de la app que vas a usar para todas las tiendas de apps y, luego, subirla a Google cuando habilites la firma de apps de Google Play.
  • Para proteger tu cuenta, activa la verificación en dos pasos en todas las cuentas con acceso a tu Play Console.
  • Después de publicar un paquete de aplicación en un segmento de prueba o de producción, puedes visitar el explorador de paquetes de aplicación para descargar un archivo ZIP con todos los APK de un dispositivo específico firmados con la clave de firma de la app. Puedes instalarlos en un dispositivo a través de la utilidad de línea de comandos bundletool.
  • Para mayor seguridad, genera una clave de carga nueva que sea distinta de la clave de firma de tu app.
  • Si quieres probar el APK firmado con tu clave de carga, deberás registrar la clave de carga con cualquier servicio o API que use la firma de tu app para autenticación (como la API de Google Maps o el SDK de Facebook).
  • Si usas una API de Google, te recomendamos registrar el certificado de carga en Google Cloud Console para tu app.

Claves de carga perdidas o comprometidas

Si perdiste la clave de carga privada o esta se ve comprometida, puedes crear una nueva y pedirle al propietario de la cuenta que se comunique con el equipo de asistencia para que la restablezca. Cuando el propietario de la cuenta se comunique con el equipo de asistencia, asegúrate de que adjunte el archivo upload_certificate.pem.

Cuando nuestro equipo de asistencia haya registrado la clave de carga nueva, recibirás un correo electrónico y, luego, podrás actualizar tus almacenes de claves y registrar tu clave con los proveedores de API.

Importante: La clave de firma de la app que usa Google Play para volver a firmar los APK antes de su entrega a los usuarios no se ve afectada cuando restableces tu clave de carga.

¿Te resultó útil este artículo?
¿Cómo podemos mejorarla?