Saltar al contenido

Canales

Los canales son la mecanismo fundamental para gestionar actualizaciones de aplicaciones en Capgo. Permiten controlar cómo y cuándo sus usuarios reciben actualizaciones, habilitando características como pruebas A/B, lanzamientos escalonados y actualizaciones específicas de plataforma.

Un canal representa una pista de distribución para las actualizaciones de tu aplicación. Cada canal puede configurarse con reglas y restricciones específicas:

  • Control de paquetes (versión): Especifica qué paquete (versión) reciben los usuarios
  • Diseño de plataforma: Dirige plataformas específicas (iOS/Android/Electron)
  • Políticas de actualización: Controla cómo se entregan las actualizaciones
  • Restricciones de dispositivo: Gestiona qué dispositivos pueden acceder a las actualizaciones
  • public: Establecer como canal predeterminado para nuevos dispositivos
  • __CAPGO_KEEP_0__: Evitar actualizaciones cuando la versión nativa del dispositivo es más nueva que la versión disponible en el canal (por ejemplo, el dispositivo está en la versión nativa 1.2.3, pero el canal tiene la versión 1.2.2)
  • : Controlar el comportamiento de actualización (‘mayor’, ‘menor’, ‘número de versión’, ‘ninguno’)ios/android/electron
  • : Habilitar/deshabilitar para plataformas específicas: Permitir a los dispositivos elegir su canal
  • : Permitir actualizaciones en dispositivos emuladores: Permitir actualizaciones en dispositivos de desarrollo
  • __CAPGO_KEEP_0____CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__: Permitir actualizaciones en compilaciones de desarrollo
  1. Canal de pruebas: Mantener un canal de pruebas para la validación interna
  2. Despliegue escalonado: Utilizar múltiples canales para el despliegue de actualizaciones graduales
  3. Separación de plataforma: Crear canales separados para iOS, Android y Electron cuando sea necesario
  4. Control de paquete (versión): Utilizar control de versiones semántico para rutas de actualización claras

https://api.capgo.app/channel/

Crear o actualizar una configuración de canal.

type disable_update = "major" | "minor" | "version_number" | "none"
interface ChannelSet {
app_id: string
channel: string
version?: string // bundle (version) name
public?: boolean
disableAutoUpdateUnderNative?: boolean
disableAutoUpdate?: disable_update
ios?: boolean
android?: boolean
electron?: boolean
allow_device_self_set?: boolean
allow_emulator?: boolean
allow_dev?: boolean
}
Ventana de terminal
curl -X POST \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0",
"public": false,
"disableAutoUpdate": "minor",
"ios": true,
"android": true,
"electron": true,
"allow_emulator": true
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

https://api.capgo.app/channel/

Obtener información del canal. Devuelve 50 canales por página.

  • app_id: Obligatorio. El ID de tu aplicación
  • page : Opcional. Número de página para la paginación
  • channel : Opcional. Nombre específico del canal para recuperar
Ventana de terminal
# Get all channels
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123"
# Get specific channel
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&channel=beta"
# Get next page
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&page=1"
interface Channel {
id: number;
created_at: string;
name: string;
app_id: string;
version: { // bundle (version) assigned to the channel
id: number,
name: string
};
created_by: string;
updated_at: string;
public: boolean;
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}

En la respuesta a continuación, version se refiere al paquete (versión) asignado al canal.

{
"data": [
{
"id": 1,
"name": "production",
"app_id": "app_123",
"version": {
"id": 1,
"name": "1.0.0"
},
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z",
"created_by": "user_123",
"public": true,
"disableAutoUpdateUnderNative": false,
"disableAutoUpdate": false,
"allow_emulator": false,
"allow_dev": false
}
]
}

https://api.capgo.app/channel/

Elimine un canal. Tenga en cuenta que esto afectará a todos los dispositivos que utilicen este canal.

interface Channel {
channel: string
app_id: string
}
Ventana de terminal
curl -X DELETE \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta"
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

Escenarios de errores comunes y sus respuestas:

// Channel not found
{
"error": "Channel not found",
"status": "KO"
}
// Invalid bundle (version) format
{
"error": "Invalid version format. Use semantic versioning",
"status": "KO"
}
// Invalid update policy
{
"error": "Invalid disableAutoUpdate value",
"status": "KO"
}
// Permission denied
{
"error": "Insufficient permissions to manage channels",
"status": "KO"
}
  1. Pruebas de beta
{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0-beta",
"public": false,
"allow_emulator": true,
"allow_dev": true
}
  1. Despliegue en producción
{
"app_id": "app_123",
"channel": "production",
"version": "1.2.0",
"public": true,
"disableAutoUpdate": "minor"
}
  1. Actualizaciones específicas de plataforma
{
"app_id": "app_123",
"channel": "ios-hotfix",
"version": "1.2.1",
"ios": true,
"android": false
}

Si estás utilizando Canales para planificar la ruta de canales y el despliegue en etapas, conecta con Canales para los detalles de implementación en Canales, Canales para los detalles de implementación en Canales, 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.