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 función de cambio de canal de tiempo de ejecución de Capgo. Cambia los canales de actualización sin tener que reinstalar tu aplicación Capacitor.

Créditos del artículo

Martin Donadieu

Escritor

Valeria

Revisor

Jordan

Editor

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 para su revisión y retroalimentación inmediatas - sin pedirles que descarguen e instalen una nueva versión desde TestFlight o Google Play?

He tenido clientes que solicitaron mejoras 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 pudiera cambiar a una versión en curso, recopilar retroalimentación y luego regresar a la producción.

Eso es lo que cambiar de canal permite. Una aplicación instalada en un dispositivo del usuario puede cambiar de canal 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 final fijo. Esto es especialmente útil para partes 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, puedes publicar actualizaciones en un preview canalesin afectar a los usuarios en production. En el pasado, cambiar de canales requería instalar una compilació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 diferentes canales
  • Implementar nuevas características de manera gradual
  • Crear programas de pruebas beta
  • Depurar problemas de producción con usuarios individuales

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

¿Qué es el Channel Surfing?

El Channel Surfing permite a una aplicación instalada obtener actualizaciones de diferentes flujos sin tener que reinstalarla. Una aplicación instalada puede cambiar de canales 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.

In la práctica, esto significa que un propietario de producto o un especialista en pruebas pueden cambiar un production edición a, por ejemplo, un preview canal, probar los cambios más recientes. Cuando terminen de probar, pueden cambiar de nuevo a production de nuevo. No hay necesidad de reinstalar o de una edición de vista previa separada.

En el fondo, el cambio de canal funciona permitiendo que la aplicación le diga 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.

Cómo implementar el cambio de canal

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

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 su núcleo, el cambio de canal se impulsa por una sola llamada Capgo: Descubre más sobre la configuración de canal API.

Intercambio de canales instantáneo (v5.34.0+)

Desde la versión del plugin 5.34.0, 6.34.0, 7.34.0 o 8.0.0 (dependiendo de tu versión principal), setChannel() funciona de manera diferente y mucho más rápida:

  1. Validación de servidor (solo lectura): Se envía una solicitud al servidor Capgo para validar que el canal esté permitido
  2. Actualización de 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() guardó la sobrescritura del canal en la base de datos del backend (como Dashboard o API cambios). Los dispositivos tuvieron que esperar a la replicación del backend (hasta 2 minutos) antes de que el nuevo canal fuera reconocido. El nuevo comportamiento solo lee desde el 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, normalmente querrás hacer más que solo cambiar el canal y esperar al próximo reinicio de la aplicación. Una aproximación común es verificar inmediatamente 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. Verificar una actualización (getLatest)
  3. Obtener y aplicar la actualización (download, set o next)
  4. Recargar la aplicación si es necesario (reload)

Un ejemplo completo es:

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');

La forma en que estructures este flujo es a tu elección. Puedes dividir estos pasos en varias interacciones o ejecutarlos todos al mismo tiempo. Independientemente de cómo estructures el flujo, asegúrate de tener en cuenta los errores. Problemas de red o un canal inválido pueden impedir que se aplique una actualización.

El Único Requisito: Habilitar Autoasignación

Esta es la única cosa que debes hacer para habilitar el cambio de canal. Antes de que tu aplicación pueda cambiar a un canal utilizando setChannel()Debes habilitar la autoasignación para ese canal en la consola de Capgo:

  1. Ir a la sección de canales en tu consola de __CAPGO_KEEP_0__ section in your Capgo dashboard
  2. Habilitar
  3. “Permitir que los dispositivos se asocie automáticamente” Guardar los cambios
  4. Habilitar la autoasignación en los ajustes del canal

Eso es todo. No hay cambios de configuración necesarios en tu aplicación.

Canal defaultChannel Configuración requerida. 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 channelPrivate evento.

Lista de Canales Disponibles

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

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

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

Esto solo devuelve canales donde la autoasignación está habilitada.

Obtener el Canal Actual

Verifique qué canal está asignado actualmente al dispositivo:

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

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

Revertir al Canal Predeterminado

Para eliminar la sobrescritura del canal y regresar al predeterminado:

await CapacitorUpdater.unsetChannel({});

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

Cómo Probar el Cambio de Canal

Para ver el cambio de canal en acción, necesitarás una compilación de lanzamiento - el __CAPGO_KEEP_0__ 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. @capgo/capacitor-updater API is designed for release builds. In debug builds, the app typically loads JavaScript from a development server instead, which bypasses the normal update flow.

El único requisito para el cambio de canal es habilitar "Permitir que los dispositivos se asocien automáticamente"

en cada canal que desees permitir el cambio a. No se necesitan cambios en la configuración de tu aplicación. Creando una Compilación de Prueba Compila tu aplicación de manera habitual:

Luego crea tus compilaciones nativas utilizando Xcode o Android Studio, o utiliza tu pipeline de CI/CD. La aplicación comenzará en el canal que se establezca como valor por defecto en la nube en tu __CAPGO_KEEP_0__.

Publicando Actualizaciones en Diferentes Canales

bun run build && npx cap sync

Capgo

__CAPGO_KEEP_0__

Una vez instalada la aplicación, publica 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í, navega a tu interfaz de navegación de canales en la aplicación y activa 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 cambio de canal

La navegación de canales suele ser algo que 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 previsualización.

Aquí tienes un ejemplo de componente de React para un cambio de canal:

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>
  );
}

Problemas de Actualización OTA

None de estos son específicos de la navegación de canales, pero tienden a volverse evidentes rápidamente una vez que comiences a cambiar de canales en tiempo de ejecución.

Compatibilidad de Versión en Tiempo de Ejecución

Las actualizaciones en Capgo están vinculadas a 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 por canales, esto suele aparecer como la aplicación cambiando de canales pero sin aplicar la actualización, aunque una exista en ese canal.

Esto suele significar 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.

Eliminar 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 future descargas.

La forma más confiable de deshacer una actualización mala 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 también proporciona un mecanismo de retroceso 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.

Consideraciones de migración de datos

El cambio de canal 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 permanezcan seguras para cambiar entre ellas o restrinjan el cambio a una dirección cuando sea necesario.

¿Por qué el surf de canales mejora la iteración móvil?

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

Validación Rápida

Imagina una corrección de errores urgente que necesita validación antes de ser lanzada ampliamente. Con el surf de canales, el cambio puede ser aislado a un pequeño conjunto de usuarios designados que pueden revisarlo antes de que llegue a producción.

Revisión de partes interesadas

A un propietario de producto o un ingeniero de pruebas pueden cambiar su versión de producción instalada 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

Este proceso facilita la participación de partes interesadas no técnicas en la revisión y la toma de decisiones, mientras se mantiene el flujo de trabajo fluido. Una sola versión de producción se convierte en una herramienta flexible para la prueba, la retroalimentación y la validación.

Uso de Casos

  • contextPá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/pruebas-beta.astro. Clave de mensaje `solutions_beta_testing_usecases_title` (Título de uso de casos de pruebas beta de soluciones). | Página/área: Página de marketing de soluciones de Capgo. Rol: Etiqueta de interfaz de usuario. Visto en: página de soluciones/qsr.astro. Clave de mensaje `solutions_qsr_usecases_label` (Etiqueta de uso de casos de QSR de soluciones).
  • Pruebas de QA: Pueden cambiar entre ramas de características
  • Programas de Pruebas Beta: Los usuarios se inscriben en el canal de pruebas beta para obtener acceso temprano
  • Revisión de partes interesadas: Los propietarios de productos pueden visualizar los cambios antes de la liberación.
  • Desharpeo: Cambiar 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 Almacenado en Uso de caso
setChannel() Desde plugin Inmediato Solo en el dispositivo (local) Switch de canal iniciado por el usuario en la aplicación
Override de dispositivo en la consola Hasta 2 min Base de datos de backend Cambios iniciados por el administrador 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 usuarioschannel surfing
  2. Gestionar Errores: Siempre maneje errores con amabilidad cuando se cambian los canales
  3. ValidarCompatibilidad: Asegúrese de que las actualizaciones en diferentes canales sean compatibles con la versión nativa instalada
  4. Documentar Canales: Mantenga una documentación clara de qué es cada canal para
  5. Monitorear Uso: Registre qué dispositivos están en qué canales para depuración

Recursos

Conclusión

La navegación por canales transforma la forma en que puedes iterar en tu Capacitor aplicación. En lugar de tratar los compilados 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 navegación por canales instantánea introducida en las últimas versiones 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és validando correcciones de errores con partes interesadas, ejecutando programas de beta o depurando problemas con usuarios específicos, la navegación por canales te da la flexibilidad para enviar la actualización correcta al usuario correcto en el momento correcto.

Sigue leyendo de Navegación por Canales para Capgo: Cómo cambiar los canales de actualización en tiempo de ejecución

Si estás utilizando Navegación por Canales para Capgo: Cómo cambiar los canales de actualización en tiempo de ejecución para planificar la ruta de los canales y la implementación de la entrega en etapas, conecta con Canal context Capgo release channels feature name. Page/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: page solutions/white-label.astro. Message key `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value). para los detalles de implementación en los canales, Canales Soluciones de canales de Capgo para los detalles de implementación en los canales, Solución de pruebas de beta para el flujo de trabajo del producto en la Solución de pruebas de beta, y Solución de versiones objetivo

Actualizaciones en vivo para aplicaciones Capacitor

Cuando un error de capa de web está en vivo, 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 te brinda las mejores perspectivas que necesitas para crear una aplicación móvil verdaderamente profesional.