Saltar al contenido

Sigue adelante desde el flujo de trabajo de Native + Canal de actualizaciones OTA

Un setup común Capgo utiliza un canal de desarrollo canal de producción canal de producción canal. CI sube cada actualización OTA al dev, luego promueve a production cuando estés listo. Los equipos suelen agregar --fail-on-incompatible para que CI no envíe una actualización en vivo que necesite nuevos paquetes nativos code por error.

Esta página responde a la pregunta de seguimiento: ¿qué haces cuando tú intencionalmente necesitas un paquete que es incompatible con los paquetes nativos actuales del canal?

Si necesitas el contexto sobre por qué Capgo compara paquetes nativos, comienza con Compatibilidad Nativa. Para una rama de CI completa que elija OTA vs Capgo Build automáticamente, ve a Auto OTA o Nativa.

Esta guía supone que los dev y production contexto: Página/área: Sitio web de marketing de Capgo. Rol: Etiqueta de IU corta o elemento de navegación. Visto en: página trust.astro. Clave de mensaje `y` (Y).

los canales ya existen. Crea primero si es necesario:
npx @capgo/cli@latest channel add production com.example.app
npx @capgo/cli@latest channel add dev com.example.app
copiar a portapapelesCanal¿Quién lo recibe
devSubida típicaConstrucciones internas / pruebas de QA (QA por sus siglas en inglés significa pruebas de calidad, es una prueba de software que se realiza antes de que el software se libere al mercado, para asegurarse de que el software cumpla con los requisitos de calidad y no contenga errores o defectos que puedan afectar su funcionamiento o seguridad.) y construcciones de CI de JS (y baselines nativos intencionales) (CI por sus siglas en inglés significa integración continua, es un proceso automatizado que se utiliza para integrar y probar el código de un proyecto de software en cada paso del desarrollo, para asegurarse de que el código cumpla con los requisitos de calidad y no contenga errores o defectos que puedan afectar su funcionamiento o seguridad.)
productionUsuarios del almacénSolo promocionado o subido cuando está listo para su lanzamiento

--fail-on-incompatible es una buena opción por defecto en ambos canales para subidas OTA diarias . Compara los paquetes nativos en el paquete que estás subiendo contra el paquete actualmente en vivo en ese canal . Si difieren, la subida sale con un código de error no cero y nada se envía.

Cuando el cambio es solo JavaScript y los paquetes nativos coinciden con el canal:

Ventana de terminal
npx @capgo/cli@latest bundle upload com.example.app \
--channel production \
--fail-on-incompatible \
--auto-min-update-version

--fail-on-incompatible bloques el deslizamiento nativo accidental. --auto-min-update-version es necesario en cada carga una vez que el canal utiliza el metadata estrategia (recomendada a continuación). Si el canal no está en metadata todavía, puedes omitir --auto-min-update-version hasta que cambies.

Puerta de enlace CI opcional antes de la carga:

Ventana de terminal
npx @capgo/cli@latest bundle releaseType com.example.app --channel production
# → OTA safe to upload with --fail-on-incompatible
# → native stop; ship a native binary first (see below)

Bump nativo intencional (elimina la bandera una vez)

Sección titulada “Bump nativo intencional (elimina la bandera una vez)”

no puedes subir un paquete que necesita una nueva code nativa mientras mantiene --fail-on-incompatibleque esa bandera existe para bloquear exactamente ese caso. Cuando un plugin, Capacitor versión o otra dependencia nativa cambia a propósito:

  1. Enviar el correspondiente binario nativo (Tienda de aplicaciones / Tienda de aplicaciones de Google, o Capgo Compilación).
  2. Subir el paquete JS correspondiente sin --fail-on-incompatible.
  3. Preferir --auto-min-update-version con el canal en la metadata estrategia para que los dispositivos que aún están en la antigua binaria no reciban el nuevo paquete hasta que instalen la nueva aplicación.
  4. Después de ese subida de línea base, coloque --fail-on-incompatible vuelva a la CI normal OTA (y mantenga --auto-min-update-version mientras el canal se queda en metadata).
  1. Una vez por canal: habilitar la medición de la puerta de enlace

    ventana de terminal
    npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata

    Repita para dev si ese canal también recibe baselines nativas intencionales. Después de este cambio, cada carga en el canal debe incluir --auto-min-update-version o --min-update-version.

  2. o

    enviar el binario nativo

  3. Construya y envíe la aplicación iOS/Android que incluya los nuevos plugins o cambios nativos. Hasta que los usuarios instalen ese binario, no pueden ejecutar de manera segura un paquete que dependa de esas paquetes nativos. --fail-on-incompatible)

    Suba la base de datos OTA correspondiente (sin
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --auto-min-update-version

    Este registro registra los nuevos paquetes nativos en el canal. Más tarde bundle releaseType / --fail-on-incompatible comprueba ese punto de referencia.

  4. Reanuda las subidas OTA protegidas

    Las liberaciones posteriores JS únicamente utilizan ambos flags de nuevo:

    Ventana de terminal
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --fail-on-incompatible \
    --auto-min-update-version

¿Puedo mantener --fail-on-incompatible y aún empujar un paquete incompatibilidad nativa?

,

, --auto-min-update-version ,

,

,

,

Sí, si se ajusta a su proceso. Ejecute las mismas reglas por canal: la comprobación de compatibilidad es contra lo que está vivo en el canal objetivo. Promueva o vuelva a subir a production solo después dev mira bien, y utilice una carga nativa-basada (sin --fail-on-incompatible) en cada canal que necesita los nuevos paquetes nativos registrados.

¿Y si subo el nuevo paquete nativo con la bandera todavía activa?

Sección titulada “¿Y si subo el nuevo paquete nativo con la bandera todavía activa?”

La CI falla y Capgo no envía esa carga. Eso es el resultado esperado. O el cambio fue accidental (corrija los paquetes nativos y vuelva a intentarlo como OTA), o fue intencional (utilice el camino nativo anterior).

RutaCuándoSubir banderas
OTASolo JS; paquetes nativos coinciden con el canal--fail-on-incompatible + --auto-min-update-version (requerido si el canal está en metadata)
Base nativaNueva binaria nativa + paquete de bundle JS coincidenteNo --fail-on-incompatible; mantener --auto-min-update-version

Referencia para la carga, la compatibilidad, el tipo de liberación y las banderas relacionadas.

Sección titulada “Sigue adelante desde el flujo de trabajo de canal NATIVO + OTA”

Si estás utilizando Flujo de trabajo de canal NATIVO + OTA para mantener actualizaciones en vivo seguras a través de lanzamientos nativos, conecta con Compatibilidad NATIVA para las reglas de comparación de paquetes, Auto OTA o NATIVO para ramificación de CI, Objetivo de versión contexto: Página/área: Página de marketing de soluciones de Capgo. Rol: Título de sección o página. Visto en: página de soluciones/objetivo-de-versión.astro. Clave de mensaje `solutions_version_targeting_title` (Título de soluciones de versión de targeting). | Página/área: Página de marketing de soluciones de Capgo. Rol: Etiqueta de IU corta o elemento de navegación. Visto en: página de soluciones/objetivo-de-versión.astro. Clave de mensaje `solutions_version_targeting` (Soluciones de versión de targeting). Capgo CLI bundle reference __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ referencia del paquete de flujo de trabajo de canal NATIVO + OTA