Cómo funcionan las actualizaciones de apps

En esta guía, se explica cómo la plataforma de Android y Google Play manejan las actualizaciones de apps y se analizan varias opciones para los desarrolladores que publican sus apps en varias tiendas de aplicaciones.

Cómo maneja Android las actualizaciones de apps

Cada app para Android tiene un ID de aplicación único que parece un nombre de paquete de Java o Kotlin, como com.example.myapp. Este ID permite identificar de manera exclusiva cada app en el dispositivo. Los dispositivos Android solo pueden tener instalada una app con un ID de aplicación determinado a la vez.

Para que la plataforma de Android acepte una actualización, se deben cumplir las siguientes condiciones:

  • El ID de aplicación de la actualización debe ser el mismo que el de la app instalada.
  • El certificado de firma de la actualización debe ser el mismo que el de la app instalada o debe contener una prueba de rotación válida.
  • El código de versión de la actualización debe ser mayor o igual que el código de versión de la app instalada.
  • En algunos casos, es posible que el usuario deba aceptar la actualización.

Ten en cuenta que no hay prevención integrada contra diferentes instaladores que actualicen una app cuando las actualizaciones tengan el mismo certificado de firma y el mismo código de versión o uno superior.

Para instalar una app que no cumple con las condiciones anteriores, el usuario primero debe desinstalar la versión instalada, lo que borra todos los datos de app del dispositivo.

Cómo Google Play actualiza las apps

El enfoque de Google Play para actualizar apps se basa en los siguientes principios:

  • Mantener actualizados a los usuarios. Se recomienda mantener las apps actualizadas para proteger a los usuarios contra problemas de seguridad y aprovechar las mejoras más recientes en las funciones.
  • Respetar la elección del usuario. Google Play actualiza las apps asociadas a cuentas de usuarios según sus preferencias de actualización, como permitir o inhabilitar el uso de datos medidos.
  • Respetar la elección del desarrollador. Google Play usa las opciones de configuración de los desarrolladores para determinar las actualizaciones de la app.
  • Evitar desperdiciar recursos. Para ahorrar la duración de batería, optimiza el momento en que se descarguen las actualizaciones y minimiza el uso de datos mediante técnicas como la compresión y la aplicación de parches.

Para una app determinada instalada en un dispositivo, Google Play actualiza la app si cumple con las siguientes condiciones:

  • La app está publicada en Google Play con el mismo ID de aplicación.
  • El certificado de firma de la app publicada coincide con el de la versión instalada actualmente o contiene una prueba de rotación válida.
  • La app es parte de la biblioteca del usuario o la precargó un OEM.
  • La app está disponible para este usuario y este dispositivo, según las opciones de segmentación que definió el desarrollador.
  • La app instalada es obsoleta en comparación con la versión disponible en Google Play.

Siempre que se cumplan estas condiciones, Google Play podrá actualizar la app. En las siguientes subsecciones, se proporcionan más detalles sobre algunas de las condiciones enumeradas.

Ten en cuenta que, en otras ocasiones, Google Play descarga contenido de la app o realiza tareas de mantenimiento en los objetos binarios de la app en nombre de los desarrolladores sin cambiar el código de la versión de Android, por ejemplo, cuando se completan descargas parciales o divisiones on demand.

Está publicada en Google Play

Google Play usa el ID de aplicación para identificar de forma exclusiva las aplicaciones publicadas en Google Play. Esta condición se cumple si el ID de aplicación de la app instalada coincide con el de una app publicada en Google Play.

Es parte de la biblioteca del usuario

Esta condición se cumple si es verdadera una de las siguientes condiciones:

  • Cualquier Cuenta de Google activa en el dispositivo ya adquirió la app si se presionó el botón de instalación o compra en Google Play.
  • El OEM precargó la app como parte de la imagen del sistema.

Los usuarios también pueden quitar apps de sus bibliotecas de forma manual.

Está desactualizada

Para determinar si una app instalada en un dispositivo está desactualizada, Google Play observa el código de versión. Si la versión disponible para descargar en Google Play tiene un código de versión superior al de la instalada, Google Play considerará que la app instalada está desactualizada.

Apps en varias tiendas de aplicaciones

Existen varias maneras de controlar las actualizaciones entre tiendas cuando publicas una app en varias tiendas de aplicaciones. En las siguientes secciones, se abarcan estas opciones y sus posibles ventajas y desventajas.

Cómo evitar las actualizaciones en varias tiendas

Es posible que quieras evitar que cada tienda de aplicaciones realice actualizaciones para tu app entre tiendas. Puedes elegir hacerlo si el contenido de tu app es diferente en cada tienda de aplicaciones. Para ello, publica la app con dos IDs de aplicación diferentes o publica la app con el mismo ID de aplicación y dos claves de firma diferentes.

Es posible que desees minimizar la reutilización de tu clave de firma a fin de reducir el riesgo de una vulneración de la clave y, por lo tanto, usar una clave de firma de la app diferente para cada tienda de aplicaciones. Si lo haces, evitarás las actualizaciones en varias tiendas.

Independientemente del enfoque que elijas, Android considera incompatibles las apps sin ID de aplicación y clave de firma coincidentes. Un usuario que desee cambiar de una tienda a otra deberá borrar la app instalada (lo que borrará todos los datos asociados con esa app) y volver a instalarla desde la otra tienda.

Cómo permitir las actualizaciones en varias tiendas

Es posible que desees permitir que cada tienda de aplicaciones realice actualizaciones entre tiendas para tu app. Puedes elegir hacerlo si distribuyes tu app con el mismo contenido en todas las tiendas de aplicaciones y quieres priorizar que los usuarios se mantengan actualizados. Siempre y cuando uses el mismo ID de aplicación y las mismas claves de firma en todas las tiendas de aplicaciones en las que publicas tu app, cada tienda de aplicaciones puede actualizar las instalaciones de la app sin importar de dónde el usuario descargó la app originalmente.

Sin embargo, esto puede generar un comportamiento impredecible para tus usuarios según la forma en que cada tienda de aplicaciones elija implementar las actualizaciones de apps en varias tiendas. Por ejemplo, un usuario podría inhabilitar las actualizaciones de una tienda sin darse cuenta de que otra tienda podría seguir proporcionando actualizaciones.

Si antes permitías las actualizaciones en varias tiendas, pero deseas comenzar a preferir una fuente de actualización específica cuando está presente en el dispositivo, puedes lanzar la app con un código de versión superior en la tienda de aplicaciones de tu preferencia y mantener el lanzamiento con códigos de versión inferiores en otras tiendas de aplicaciones. Una vez que se haya instalado la actualización con código de versión superior al de la fuente preferida, las otras tiendas de aplicaciones no podrán realizar actualizaciones entre tiendas en ese dispositivo.