__CAPGO_KEEP_0__ - Mises à jour en temps réel pour les applications __CAPGO_KEEP_1__

Canaux

Les canaux sont le mécanisme de base pour gérer les mises à jour de l'application dans Capgo. Ils vous permettent de contrôler comment et quand vos utilisateurs reçoivent les mises à jour, en activant des fonctionnalités comme les tests A/B, les lancements étalés et les mises à jour spécifiques au plateau.

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 :

  • Contrôle de la version du bundle: Spécifiez quelle version du bundle 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 dispositif: Gérez lesquels dispositifs peuvent accéder aux mises à jour
  • public: Définissez le 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 mise à jour du bundle (version) disponible dans le canal (par exemple, l'appareil est sur la version native de l'application 1.2.3, mais le canal a le bundle (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. Gestion de Bundles (version): Utilisez la versionnement semantique 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: Facultatif. 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 fait référence 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 de 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 au 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 à 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 travail du produit dans Solution de test bêta, Solution de ciblage de version pour le flux de travail du produit dans Solution de ciblage de version, et Capgo Pratiques de meilleures pratiques de l'environnement : mise en scène avec un seul ID d'application mobile pour le contexte pratique dans Capgo Pratiques de l'environnement : Étape de mise en scène avec un seul ID d'application mobile.