Allez directement au contenu principal
Tutoriel

Surfage de chaînes pour Capgo: Comment passer d'une chaîne d'actualisation à une autre en temps de runtime

Envoyez des mises à jour spécifiques à des utilisateurs instantanément avec Capgo's runtime channel switching. Passez d'une chaîne d'actualisation à une autre sans réinstaller votre application Capacitor.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Surfer de chaînes pour Capgo: Comment passer d'une chaîne d'actualisation à une autre en temps réel

Avez-vous déjà souhaité envoyer une mise à jour directement à un utilisateur pour leur permettre de la tester et de la valider immédiatement, sans leur demander de télécharger et d'installer une nouvelle version depuis 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 différentes mises à jour à 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 en cours de développement, de recueillir des commentaires et de retourner ensuite à la production.

C'est ce que le surfage de chaînes permet. Une application installée sur un appareil utilisateur peut passer d'une chaîne d'actualisation à une autre en temps réel, transformant une application de production en un espace flexible pour la revue et l'itération plutôt qu'un point final fixe. C'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 chaînes d'actualisation

Les canaux d'actualisation sont la façon dont les cibles Capgo s'actualisent vers des versions spécifiques. Chaque version est associée à un canal, et ce canal détermine lesquelles des mises à jour elle recevra.

Par exemple, vous pouvez publier des mises à jour dans un canal sans affecter les utilisateurs sur preview Jusqu'à présent, la passerelle des canaux nécessitait l'installation d'une version native différente ou la modification manuelle des affectations de dispositif via le tableau de bord. productionLes canaux dans __CAPGO_KEEP_0__ vous permettent de :

Channels in Capgo allow you to:

  • Lancer des tests A/B en affectant les utilisateurs à différents canaux
  • Roller progressivement de nouvelles fonctionnalités
  • Créer des programmes de test bêta
  • Déboguer les problèmes de production avec des utilisateurs individuels
  • Si vous n'êtes pas familiarisé avec les canaux d'actualisation, la documentation des canaux de __CAPGO_KEEP_0__

__CAPGO_KEEP_0__ Capgo les couvrent en détail.

Qu'est-ce que la navigation de chaînes ?

La navigation de chaînes permet à une application installée de récupérer des flux d'actualisation différents sans avoir à réinstaller. 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 un responsable qualité peut basculer une production construction vers, par exemple, un preview canaux, essayer les dernières modifications. Lorsqu'ils ont terminé de tester, ils basculent de nouveau vers production encore. 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 de chaînes 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é.

Comment mettre en œuvre la navigation de chaînes

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

The only setup required for channel surfing is enabling “Allow devices to self associate” on each channel you want to switch to in the Capgo dashboard. Aucune modification de code ou de configuration n'est nécessaire au-delà de cela.

En son cœur, la navigation entre les chaînes est pilotée par une seule appelle de 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 sur Capgo. En savoir plus sur la méthode setChannel API.

Switch Channel Instantané (à partir de la version 5.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), setChannel() fonctionne différemment et beaucoup plus rapidement :

  1. Validation côté serveur (lecture seule): Une requête est envoyée au serveur Capgo pour valider que la chaîne est autorisée
  2. Mise à jour du stockage local: Si la validation passe, la chaîne est enregistrée dans le stockage local du dispositif
  3. Effet instant: 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 backend (comme Dashboard ou API modifications). Les appareils devaient attendre la réplication backend (jusqu'à 2 minutes) avant que le nouveau canal soit reconnu. Le nouveau comportement ne lit que dans le backend (pour la validation) et stocke localement, ce qui rend les changements de canal instantanés.

Flux de changement de canal complet

Pour une meilleure expérience utilisateur, vous voulez généralement faire plus que simplement passer au 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érifier une mise à jour (getLatest)
  3. Télécharger et appliquer la mise à jour (download, set ou next)
  4. Recharger l'application si nécessaire (reload)

Voici un exemple complet :

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

La façon dont vous structurez ce flux vous appartient. Vous pouvez diviser ces étapes en plusieurs interactions ou les exécuter toutes à la fois. Quelle que soit la façon dont vous structurez le flux, assurez-vous de tenir compte des échecs. Les problèmes de réseau ou un canal non valide peuvent tous empêcher une mise à jour d'être appliquée.

La Seule Exigence : Activer L'Auto-Attribution

C'est la seule chose que vous devez faire pour activer la navigation entre les canaux. Avant que votre application puisse passer à un canal à l'aide de setChannel() vous devez activer l'auto-attribution pour ce canal dans le tableau de bord Capgo :

  1. Allez dans la section Canaux du 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. Sauvegardez les modifications

Activer l'auto-assignation dans les paramètres du canal

C'est tout. Aucune modification de configuration n'est nécessaire dans votre application. Non defaultChannel aucune configuration requise. Il suffit d'activer l'auto-assignation sur les canaux que vous souhaitez que les utilisateurs puissent basculer vers.

Si cette option est désactivée, toute tentative de setChannel() appel 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.

Récupérer le Canal Actuel

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

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

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

Revenir à la Chaîne Par Défaut

Pour supprimer la surcharge de la chaîne et revenir à la valeur par défaut :

await CapacitorUpdater.unsetChannel({});

Cette opération débranche l'appareil de toute chaîne spécifiquement assignée, ce qui le fait retomber sur la defaultChannel dans votre configuration ou la valeur par défaut du cloud.

Comment Tester la Navigation entre les Chaînes

Pour voir la navigation entre les chaînes en action, vous aurez besoin d'une version de production - le @capgo/capacitor-updater API est conçu pour les versions de production. Dans les versions de débogage, l'application charge généralement du JavaScript à partir d'un serveur de développement au lieu de cela, ce qui contourne le flux de mise à jour normal.

Prérequis

La seule exigence pour la navigation entre les chaînes est de permettre “Autoriser les appareils à se lier automatiquement” sur chaque chaîne que vous souhaitez autoriser le passage.

Créer une Version de Test

Construisez votre application comme d'habitude :

bun run build && npx cap sync

Ensuite, créez vos builds natives à 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.

Mise à jour des publications 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 de canaux dans l'application et déclenchez le basculement 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 basculement de canal

La navigation de canaux est généralement quelque chose que vous souhaitez exposer à un ensemble 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 bascule l'application vers le canal de prévisualisation.

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

Problèmes liés aux mises à jour OTA

Aucun de ces problèmes n'est spécifique à la navigation de canaux, mais ils tendent à devenir apparents rapidement une fois que vous commencez à basculer entre canaux en temps de exécution.

Mismatches de versions en temps de exécution

Les mises à jour dans Capgo sont liées aux versions natives de l'application. 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 de canaux, cela se manifeste généralement par l'application qui bascule entre canaux mais sans mise à jour appliquée, même si une mise à jour existe sur ce canal.

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

Supprimer ou Annuler les Mises à Jour

Si une application a déjà téléchargé une mise à jour pour un canal, supprimer cette mise à jour du tableau de bord Capgo ne la supprime pas des appareils qui l'ont déjà. La suppression ne s'arrête que futur téléchargements.

La méthode la plus fiable pour annuler une mauvaise mise à jour 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 fournit également un mécanisme de reversion 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.

Considérations de Migration de Données

Passer d'un canal à un autre change le bundle JavaScript qui s'exécute dans l'application. Si votre application dépend de migrations ou de formes de données qui ne sont pas compatibles entre canaux, passer d'un canal à l'autre peut entraîner des problèmes.

Par exemple, si une mise à jour bêta applique une migration de base de données, la version production ne comprend peut-être pas le nouveau schéma. Les développeurs doivent s'assurer que leurs mises à jour restent sûres à passer d'un canal à l'autre ou restreindre le passage à une direction lorsque cela est nécessaire.

Pourquoi la Navigation entre les Canaux Améliore les Itérations Mobiles

La navigation entre les canaux 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 entre les canaux, la modification peut être isolée à un petit ensemble d'utilisateurs désignés qui peuvent la réviser avant qu'elle ne rejoigne la production.

Révision des Parties Preparées

Un propriétaire de produit ou un responsable de la qualité peut basculer leur build de production installé vers une autre canal d'actualisation, vérifier la correction ou la fonctionnalité, et basculer à nouveau une fois qu'ils ont terminé.

Test Automatisé

Cela facilite la participation des parties prenantes non techniques à la révision et à la prise de décision, tout en maintenant le flux de travail fluide. Un seul build de production devient un outil flexible pour les tests, les retours et la validation.

Utilisations

  • Test de Qualité: Les équipes de test QA peuvent basculer entre les branches de fonctionnalités
  • Programmes Bêta: Les utilisateurs optent pour le canal bêta pour un accès précoce
  • Révision des Parties Preparées: Propriétaires de produit prévoient les changements avant la mise en production
  • A/B Testing: Affecter les utilisateurs à différents canaux pour les expériences
  • Debugging: Passer un utilisateur spécifique à un canal de débogage pour diagnostiquer les problèmes

Comparison: Méthodes de changement de canal

Méthode Durée d'effet Enregistré où Utilisation
setChannel() à partir du plugin Instant Appareil uniquement (local) Switch de canal initié par l'utilisateur en application
Survol du canal de l'appareil sur le tableau de bord Jusqu'à 2 min Base de données backend Modifications initiées par l'administrateur pour des appareils spécifiques
API affectation de canal Jusqu'à 2 min Base de données backend Intégrations backend automatiques

Pour obtenir la meilleure expérience utilisateur lors de la création de UI de switch de canal, utilisez toujours la méthode du plugin. setChannel() __CAPGO_KEEP_0__

Meilleures Pratiques

  1. Accès ProtégéLa navigation entre les canaux est généralement réservée à l'utilisation interne - n'y exposez pas tous les utilisateurs
  2. Gérer les ErreursGérez toujours les erreurs avec souplesse lors du passage entre les canaux
  3. Valider laCompatibilitéAssurez-vous que les mises à jour sur différents canaux sont compatibles avec la version native installée
  4. Documenter les CanauxConservez une documentation claire sur ce que chaque canal est destiné à faire
  5. Surveiller l'UtilisationSuivez les appareils qui sont sur quelles canaux pour le débogage

Ressources

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 la test, la validation et l'itération rapide.

Avec la mise à jour instantanée des canaux 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 à partir de Navigation entre les canaux pour Capgo: Comment passer d'une mise à jour de canal à une autre en temps de exécution

Si vous utilisez Navigation entre les canaux pour Capgo: Comment passer d'une mise à jour de canal à une autre en temps de exécution pour planifier la routage de canal et la mise en production étalée, connectez-le à Canaux pour les détails d'implémentation dans Canaux, 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, et Solution de ciblage de version pour le flux de travail du produit dans Solution de ciblage de version.

Mises à jour en temps réel pour les applications Capacitor

Lorsqu'un bug de la couche web est en ligne, expédiez la correction par Capgo au lieu d'attendre des jours pour l'approbation de l'app store. Les utilisateurs reçoivent l'actualisation en arrière-plan tandis que les modifications natives restent dans la voie de revue normale.

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.