Canales
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Un canal de actualización en vivo apunta a una construcción de paquete JS específica de tu aplicación que se compartirá con cualquier dispositivo configurado para escuchar ese canal para actualizaciones. Cuando instales el Capgo canal de actualizaciones SDK en tu aplicación, cualquier binario nativo configurado a ese canal verificará actualizaciones disponibles cada vez que se lance la aplicación. Puedes cambiar la construcción a la que apunta el canal en cualquier momento y también puedes retroceder a versiones anteriores si es necesario.
How un dispositivo elige un canal (precedencia)
Sección titulada “Cómo un dispositivo elige un canal (precedencia)”Cuando un dispositivo verifica una actualización, Capgo decide qué canal usar en este orden estricto (prioridad más alta primero):
- Asignación de dispositivo forzada (Panel de control) – Pinar un ID de dispositivo específico a un canal. Utilice para depuración urgente o pruebas controladas con un solo usuario real. Esto siempre gana.
- Supervisión de nube (por dispositivo) a través del Panel de control o API – Creado cuando cambie el canal del dispositivo en el panel de control o a través de API. Utilice para usuarios de QA que cambian entre canales de características / PR o para reproducir un problema de usuario. Reinstalar el binario no elimina esto; eliminar la entrada de dispositivo lo hace.
- Plugin
setChannel()canal local – Creado cuando la aplicación llamasetChannel()y el servidor de backend valida que el canal objetivo permite la asignación automática. El canal seleccionado se almacena localmente en ese dispositivo, tiene efecto instantáneo y no se muestra en la interfaz de usuario de la sobrescritura de dispositivo.
- Capacitor config
defaultChannel(configuración de compilación de prueba por defecto) – Si está presente encapacitor.config.*y no existe un canal de fuerza/override/local, la aplicación comienza en este canal (por ejemplo,beta,qa,pr-123). Se destina a versiones de prueba / internas para que los probadores aterricen automáticamente en un canal de pre-lanzamiento. Las versiones de producción suelen dejar esto sin configurar. - Canal por defecto de la nube (ruta principal ~99% de usuarios) – Si marca un canal por defecto en la consola, todos los usuarios normales (sin fuerza, sin sobreescribir el Dashboard/API, sin canal local de plugin, sin configuración defaultChannel) se unen aquí. Cambiarlo para desplegar o retroceder instantáneamente—sin nueva binaria. Si tiene valores por defecto específicos de plataforma (por ejemplo, uno solo para iOS, uno solo para Android, uno solo para Electron), cada dispositivo aterriza en el valor por defecto que coincide con su plataforma. Dejar el canal por defecto de la nube sin configurar está permitido; en ese caso, el dispositivo debe coincidir con los pasos 1–4 para recibir actualizaciones.
Buen práctica:
- Trate a 1–4 como capas de excepción / pruebas; cuando establezca un canal por defecto, los usuarios reales deben fluir hacia él. Si no elige configurarlo, sea deliberado sobre cómo los usuarios se unen (normalmente mediante
defaultChannelen la configuración o por sobreescripciones por dispositivo). - Solo configure
defaultChannelen binarios que envíe explícitamente a los probadores. Dejarlo sin configurar mantiene la lógica de producción centralizada en la consola. - Use
setChannel()con moderación en producción—principalmente para pruebas de QA o diagnósticos dirigidos.
If un canal está deshabilitado para la plataforma (iOS/Android/Electron toggles) cuando de lo contrario sería elegido, el proceso de selección lo salta y continúa hacia abajo en la lista.
Resumen: Force > Panel de control/API Override > Plugin
setChannel()canal local > ConfiguracióndefaultChannel> Por defecto de Cloud.
Comportamiento por defecto del canal
Título de la sección “Comportamiento por defecto del canal”Establecer un valor por defecto en la nube es opcional, pero suele servir como el camino de respaldo para nuevos dispositivos. Sin uno, solo los dispositivos que coinciden con las asignaciones forzadas, las sobrescripciones o un defaultChannel en la configuración Capacitor recibirán actualizaciones. Cuando elijas marcar valores por defecto, ten en cuenta estos patrones:
- Valor por defecto único (más común) – Si un canal tiene iOS, Android y Electron habilitados, se convierte en el valor por defecto único; cualquier dispositivo sin sobrescripciones se unirá aquí.
- Valores por defecto específicos de plataforma – Si divide los canales por plataforma (por ejemplo,
ios-productionWith solo iOS habilitado,android-productionWith solo Android habilitado, yelectron-productionCon solo Electron habilitado), marquen cada uno como el predeterminado para su plataforma. Los dispositivos iOS van a la configuración predeterminada de iOS, los dispositivos Android van a la configuración predeterminada de Android, y las aplicaciones Electron van a la configuración predeterminada de Electron.
Recuerde que la configuración por defecto de la nube y defaultChannel en capacitor.config.* ambos ocupan el mismo nivel de decisión. Si establece una configuración por defecto de la nube, no necesita duplicar el valor en su configuración Capacitor—deje defaultChannel vacío para ediciones de producción. Reserve defaultChannel para binarios que envíe intencionalmente a los probadores o QA cuando desee que comiencen en un canal no de producción aunque la configuración por defecto de la nube sea diferente.
Puede cambiar las configuraciones por defecto en cualquier momento en la consola. Cuando intercambie una configuración por defecto, los nuevos dispositivos siguen la nueva ruta de inmediato y los dispositivos existentes siguen las reglas de precedencia normales la próxima vez que se conecten.
Configuración de un Canal
Título de la sección “Configuración de un Canal”Durante el proceso de incorporación, crea el primer canal (la mayoría de los equipos lo llaman “Producción”), pero nada está bloqueado—puede renombrar o eliminar cualquier canal en cualquier momento. Para agregar canales adicionales más tarde:
- Ir a la sección de “Canales” del panel de control Capgo
- Haga clic en el botón “Nuevo Canal”
- Ingrese un nombre para el canal y haga clic en “Crear”
Los nombres de los canales pueden ser cualquier cosa que desee. Una estrategia común es coincidir los canales con las etapas de desarrollo, como:
Development- para probar actualizaciones en vivo en dispositivos locales o emuladoresQA- para que su equipo de QA verifique las actualizaciones antes de una mayor difusiónStaging- para la prueba final en un entorno de producción similarProduction- para la versión de la aplicación que los usuarios finales reciben desde las tiendas de aplicaciones
Configuración del Canal en la Aplicación
Sección titulada “Configuración del Canal en la Aplicación”Con los canales creados, necesita configurar su aplicación para escuchar el canal adecuado. En este ejemplo, usaremos el Development canal.
Abra su capacitor.config.ts (o capacitor.config.json) archivo. Bajo la plugins sección, configúrelo opcionalmente defaultChannel para edición de pruebas (interna / QA). Para ediciones de producción, prefiere omitirlo para que los dispositivos utilicen el valor por defecto de Cloud a menos que se haya sobrescrito explícitamente.
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { // For a QA/TestFlight build – testers start on the Development channel automatically. defaultChannel: 'Development', // Production builds usually omit this so users attach to the Cloud Default channel. }, },};Siguiente, construya su aplicación web y ejecute npx cap sync para copiar el archivo de configuración actualizado a sus proyectos de iOS, Android y Electron. Si omite este paso de sincronización, sus proyectos nativos seguirán utilizando el canal en el que estaban configurados anteriormente.
Opciones y estrategias de canales
Sección titulada “Opciones y estrategias de canales”Los canales tienen varias opciones que controlan quién puede recibir actualizaciones y cómo se entregan las actualizaciones. Los más importantes están a continuación. Puede configurar estos desde la aplicación web, el CLI, o el API público.
- Canales por defecto: Opcionalmente marque los canales o canales específicos de plataforma que los dispositivos nuevos se unen a. Consulte “Comportamiento de canales por defecto” para escenarios de ruta.
- Filtros de plataforma: Habilitar o deshabilitar la entrega a
iOS,Androido dispositivos por canal.ElectronDesactivar la actualización automática bajo nativo: Evita enviar una actualización cuando la versión nativa del dispositivo es más nueva que la versión del paquete del canal (por ejemplo, dispositivo en 1.2.3 mientras que el canal tiene 1.2.2). - Permitir actualizaciones de compilaciones de desarrollo: (útil para pruebas).
- Permitir dispositivos de emulación: (útil para pruebas).
- Permitir autoasignación de dispositivos: permite al aplicativo cambiar a este canal en tiempo de ejecución usando
- Si se desactiva,
setChannelfallará para este canal.setChannelDespliegue progresivo
Título de la sección “Despliegue progresivo”
Un canal puede mantener un paquete estable mientras expone gradualmente un objetivo de despliegue separado a un conjunto de dispositivos fijos. Puede pausar, reanudar, promover, retroceder y configurar una respuesta automática de error sin cambiar el canal para todos. ConsulteDespliegue progresivo o dispositivos por canal. para el modelo de entrega, flujo de trabajo de la consola, API campos y CLI comandos.
Deshabilitar estrategias de actualización automática
Sección titulada “Deshabilitar estrategias de actualización automática”Use esto para restringir qué tipos de actualizaciones el canal entregará automáticamente. Opciones:
- mayor: Bloquea un paquete objetivo cuya versión mayor es mayor que la base nativa del dispositivo (
version_build). Ejemplo:1.2.3 -> 2.0.0está bloqueado;1.2.3 -> 1.9.0está permitido. - menor: Bloquea un paquete objetivo cuya versión mayor o menor difiere de
version_build. Ejemplo:1.2.3 -> 1.3.0está bloqueado;1.2.3 -> 1.2.4está permitido. - patch: Modo más estricto. Bloquea cualquier cambio a un número mayor, menor o de parche. Solo se permiten cambios de sufijo mientras
MAJOR.MINOR.PATCHstays identical. Ejemplos:1.0.0-beta.1 -> 1.0.0-beta.2is allowed,1.0.0+build.1 -> 1.0.0+build.2is allowed,1.0.0 -> 1.0.1is bloqueado. - metadata: Requiere una versión de actualización mínima de metadatos en cada paquete. Configure mediante CLI usando
--min-update-versiono--auto-min-update-version. Si falta, el canal se marca como configurado incorrectamente y las actualizaciones serán rechazadas hasta que se establezca. - none: Permitir todas las actualizaciones según la compatibilidad de semver Estas estrategias comparan el paquete de destino del canal contra la base nativa enviada como.
y no el paquete descargado actualmente enviado como version_build, not the current downloaded bundle sent as version_name.
Obtenga más detalles y ejemplos en la estrategia de deshabilitar actualizaciones en /docs/cli/commands/#disable-updates-strategy.
Ejemplo (CLI):
# Block major updates on the Production channelnpx @capgo/cli@latest channel set production com.example.app \ --disable-auto-update major
# Allow devices to self-assign to the Beta channelnpx @capgo/cli@latest channel set beta com.example.app --self-assignUsando setChannel() desde Tu Aplicación
Título de la sección “Usando setChannel() desde Tu Aplicación”El setChannel() El método permite que su aplicación cambie programáticamente entre canales en tiempo de ejecución. Esto es particularmente útil para:
- Menús de QA/debug donde los probadores pueden cambiar entre canales
- Flujos de inscripción de programa beta
- Implementaciones de banderas de características
- Escenarios de pruebas A/B
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Switch to the beta channelawait CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switchingawait CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true});Asignar un paquete a un canal
Sección titulada “Asignar un paquete a un canal”Para desplegar una actualización en vivo, debes subir una nueva compilación de JS y asignarla a un canal. Puedes hacer esto en un paso con el Capgo CLI:
npx @capgo/cli@latest bundle upload --channel=DevelopmentEsto subirá tus activos web compilados y establecerá el nuevo paquete como la compilación activa para el Development canal. Cualquier aplicación configurada para escuchar ese canal recibirá la actualización la próxima vez que busque una.
Puedes asignar builds a canales desde la sección “Paquetes” del Capgo dashboard. Haz clic en el icono de menú junto a un build y selecciona “Asignar a canal” para elegir el canal para ese build.
Versión de paquetes y canales
Sección titulada “Versión de paquetes y canales”Es importante tener en cuenta que los paquetes en Capgo son globales para tu aplicación, no específicos de canales individuales. El mismo paquete puede asignarse a múltiples canales.
Al versionar tus paquetes, recomendamos utilizar la versión semántica con el Capgo’s Tester de Semver y sus identificadores de prelanzamiento para ediciones específicas de canal. Por ejemplo, una versión de beta podría estar versionada como 1.2.3-beta.1.
Esta aproximación tiene varios beneficios:
- Comunica claramente la relación entre las ediciones.
1.2.3-beta.1obviamente es una versión de prelanzamiento de1.2.3. - Permite reutilizar números de versión en diferentes canales, reduciendo la confusión.
- Hace posible caminos de rollback claros. Si necesitas retroceder desde
1.2.3, sabes1.2.2es la versión estable anterior.
Aquí tienes un ejemplo de cómo podrías alinear tus versiones de paquetes con una configuración típica de canal:
Developmentcanal:1.2.3-dev.1,1.2.3-dev.2, etc.QAcanal:1.2.3-qa.1,1.2.3-qa.2, etc.Stagingcanal:1.2.3-rc.1,1.2.3-rc.2, etc.Productioncanal:1.2.3,1.2.4Usando
con identificadores de prelanzamiento es un enfoque recomendado, pero no estrictamente necesario. La clave es encontrar un esquema de versionado que comunique claramente las relaciones entre tus compilaciones y se alinee con el proceso de desarrollo de tu equipo. Revertir una Actualización en Vivo Sección titulada “Revertir una Actualización en Vivo”
Si despliegas una actualización en vivo que introduce un error o necesita ser revertida, puedes revertir fácilmente a una compilación anterior. Desde la sección “Canales” de la consola:
Haga clic en el nombre del canal que desea revertirRevertir una Actualización en Vivo
- Si despliegas una actualización en vivo que introduce un error o necesita ser revertida, puedes revertir fácilmente a una compilación anterior. Desde la sección “Canales” de la consola:
- Encuentre la compilación que desea revertir y haga clic en el icono de la corona

- Confirmar la acción
La compilación seleccionada se convertirá inmediatamente en la compilación activa para ese canal nuevamente. Las aplicaciones recibirán la versión revertida la próxima vez que revisen actualizaciones.
Automatización de Despliegues
Sección titulada “Automatización de Despliegues”Para flujos de trabajo más avanzados, puede automatizar sus despliegues de actualizaciones en vivo como parte de su pipeline de CI/CD. Al integrar Capgo en su proceso de compilación, puede subir automáticamente nuevos paquetes y asignarlos a canales cada vez que pulse en ciertas ramas o cree nuevas versiones.
Ver más sobre Integración de CI/CD consulte los docs para aprender más sobre la automatización de actualizaciones en vivo de Capgo.
Previsualizaciones de PR con privilegios mínimos
Sección titulada “Previsualizaciones de PR con privilegios mínimos”Utilice una Vista de Aplicación API clave cuando CI necesita una canal temporal por solicitud de extracción, pero no debe gestionar canales existentes principales/por defecto. La clave permanece vinculada a la organización propietaria y la aplicación seleccionada; simplemente no tiene un papel organizativo. Cada canal de vista previa no público que cree recibe sus propias permisos de ciclo de vida automáticos, canal-escopados.
- Tenga un administrador de la organización que cree una clave API segura limitada a la aplicación de vista previa y seleccione Vista de Aplicación. Consulte API Claves.
- Utilice un canal único, no público como
pr-123. No pase--default,--self-assign, opciones de lanzamiento o--delete-linked-bundle-on-upload. - Suba y promueva el paquete de solicitud de extracción en una sola orden, luego elimine el canal y el paquete propiedad cuando se cierre la solicitud de extracción:
APP_ID="com.example.app"PREVIEW_CHANNEL="pr-123"BUNDLE_VERSION="1.2.3-pr.123"
npx @capgo/cli@latest bundle upload "$APP_ID" \ --apikey "$CAPGO_PREVIEW_KEY" \ --path ./dist \ --channel "$PREVIEW_CHANNEL" \ --bundle "$BUNDLE_VERSION"
npx @capgo/cli@latest channel delete "$PREVIEW_CHANNEL" "$APP_ID" \ --apikey "$CAPGO_PREVIEW_KEY" \ --delete-bundle \ --success-if-not-foundbundle upload --channel crea un canal faltante, sube el paquete y lo promociona en un flujo. La limpieza es atómica y verificada por propiedad: la clave puede eliminar solo un canal que creó y su paquete vinculado, no compartido. No puede cambiar, promover o eliminar un canal principal/por defecto existente, un canal de otra clave de vista previa o un paquete de otra clave.
Si los revisores necesitan un código QR code o una URL de vista previa, un administrador debe habilitar las vistas previas una vez para la aplicación:
npx @capgo/cli@latest app set "$APP_ID" --previewnpx @capgo/cli@latest get-qr "$APP_ID" --channel "$PREVIEW_CHANNEL" --apikey "$CAPGO_PREVIEW_KEY" --urlUna clave de vista previa de aplicación no puede habilitar las vistas previas ella misma porque no tiene permiso de configuración de aplicación. En GitHub Actions, ejecuta trabajos de vista previa con secretos en pull_request, no pull_request_target, y restringe a PRs de la misma repositorio con github.event.pull_request.head.repo.full_name == github.repository.
Desplegar a un dispositivo
Sección titulada “Desplegar a un dispositivo”Ahora que entiendes los canales, estás listo para empezar a desplegar actualizaciones en vivo a dispositivos reales. El proceso básico es:
- Instala el Capgo SDK en tu aplicación
- Configura la aplicación para escuchar el canal deseado
- Carga una compilación y asigna a ese canal
- Lanza la aplicación y espera a la actualización!
Para una guía detallada, consulta el Actualización en vivo manual. ¡Feliz actualizando!
Uso avanzado de canales: Segmentación de usuarios
Sección titulada “Uso avanzado de canales: Segmentación de usuarios”Los canales se pueden utilizar para más que solo las etapas de desarrollo. Son una herramienta poderosa para la segmentación de usuarios, lo que permite características como:
- Banderas de características para diferentes niveles de usuarios
- Pruebas A/B
- Despliegue gradual de características
- Programas de pruebas beta
Aprende a implementar estos casos de uso avanzados en nuestra guía: Cómo segmentar a los usuarios por plan y canales para banderas de características y pruebas A/B.
Sigue adelante desde Canales
Sección titulada “Sigue adelante desde Canales”Si estás utilizando Canales para planificar la ruta de los canales y el despliegue en etapas, conecta Canales con Canales para obtener detalles de implementación en Canales, y Solución de Pruebas Beta para el flujo de trabajo del producto en Solución de Pruebas Beta, Solución de Enfoque de Versión para el flujo de trabajo del producto en Solución de Enfoque de Versión, y Capgo Prácticas de Entorno: Etapa con un ID de Aplicación Móvil para el contexto práctico en Capgo Prácticas de Entorno: Etapa con un ID de Aplicación Móvil.