Cómo aplicar una versión mínima de la app con Remote Config

A medida que evoluciona tu app, las versiones nuevas pueden introducir cambios que interrumpen las APIs de backend, resolver vulnerabilidades de seguridad críticas o reemplazar servicios y modelos de IA obsoletos. En estas situaciones, las versiones anteriores de la app pueden dejar de funcionar de forma confiable o segura.

Con Remote Config, puedes controlar los requisitos de la versión de la app de forma dinámica desde la nube. Si defines parámetros de versión en Remote Config, puedes solicitar o exigir a los usuarios que actualicen su app sin implementar infraestructura de servidor personalizada ni lanzar una actualización de emergencia.

Elige una estrategia de actualización

Remote Config proporciona los parámetros de versión para evaluar en el cliente, lo que te permite configurar la IU de actualización de tu app para cualquiera de las dos estrategias según la gravedad del cambio:

  • Actualización obligatoria (de bloqueo): Si una versión anterior de la app es incompatible con tu backend o representa un riesgo de seguridad, puedes bloquear el acceso a la app hasta que el usuario la actualice. Cuando la versión instalada es anterior a la mínima requerida, puedes configurar tu app para que muestre un diálogo que no se pueda descartar y que dirija al usuario a la tienda de aplicaciones de la plataforma para instalar la versión más reciente.
  • Actualización flexible (opcional): Si una actualización introduce funciones nuevas, mejoras de rendimiento o correcciones de errores menores, puedes configurar tu app para que muestre un banner o un mensaje que se pueda descartar y que anime a los usuarios a actualizarla cuando les resulte conveniente, mientras les permite seguir usando la app.

Paso 1: Configura parámetros en la consola de Firebase

Para administrar las versiones de la app, define parámetros en tu plantilla de Remote Config:

  1. En la consola de Firebase, ve a la página DevOps y participación > Remote Config > Parámetros.
  2. Haz clic en Agregar parámetro (o Crear configuración si es tu primer parámetro).
  3. Define los siguientes parámetros:
    • minimum_version: Es una cadena que representa la versión más antigua compatible con tu app (por ejemplo, "2.4.0"). Las apps que ejecutan una versión anterior a este valor se bloquean hasta que se actualizan.
    • latest_version (opcional): Es una cadena que representa la versión más reciente disponible de tu app (por ejemplo, "2.5.1"). Las apps que ejecutan una versión entre minimum_version y latest_version pueden mostrar una recomendación de actualización opcional.
    • update_url (opcional): Es la URL de la tienda en la que los usuarios pueden descargar la actualización (como tu ficha de Google Play Store o Apple App Store).
  4. Opcional: Agrega condiciones específicas de la plataforma:
    • Dado que las apps para Android y Apple suelen usar diferentes versiones de lanzamiento y URLs de la tienda, puedes agregar valores condicionales para cada plataforma en el mismo parámetro.
    • Haz clic en Agregar valor de condición > Crear condición. Asigna un nombre a la condición (por ejemplo, Android App o iOS App), selecciona App como regla de segmentación y elige tu app.
    • Establece la cadena de versión adecuada para cada condición de la plataforma y conserva el valor predeterminado como alternativa.
  5. Haz clic en Guardar y, luego, en Publicar cambios para aplicar la plantilla.

Paso 2: Implementa verificaciones de versión del cliente

En el cliente, verifica la versión de la app instalada con los parámetros Remote Config durante el inicio:

  1. Establece valores predeterminados en la app: Siempre proporciona valores predeterminados seguros en la app en tu paquete de aplicación (por ejemplo, establece minimum_version en la versión inicial de tu app, como "1.0.0"). Esta configuración de resguardo garantiza que tu app siga funcionando con normalidad si el dispositivo está sin conexión o si falla la solicitud de recuperación inicial. Para obtener orientación específica de la plataforma, consulta Descarga los valores predeterminados de la plantilla de Remote Config.
  2. Recupera y activa Remote Config: Recupera y activa los valores de plantilla más recientes cuando se inicia tu app.
  3. Comparar versiones: Recupera las cadenas minimum_version y latest_version activas, y compáralas con la versión de la app instalada actualmente.

  4. Toma medidas en función de la comparación de versiones:

    • Aplicar actualización obligatoria: Si current_version es anterior a minimum_version, muestra una alerta modal de pantalla completa que no se puede descartar. Inhabilita la navegación al resto de la app y proporciona un botón que abra update_url en la tienda de aplicaciones de la plataforma.
    • Solicitar actualización opcional: Si current_version es anterior a latest_version, muestra un diálogo o una notificación que se puedan descartar para informar a los usuarios que hay una actualización disponible, con opciones para Actualizar ahora o Más tarde.
    • Permitir acceso: De lo contrario, permite que el usuario continúe en la app.

Prácticas recomendadas

  • Agrega un objeto de escucha en tiempo real: Cuando se requieren actualizaciones de versión debido a problemas de seguridad o una degradación grave de la UX, agregar un objeto de escucha de Remote Config en tiempo real a tu app puede ayudar a garantizar que los cambios en los requisitos de versión entren en vigencia de inmediato en los dispositivos activos sin esperar a la próxima actualización de datos programada o al reinicio de la app.
  • Realiza pruebas con un grupo de prueba limitado: Antes de aumentar el valor de minimum_version para todos los usuarios de producción, prueba la condición con un grupo de prueba limitado o segmenta a los verificadores internos con propiedades del usuario personalizadas. Esta prueba verifica que la ventana modal de bloqueo se muestre correctamente y que los vínculos de Play Store se resuelvan de manera adecuada.
  • Usa las APIs de actualización integrada en la plataforma: En Android, considera integrar las actualizaciones integradas en Google Play junto con tus verificaciones de Remote Config para permitir que los usuarios descarguen e instalen actualizaciones sin salir de tu app.
  • Lee las listas de tareas para la producción: Lee la lista de tareas para el lanzamiento de Firebase y la lista de tareas para la producción de AI Logic para obtener más orientación sobre cómo preparar tu app y las funciones basadas en IA para la producción.