Saltar al contenido principal
Guía

Surfear por canales para Capgo: Cómo cambiar los canales de actualización en tiempo de ejecución

Envía cambios a usuarios específicos de inmediato con la capacidad de cambiar los canales de actualización de Capgo en tiempo de ejecución. Cambia los canales de actualización sin tener que reinstalar tu aplicación de Capacitor.

Martin Donadieu

Martin Donadieu

Gerente de contenido

Surfear por canales para Capgo: Cómo cambiar los canales de actualización en tiempo de ejecución

¿Alguna vez has deseado enviar un cambio directamente a un usuario específico para que pueda revisarlo y proporcionar retroalimentación de inmediato, sin tener que pedirle que descargue e instale una nueva versión desde TestFlight o Google Play?

Me han pedido a los clientes que mejoraran ciertas cosas que pude implementar rápidamente, pero obtener los resultados en sus manos para validar significaba enviar una actualización a todos los usuarios (riesgoso para un cambio experimental) o crear una versión única para el cliente (un trabajo para ambos).

Lo que faltaba era flexibilidad. Los desarrolladores querían poder servir diferentes actualizaciones a diferentes grupos de usuarios, como partes no técnicas, QA o la base de usuarios completa cuando fuera apropiado.

No había una forma de que una versión de producción cambiara a una versión en curso de trabajo, recopilar retroalimentación y luego regresar a la producción.

Es lo que permite la navegación entre canales permite. Una aplicación instalada en un dispositivo del usuario puede cambiar los canales de actualización en tiempo de ejecución, convirtiendo una aplicación de producción en un espacio flexible para la revisión y la iteración en lugar de un punto fijo de destino. Esto es especialmente útil para los partes interesadas no técnicas que trabajan con aplicaciones de producción, permitiéndoles probar cambios y dar retroalimentación directamente en la aplicación que ya tienen instalada.

Entendiendo los canales de actualización

Los canales de actualización son cómo Capgo se dirige a actualizaciones de versiones específicas. Cada versión está asociada con un canal, y ese canal determina qué actualizaciones recibirá.

Por ejemplo, puede publicar actualizaciones en un preview canales sin afectar a los usuarios en production. En el pasado, cambiar de canales requería instalar una versión nativa diferente o cambiar manualmente las asignaciones de dispositivos a través de la consola.

Los canales en Capgo te permiten:

  • Dirigirte a grupos de usuarios específicos con características diferentes
  • Ejecutar pruebas A/B asignando a los usuarios a diferentes canales
  • Rollear gradualmente nuevas características
  • Crear programas de pruebas beta
  • Depurar problemas de producción con usuarios individuales

Si no está familiarizado con los canales de actualización, el documentación de los canales de Capgo los cubre con más detalle.

¿Qué es el Surfing de Canales?

El surf de canales permite a una aplicación instalada obtener actualizaciones de diferentes flujos de actualización sin tener que reinstalarla. Una aplicación instalada puede cambiar de canal de actualización en tiempo de ejecución y continuará recibiendo actualizaciones del canal seleccionado recientemente hasta que la aplicación sea desinstalada o cambiada a otro canal.

En la práctica, esto significa que un propietario de producto o un ingeniero de pruebas puede cambiar una production construcción a, por ejemplo, un preview canales, probar los cambios más recientes. Cuando terminen de probar, cambian de nuevo a production de nuevo. No hay necesidad de reinstalar o de una construcción de vista previa separada.

Bajo la capa, el surf de canales funciona permitiendo a la aplicación informar al cliente de actualizaciones qué canal utilizar. Esa elección puede cambiar en tiempo de ejecución y permanece en efecto hasta que se elimine o se reemplace.

How to Implement Channel Surfing

Antes de que puedas intentar cambiar de canal, tu proyecto debe estar configurado con Capgo Actualizaciones en vivo. Para configurarlo, sigue el Capgo guía rápida.

The only setup required for channel surfing is enabling “Allow devices to self associate” on each channel you want to switch to in the Capgo dashboard. code consola.

No se requieren cambios o modificaciones de configuración API más allá de eso.

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({ channel: 'your-channel' });

En esencia, cambiar de canal se impulsa por una sola llamada Capgo: Esto establece el canal que se utiliza cuando se consulta API para obtener actualizaciones..

Obtén más información sobre la llamada setChannel __CAPGO_KEEP_0__

Switch de canal instantáneo (v5.34.0+) Desde la versión del plugin 5.34.0, 6.34.0, 7.34.0 o 8.0.0 setChannel() (dependiendo de tu versión principal),

  1. Validación de backend (solo lectura): Se envía una solicitud al backend de Capgo para validar que el canal está permitido
  2. Actualización del almacenamiento local: Si la validación es exitosa, el canal se guarda en el almacenamiento local del dispositivo
  3. Effecto inmediato: La próxima verificación de actualizaciones utiliza el nuevo canal de inmediato

Anteriormente, setChannel() guardaba la sobrescritura del canal en la base de datos del backend (como Dashboard o API cambios). Los dispositivos tenían que esperar a la replicación del backend (hasta 2 minutos) antes de que el nuevo canal fuera reconocido. El nuevo comportamiento solo lee del backend (para la validación) y almacena localmente, lo que hace que los cambios de canal sean instantáneos.

Flujo de cambio de canal completo

Para una mejor experiencia del usuario, usualmente querrás hacer más que cambiar el canal y esperar a la próxima reiniciación de la aplicación. Una aproximación común es verificar inmediatamente las actualizaciones, descargarlas si están disponibles y recargar la aplicación para que el usuario aterrice directamente en la actualización del canal seleccionado.

Un flujo típico se ve así:

  1. Cambiar el canal (setChannel)
  2. Verifique si hay una actualización (getLatest)
  3. Obtenga y aplique la actualización (download, set o next)
  4. La estructura de este flujo es a su elección. Puede dividir estos pasos en varias interacciones o ejecutarlos todos al mismo tiempo. Independientemente de cómo estructure el flujo, asegúrese de tener en cuenta los errores. Problemas de red o un canal inválido pueden impedir que se aplique una actualización.reload)

La Única Requisito: Habilitar Autoasignación

import { CapacitorUpdater } from '@capgo/capacitor-updater';

async function switchChannel(selectedChannel: string) {
  try {
    // 1. Set the updates channel (with optional auto-update trigger)
    await CapacitorUpdater.setChannel({
      channel: selectedChannel,
      triggerAutoUpdate: true // Immediately check for updates
    });

    console.log(`Switched to channel: ${selectedChannel}`);

    // If you want more control, handle the update manually:
    // const latest = await CapacitorUpdater.getLatest();
    // if (latest.url) {
    //   const bundle = await CapacitorUpdater.download({
    //     url: latest.url,
    //     version: latest.version
    //   });
    //   await CapacitorUpdater.set({ id: bundle.id });
    // }

  } catch (error) {
    console.error('Failed to switch channel:', error);
  }
}

// Switch to the beta channel
switchChannel('beta');

Esto es lo único que necesita hacer para habilitar el cambio de canal.

Antes de que su aplicación pueda cambiar a un canal utilizando

debe habilitar la autoasignación para ese canal en la dashboard __CAPGO_KEEP_0__: setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. Canales Canal de liberación de Capgo. Página/área: Página de marketing de soluciones de Capgo. Papel: Etiqueta de navegación corta o elemento de navegación. Visto en: página white-label.astro. sección en su panel de control de Capgo
  2. Haga clic en el nombre del canal que desea gestionar
  3. Habilitar “Permitir que los dispositivos se asocie automáticamente”
  4. Guardar los cambios

Habilitar la autoasignación en las configuraciones del canal

Eso es todo. No se requieren cambios de configuración en su aplicación. No defaultChannel se requiere configuración. Solo habilite la autoasignación en los canales que desee que los usuarios puedan cambiar a.

Si esta configuración está deshabilitada, cualquier intento de llamar setChannel() con este canal fallará y se disparará el evento channelPrivate Lista de canales disponibles

Listing Available Channels

Puedes obtener la lista de canales disponibles para autoasignación:

const { channels } = await CapacitorUpdater.listChannels();

console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI

Solo devuelve los canales donde la autoasignación está habilitada.

Obtener el Canal Actual

Verifica qué canal está asignado actualmente al dispositivo:

const { channel } = await CapacitorUpdater.getChannel();

console.log('Current channel:', channel);

Revertir a Canal Predeterminado

Para eliminar la sobrescritura de canal y regresar al predeterminado:

await CapacitorUpdater.unsetChannel({});

Esto desvincula el dispositivo de cualquier canal asignado específicamente, causando que regrese al defaultChannel en tu configuración o el canal por defecto en la nube.

Cómo Probar la Navegación entre Canales

Para ver la navegación entre canales en acción, necesitarás una compilación de lanzamiento - el @capgo/capacitor-updater API está diseñado para compilaciones de lanzamiento. En compilaciones de depuración, la aplicación carga típicamente JavaScript desde un servidor de desarrollo en lugar de eso, lo que evita el flujo de actualización normal.

Requisitos previos

La única exigencia para cambiar de canal es habilitar “Permitir que los dispositivos se asocie automáticamente” en cada canal que desee permitir cambiar a. No se necesitan cambios de configuración en su aplicación.

Crear una compilación de prueba

Compile su aplicación de manera habitual:

bun run build && npx cap sync

Entonces, cree sus compilaciones nativas utilizando Xcode o Android Studio, o utilice su pipeline de CI/CD. La aplicación comenzará en el canal que esté configurado como predeterminado en la nube en su panel de control Capgo.

Publicar actualizaciones en diferentes canales

Una vez que la aplicación esté instalada, publique actualizaciones en diferentes canales:

# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview

# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production

Desde allí, navegue a su interfaz de usuario de cambio de canal en la aplicación y active el cambio de canal. La aplicación debería descargar la actualización del canal seleccionado y recargar en la nueva actualización.

Crear una interfaz de usuario de cambio de canal

El cambio de canal es algo que normalmente deseas exponer a un conjunto limitado de usuarios, no a todos los que utilizan tu aplicación. Por ejemplo, podrías tener un botón disponible solo para empleados autenticados que cambia la aplicación al canal de prueba.

Un ejemplo de componente de React para un cambio de canal es el siguiente:

import { useState, useEffect } from 'react';
import { CapacitorUpdater } from '@capgo/capacitor-updater';

export function ChannelSwitcher() {
  const [currentChannel, setCurrentChannel] = useState<string>('');
  const [availableChannels, setAvailableChannels] = useState<string[]>([]);
  const [isLoading, setIsLoading] = useState(false);

  useEffect(() => {
    loadChannelInfo();
  }, []);

  async function loadChannelInfo() {
    const { channel } = await CapacitorUpdater.getChannel();
    setCurrentChannel(channel || 'default');

    const { channels } = await CapacitorUpdater.listChannels();
    setAvailableChannels(channels.map(c => c.name));
  }

  async function handleChannelSwitch(channel: string) {
    setIsLoading(true);
    try {
      await CapacitorUpdater.setChannel({
        channel,
        triggerAutoUpdate: true
      });
      setCurrentChannel(channel);
      // App will update in background or on next restart
    } catch (error) {
      console.error('Failed to switch channel:', error);
    } finally {
      setIsLoading(false);
    }
  }

  return (
    <div>
      <p>Current channel: {currentChannel}</p>
      <div>
        {availableChannels.map(channel => (
          <button
            key={channel}
            onClick={() => handleChannelSwitch(channel)}
            disabled={isLoading || channel === currentChannel}
          >
            Switch to {channel}
          </button>
        ))}
      </div>
    </div>
  );
}

Actualizaciones de OTA con trampas

No se trata de nada específico de la navegación entre canales, pero tienden a volverse evidentes rápidamente una vez que comiences a cambiar de canal en tiempo de ejecución.

Compatibilidad de versiones en tiempo de ejecución

Las actualizaciones en Capgo están vinculadas a las versiones nativas de la aplicación. Si la versión nativa de una actualización no coincide con la versión nativa de la aplicación instalada, la actualización no se descargará ni se aplicará. Cuando se navega entre canales, esto suele aparecer como la aplicación cambiando de canal pero sin aplicar la actualización, aunque ésta exista en ese canal.

Normalmente significa que la actualización se publicó desde una versión nativa diferente de la aplicación. Asegúrate de que el paquete de tu canal sea compatible con la versión nativa instalada en el dispositivo.

Eliminación o deshacer actualizaciones

Si una aplicación ya ha descargado una actualización para un canal, eliminar esa actualización desde la consola de Capgo no la elimina de los dispositivos que ya la tienen. La eliminación solo detiene descargas futuras. La forma más confiable de deshacer una actualización malograda es publicar una actualización conocida como buena en el mismo canal. Esto crea una nueva actualización en la parte superior de la historia del canal, que los clientes tratarán como la versión más reciente y aplicarán en su lugar.

__CAPGO_KEEP_0__ también proporciona un mecanismo de rollback que puede instruir a los clientes a re-aplicar una actualización estable previa o regresar a la actualización incorporada en la compilación.

Capgo also provides a rollback mechanism that can instruct clients to re-apply a previous stable update or fall back to the update embedded in the build.

__CAPGO_KEEP_0__

El cambio de canales cambia el paquete de JavaScript que ejecuta la aplicación. Si tu aplicación depende de migraciones o formas de datos que no son compatibles entre canales, cambiar de un lado a otro puede causar problemas.

Por ejemplo, si una actualización de beta aplica una migración de base de datos, la versión de producción no entenderá el nuevo esquema. Los desarrolladores deben asegurarse de que sus actualizaciones sean seguras para cambiar entre ellas o restringir el cambio a una dirección cuando sea necesario.

¿Por qué el Channel Surfing mejora la iteración móvil?

El Channel Surfing es especialmente útil cuando necesitas revisar cambios rápidamente en un entorno de producción.

Validación Rápida

Imagina una corrección de bug urgente que necesita validación antes de ser lanzada ampliamente. Con el Channel Surfing, el cambio se puede aislar a un pequeño conjunto de usuarios designados que pueden revisarlo antes de que llegue a producción.

Revisión de Stakeholders

Un propietario de producto o un QA pueden cambiar su instalación de producción a otra canal de actualización, verificar la corrección o la característica y luego cambiar de nuevo una vez que estén listos.

Pruebas Simplificadas

Esto lo hace más fácil involucrar a partes interesadas no técnicas en la revisión y la toma de decisiones, mientras se mantiene el flujo suave. Un solo paquete de producción se convierte en una herramienta flexible para la prueba, la retroalimentación y la validación.

Uso de Casos

  • Pruebas de QA : El equipo de QA puede cambiar entre ramas de características
  • Programas Beta : Los usuarios se suscriben a un canal beta para tener acceso temprano
  • Revisión de partes interesadas : Los propietarios de productos pueden ver cambios antes de la liberación
  • Pruebas A/B : Asignar usuarios a diferentes canales para experimentos
  • Depuración : Cambiar a un usuario específico a un canal de depuración para diagnosticar problemas

Comparación: Métodos de cambio de canal

Método Tiempo de efecto Persistido Donde Uso de Caso
setChannel() desde plugin Inmediato Solo dispositivo (local) Cambio de canal iniciado por el usuario en la aplicación
Panel de control de dispositivo Hasta 2 min Base de datos de servidor Cambios administrados para dispositivos específicos
API asignación de canal Hasta 2 min Base de datos de backend Integraciones de backend automatizadas

Para obtener la mejor experiencia del usuario al crear interfaces de usuario de cambio de canal, siempre utilice el método del plugin. setChannel() Prácticas recomendadas

Limitar el acceso

  1. : El cambio de canal suele ser para uso interno - no lo exponga a todos los usuariosGestionar errores
  2. : Siempre gestione los errores de manera amable cuando se cambian los canalesValidar compatibilidad
  3. : Asegúrese de que las actualizaciones en diferentes canales sean compatibles con la versión nativa instaladaDocumentar canales
  4. __CAPGO_KEEP_0__ Mantenga documentación clara de qué canal es para qué
  5. Monitoreo de uso: Siga qué dispositivos están en qué canales para depurar

Recursos

Conclusión

La navegación entre canales transforma la forma en que puedes iterar en tu aplicación Capacitor. En lugar de tratar las compilaciones de producción como puntos finales fijos, se convierten en herramientas flexibles para la prueba, la validación y la iteración rápida.

Con la incorporación reciente de la función de cambio de canal instantáneo en las versiones actuales del plugin, la experiencia es ahora ininterrumpida - los usuarios pueden cambiar de canal y recibir actualizaciones del nuevo canal de inmediato sin ningún período de espera.

Ya sea que esté validando correcciones de errores con partes interesadas, esté ejecutando programas beta o depurando problemas con usuarios específicos, la navegación entre canales le da la flexibilidad para enviar la actualización correcta al usuario correcto en el momento correcto.

Continúa desde Channel Surfing para Capgo: Cómo cambiar los canales de actualización en tiempo de ejecución

Si estás utilizando Channel Surfing para Capgo: Cómo cambiar los canales de actualización en tiempo de ejecución para planificar la ruta de canales y la implementación de etapas, conecta con Canales contexto: nombre de la característica de canales de Capgo. 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/white-label.astro. Clave de mensaje `solutions_white_label_visual_cell2_value` (Valor de celda visual de soluciones de white label). para los detalles de implementación en Canales, Canales contexto: nombre de la característica de canales de Capgo. 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/white-label.astro. Clave de mensaje `solutions_white_label_visual_cell2_value` (Valor de celda visual de soluciones de white label). para los detalles de implementación en Canales, Canales contexto: nombre de la característica de canales de Capgo. 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/white-label.astro. Clave de mensaje `solutions_white_label_visual_cell2_value` (Valor de celda visual de soluciones de white label). Solución de Enfoque de Versión para el flujo de trabajo del producto en Solución de Enfoque de Versión.

Actualizaciones en vivo para aplicaciones Capacitor

Cuando un error en la capa web está activo, envíe la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda de aplicaciones. Los usuarios obtienen la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

soporte humano de Martin

Iniciar Ahora

Últimas noticias de nuestro Blog

Capgo le da las mejores perspectivas que necesita para crear una aplicación móvil verdaderamente profesional.