Allez directement au contenu principal
Guide

Surfer les canaux pour Capgo: Comment passer d'un canal d'actualisation à un autre en temps réel

Envoyez des modifications à des utilisateurs spécifiques instantanément avec Capgo et passez d'un canal d'actualisation à un autre sans réinstaller votre application Capacitor.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Surfer les canaux pour Capgo: Comment passer d'un canal d'actualisation à un autre en temps réel

Vous avez peut-être souhaité envoyer une modification directement à un utilisateur spécifique pour qu'il puisse la réviser et la commenter immédiatement, sans leur demander de télécharger et d'installer une nouvelle version de TestFlight ou Google Play ?

J'ai eu des clients qui demandaient des améliorations que j'ai pu mettre en œuvre rapidement, mais pour obtenir les résultats dans leurs mains pour les valider, il fallait envoyer une mise à jour à tous les utilisateurs (risqué pour une modification expérimentale) ou créer une version spécifique pour le client (un travail pour les deux).

Ce qui manquait, c'était de la flexibilité. Les développeurs voulaient pouvoir servir des mises à jour différentes à différents groupes d'utilisateurs, comme les parties prenantes non techniques, la QA ou l'ensemble de la base d'utilisateurs lorsqu'il était approprié.

Il n'y avait pas de moyen pour une version de production de passer à une version de travail en cours, de recueillir des commentaires et de retourner ensuite à la production.

Voilà ce qui la navigation entre les canaux permet. Une application installée sur un appareil utilisateur peut basculer entre les canaux de mise à jour en temps de exécution, transformant une application de production en un espace flexible pour la revue et l'itération plutôt qu'un point fixe. Cela est particulièrement utile pour les parties prenantes non techniques travaillant avec des applications de production, leur permettant de tester des modifications et de donner des commentaires directement dans l'application qu'ils ont déjà installée.

Comprendre les canaux de mise à jour

Les canaux de mise à jour sont la manière dont Capgo cible les mises à jour vers des builds spécifiques. Chaque build est associé à un canal, et ce canal détermine lesquelles des mises à jour il recevra.

Par exemple, vous pouvez publier des mises à jour dans un preview canaux sans affecter les utilisateurs sur production. Dans le passé, le basculement entre les canaux nécessitait l'installation d'une version native différente ou la modification manuelle des affectations d'appareil via le tableau de bord.

Les canaux de Capgo vous permettent de :

  • Cibler des groupes d'utilisateurs spécifiques avec des fonctionnalités différentes
  • Exécuter des tests A/B en affectant les utilisateurs à des canaux différents
  • Rouler progressivement de nouvelles fonctionnalités
  • Créez des programmes de test bêta
  • Déboguez les problèmes de production avec des utilisateurs individuels

Si vous n'êtes pas familiarisé avec les canaux d'actualisation, le Capgo documentation des canaux couvre les détails en plus.

Qu'est-ce que la navigation entre les canaux ?

La navigation entre les canaux permet à une application installée de récupérer des flux d'actualisation différents sans devoir être réinstallée. Une application installée peut basculer entre les canaux d'actualisation en temps de exécution, et elle continuera à recevoir des mises à jour du nouveau canal sélectionné jusqu'à ce que l'application soit désinstallée ou basculée vers un autre canal.

En pratique, cela signifie que le propriétaire d'un produit ou le responsable de la qualité peut basculer une production version de construction vers, par exemple, un preview canaux, essayer les dernières modifications. Lorsqu'ils ont terminé de tester, ils basculent de nouveau vers production à nouveau. Il n'est pas nécessaire de réinstaller ou de créer une version de prévisualisation séparée.

Sous le capot, la navigation entre les canaux fonctionne en permettant à l'application de dire au client d'actualisation quel canal utiliser. Cette choix peut être changé en temps de exécution et reste en vigueur jusqu'à ce qu'il soit supprimé ou remplacé.

How to Implement Channel Surfing

Avant de pouvoir essayer la navigation entre chaînes, votre projet doit être configuré avec les Mises à jour en direct de Capgo. Pour configurer cela, suivez le guide de démarrage rapide Capgo Le guide de démarrage rapide Capgo.

La seule configuration requise pour la navigation entre chaînes est d'activer « Autoriser les appareils à se lier automatiquement » sur chaque chaîne que vous souhaitez basculer vers dans l'interface de dashboard Capgo. Aucune modification de configuration ou de paramètres code n'est nécessaire au-delà de cela.

En fin de compte, la navigation entre chaînes est pilotée par une seule appelle API:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({ channel: 'your-channel' });

Cela définit la chaîne utilisée lors de la recherche de mises à jour Capgo. En savoir plus sur la fonctionnalité setChannel API.

Navigation Instantanée entre Chaînes (v5.34.0+)

À partir de la version du plugin 5.34.0, 6.34.0, 7.34.0 ou 8.0.0 (selon votre version majeure), la navigation entre chaînes fonctionne différemment et beaucoup plus rapidement : setChannel() Navigation entre Chaînes Instantanée (v5.34.0+)

  1. Validation de l'arrière-plan (lecture seule): Une requête est envoyée à l'arrière-plan Capgo pour valider que le canal est autorisé
  2. Mise à jour de la mise en cache locale: Si la validation passe, le canal est enregistré dans la mise en cache locale du dispositif
  3. Effet instantané: La prochaine vérification de mise à jour utilise immédiatement le nouveau canal

Jusqu'à présent, setChannel() enregistrait la surcharge de canal dans la base de données de l'arrière-plan (comme le tableau de bord ou API modifications). Les appareils devaient attendre la réplication de l'arrière-plan (jusqu'à 2 minutes) avant que le nouveau canal soit reconnu. Le nouveau comportement ne lit que de l'arrière-plan (pour la validation) et stocke localement, ce qui fait que les changements de canal sont instantanés.

Flux de changement de canal complet

Pour une meilleure expérience utilisateur, vous voulez généralement faire plus que simplement changer le canal et attendre la prochaine redémarrage de l'application. Une approche courante consiste à vérifier immédiatement les mises à jour, à les télécharger si disponibles, et à recharger l'application afin que l'utilisateur se retrouve directement sur la mise à jour sélectionnée du canal.

Un flux typique ressemble à ceci :

  1. Changer le canal (setChannel)
  2. Vérifiez si une mise à jour est disponible (getLatest)
  3. Récupérez et appliquez la mise à jour (download, set ou next)
  4. Vérifiez si une mise à jour est disponible (reload)

Récupérez et appliquez la mise à jour (

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

ou

La mise à jour fonctionne de la manière suivante :

La seule chose que vous devez faire pour activer la navigation entre les chaînes est d'activer l'auto-assignation. C'est la seule chose que vous devez faire pour activer la navigation entre les chaînes. setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. vous devez activer l'auto-assignation pour cette chaîne dans le tableau de bord Allez dans le menu déroulant et sélectionnez Chaînes section dans votre tableau de bord Capgo
  2. Cliquez sur le nom du canal que vous souhaitez gérer
  3. Activer « Autoriser les appareils à se lier automatiquement »
  4. Enregistrer les modifications

Activer la mise à l'association automatique dans les paramètres du canal

C'est tout. Aucune modification de configuration n'est nécessaire dans votre application. Aucune defaultChannel configuration requise. Il suffit d'activer la mise à l'association automatique sur les canaux que vous souhaitez que les utilisateurs puissent basculer.

Si cette option est désactivée, toute tentative de appel setChannel() avec ce canal échouera et l' channelPrivate événement se déclenchera.

Liste des canaux disponibles

Vous pouvez récupérer la liste des canaux disponibles pour l'auto-assignation :

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

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

Seuls les canaux où l'auto-assignation est activée sont retournés.

Obtenir le Canal Actuel

Vérifiez le canal auquel le dispositif est actuellement assigné :

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

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

Rétablir le Canal Par Défaut

Pour supprimer l'override de canal et revenir à la valeur par défaut :

await CapacitorUpdater.unsetChannel({});

Cette opération débranche le dispositif de tout canal spécifiquement assigné, ce qui le fait retomber sur le defaultChannel ou le canal par défaut dans le cloud.

Comment Tester la Navigation de Canaux

Pour voir la navigation de canaux en action, vous aurez besoin d'une version de sortie - le @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.

Prérequis

La seule exigence pour la navigation entre les canaux est d'activer “Autoriser les appareils à se lier automatiquement” sur chaque canal que vous souhaitez autoriser à passer. Aucune modification de configuration n'est nécessaire dans votre application.

Création d'une Build de Test

Construirez votre application comme d'habitude :

bun run build && npx cap sync

Ensuite, créez vos builds natifs à l'aide de Xcode ou d'Android Studio, ou utilisez votre pipeline CI/CD. L'application commencera sur le canal défini par défaut dans votre tableau de bord Capgo.

Publication de Mises à Jour sur Différents Canaux

Une fois l'application installée, publiez des mises à jour sur différents canaux :

# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview

# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production

À partir de là, naviguez vers votre interface de navigation entre les canaux dans l'application et déclenchez le changement de canal. L'application devrait récupérer la mise à jour du canal sélectionné et se recharger dans la nouvelle mise à jour.

Création d'une Interface de Changement de Canal

La navigation entre les canaux est généralement quelque chose que vous souhaitez exposer à un nombre limité d'utilisateurs, et non à tous les utilisateurs de votre application. Par exemple, vous pouvez avoir un bouton disponible uniquement pour les employés authentifiés qui permet de passer l'application au canal de prévisualisation.

Voici un exemple de composant React pour un changement 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>
  );
}

Les pièges de mise à jour OTA

None of these are specific to channel surfing, but they tend to become apparent quickly once you start switching channels at runtime.

Les incompatibilités de version à l'exécution

Mises à jour dans Capgo sont liées aux versions natives d'applications. Si la version native d'une mise à jour ne correspond pas à la version native de l'application installée, la mise à jour ne sera pas téléchargée ou appliquée. Lors de la navigation entre les canaux, cela se manifeste généralement par l'application qui change de canal mais sans mise à jour appliquée, même si une mise à jour existe sur ce canal.

Cela signifie généralement que la mise à jour a été publiée à partir d'une version native différente de l'application. Assurez-vous que le bundle de votre canal est compatible avec la version native installée sur le dispositif.

La suppression ou l'annulation des mises à jour

Si une application a déjà téléchargé une mise à jour pour un canal, la suppression de cette mise à jour du tableau de bord de Capgo ne la supprime pas des appareils qui l'ont déjà. La suppression ne s'applique qu'aux téléchargements futurs. La méthode la plus fiable pour annuler une mise à jour incorrecte est de publier une mise à jour connue comme bonne sur le même canal. Cela crée une nouvelle mise à jour en haut de l'historique du canal, que les clients traiteront comme la dernière version et appliqueront à la place.

__CAPGO_KEEP_0__ fournit également un mécanisme de retraitement qui peut instruire les clients à réappliquer une mise à jour stable précédente ou à revenir à la mise à jour intégrée dans la construction.

Capgo also provides a rollback mechanism that can instruct clients to re-apply a previous stable update or fall back to the update embedded in the build.

__CAPGO_KEEP_0__

La mise à jour de canal change le bundle JavaScript qui exécute l'application. Si votre application dépend de migrations ou de formes de données qui ne sont pas compatibles entre canaux, la mise à jour de canal peut entraîner des problèmes lorsqu'elle est effectuée à plusieurs reprises.

Par exemple, si une mise à jour de beta applique une migration de base de données, la version de production ne comprend peut-être pas le nouveau schéma. Les développeurs doivent s'assurer que leurs mises à jour restent sûres pour les mettre à jour entre ou restreindre la mise à jour à une direction lorsque cela est nécessaire.

Pourquoi la navigation de canal améliore l'itération mobile

La navigation de canal est particulièrement utile lorsque vous avez besoin de passer en revue rapidement les changements dans un environnement de production.

Validation Rapide

Imaginez une correction urgente de bogues qui nécessite une validation avant d'être déployée largement. Avec la navigation de canal, la modification peut être isolée à un petit ensemble d'utilisateurs désignés qui peuvent la passer en revue avant qu'elle ne rejoigne la production.

Examen par les parties prenantes

Un propriétaire de produit ou un responsable de la qualité peut mettre à jour sa version de production installée vers un autre canal de mise à jour, vérifier la correction ou la fonctionnalité, et puis revenir à la version d'origine une fois qu'il a terminé.

Test Streamliné

Cela facilite l'implication des parties prenantes non techniques dans l'examen et la prise de décision, tout en maintenant le flux de travail fluide. Une seule version de production devient un outil flexible pour les tests, les commentaires et la validation.

Utilisations

  • context : L'équipe QA peut basculer entre les branches de fonctionnalités
  • Programmes Bêta : Les utilisateurs s'inscrivent au canal bêta pour avoir accès précoce
  • Examen des Parties Preparées : Les propriétaires de produits prévoient les modifications avant la mise en production
  • Tests A/B : Les utilisateurs sont affectés à différents canaux pour des expérimentations
  • Débogage : Un utilisateur spécifique est basculé dans un canal de débogage pour diagnostiquer les problèmes

Comparaison : Méthodes de Changement de Canal

Méthode Durée d'Effet Persistance Où Utilisation
setChannel() à partir de plugin Instantané Seulement appareil (local) Switch de canal initié par l'utilisateur en application
Survol de l'appareil par l'interface utilisateur Jusqu'à 2 min Base de données backend Modifications administratives pour appareils spécifiques
API affectation de canal Jusqu'à 2 min Base de données de serveur Intégrations de serveur automatiques

Pour obtenir la meilleure expérience utilisateur lors de la création d'interfaces utilisateur de basculement de canal, utilisez toujours la méthode du plugin. setChannel() Meilleures Pratiques

Limitation d'accès

  1. Le basculement de canal est généralement réservé à l'utilisation interne - n'y exposez pas tous les utilisateursGestion des erreurs
  2. Gérez toujours les erreurs de manière gracieuse lors du basculement de canalValidation de la compatibilité
  3. Assurez-vous que les mises à jour sur différents canaux sont compatibles avec la version native installéeDocumentation des canaux
  4. Gestion des erreurs : Gardez une documentation claire sur la finalité de chaque canal.
  5. Monitor Usage: Suivez les appareils qui sont sur quelles canaux pour le débogage.

Resources

Conclusion

La navigation entre les canaux transforme la façon dont vous pouvez itérer sur votre application Capacitor. Au lieu de considérer les builds de production comme des points de terminaison fixes, ils deviennent des outils flexibles pour le test, la validation et l'itération rapide.

Avec la mise à jour instantanée de canal introduite dans les versions récentes du plugin, l'expérience est maintenant fluide - les utilisateurs peuvent passer d'un canal à l'autre et recevoir immédiatement des mises à jour du nouveau canal sans période d'attente.

Qu'il s'agisse de valider les correctifs de bogues avec les parties prenantes, de lancer des programmes de bêta ou de déboguer des problèmes avec des utilisateurs spécifiques, la navigation entre les canaux vous donne la flexibilité de livrer la mise à jour appropriée à l'utilisateur approprié au moment approprié.

Continuez de Channel Surfing pour Capgo: Comment passer d'une chaîne de mise à jour à l'autre en temps réel

Si vous utilisez Channel Surfing pour Capgo: Comment passer d'une chaîne de mise à jour à l'autre en temps réel pour planifier la routage des canaux et la mise en production étalée, connectez-l’à Canal context : Canal de mise à jour de Capgo. Page/zone : Page de marketing des solutions de Capgo. Rôle : Étiquette de navigation ou élément de menu court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour les détails d'implémentation dans Canal Canal context : Canal de mise à jour de Capgo. Page/zone : Page de marketing des solutions de Capgo. Rôle : Étiquette de navigation ou élément de menu court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour les détails d'implémentation dans Canal Canal context : Canal de mise à jour de Capgo. Page/zone : Page de marketing des solutions de Capgo. Rôle : Étiquette de navigation ou élément de menu court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.

Continuez à partir de Channel Surfing pour Capacitor : Comment passer d'un canal à un autre en temps de runtime pour mettre à jour les applications Capacitor : Mise à jour en temps réel pour les applications Capacitor

When un bug est présent dans la couche web, envoyez la correction à travers Capgo au lieu d'attendre des jours pour l'approbation de l'app store. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natives restent dans la voie de revue normale.

Un soutien humain de la part de Martin

Démarrer maintenant

Dernières actualités de notre blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.