Sauter au contenu

Canaux

Channels are the core mechanism for managing app updates in Capgo. They allow you to control how and when your users receive updates, enabling features like A/B testing, staged rollouts, and platform-specific updates.

Un canal représente une piste de distribution pour les mises à jour de votre application. Chaque canal peut être configuré avec des règles et des contraintes spécifiques :

  • Gestion de la version du bundle Spécifiez la version du bundle que les utilisateurs reçoivent
  • Ciblage de plateforme Ciblez des plateformes spécifiques (iOS/Android/Electron)
  • Politiques de mise à jour Contrôlez comment les mises à jour sont livrées
  • Restrictions de dispositifGérez les dispositifs qui peuvent accéder aux mises à jour
  • public: Définir comme canal par défaut pour les nouveaux appareils
  • disableAutoUpdateUnderNative: Empêcher les mises à jour lorsque la version native de l'appareil est plus récente que la version de mise à jour (version) disponible dans le canal (par exemple, l'appareil est sur la version native 1.2.3, mais le canal a la version de mise à jour (version) 1.2.2)
  • disableAutoUpdate: Contrôler le comportement de mise à jour (“majeur”, “mineur”, “version_number”, “aucun”)
  • ios/android/electron: Activer/désactiver pour les plateformes spécifiques
  • allow_device_self_set: Laisser aux appareils choisir leur canal
  • allow_emulator: Autoriser les mises à jour sur les appareils émulés
  • allow_dev: Autoriser les mises à jour sur les builds de développement
  1. Canal de Test: Maintenez un canal de test pour la validation interne
  2. Déploiement Graduel: Utilisez plusieurs canaux pour un déploiement d'actualisation progressif
  3. Séparation de Plateforme: Créez des canaux séparés pour iOS, Android et Electron lorsque nécessaire
  4. Contrôle de Bundling (version): Utilisez gestion de version sémantique pour des chemins d'actualisation clairs

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

Créer ou mettre à jour une configuration 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
}
Fenêtre 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/

Récupérer les informations du canal. Retourne 50 canaux par page.

  • app_id : Obligatoire. L'ID de votre application
  • page : Facultatif. Numéro de page pour la pagination
  • channel: Obligatoire. Nom spécifique du canal à récupérer
Fenêtre 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;
}

Dans la réponse ci-dessous, version se réfère au bundle (version) affecté au 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/

Supprimer un canal. Notez que cela affectera tous les appareils utilisant ce canal.

interface Channel {
channel: string
app_id: string
}
Fenêtre 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"
}

Scénarios d'erreurs courants et leurs réponses :

// 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. Test en version bêta
{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0-beta",
"public": false,
"allow_emulator": true,
"allow_dev": true
}
  1. Déploiement en production
{
"app_id": "app_123",
"channel": "production",
"version": "1.2.0",
"public": true,
"disableAutoUpdate": "minor"
}
  1. Mises à jour spécifiques à la plateforme
{
"app_id": "app_123",
"channel": "ios-hotfix",
"version": "1.2.1",
"ios": true,
"android": false
}

Si vous utilisez Canaux pour planifier la mise en route des canaux et la mise en production étape par étape, connectez-le avec Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Solution de test bêta pour le flux de produit dans la Solution de test en bêta, Solution de ciblage de version pour le flux de produit dans la Solution de ciblage de version, et Capgo Pratiques de l'environnement : mise en scène avec un ID d'application mobile unique pour le contexte pratique dans Capgo Pratiques de l'environnement : mise en scène avec un ID d'application mobile unique.