Aller directement au contenu principal
Tutoriel

Surfage de chaîne pour Capgo: Comment passer d'une chaîne d'actualisation à une autre en temps de exécution

Envoyez des modifications à des utilisateurs spécifiques instantanément avec Capgo's fonctionnalité de changement de chaîne d'actualisation en temps de exécution. Passer d'une chaîne d'actualisation à une autre sans devoir réinstaller votre application Capacitor.

Martin Donadieu

Martin Donadieu

Responsable de contenu

Surfage de chaîne pour Capgo: Comment passer d'une chaîne d'actualisation à une autre en temps de exécution

Vous avez peut-être souhaité pouvoir envoyer une mise à jour directement à un utilisateur spécifique pour leur examen et leur retour d'information - sans leur demander de télécharger et d'installer une nouvelle version de TestFlight ou Google Play ?

J'ai eu des clients qui ont demandé 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 la base d'utilisateurs entière 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 retours d'information et de retourner ensuite à la production.

C'est ce que la navigation entre les chaînes permet. Une application installée sur un appareil utilisateur peut basculer entre les chaînes de mise à jour en temps de exécution, transformant une application de production en un espace flexible pour l'examen 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 retours d'information directement dans l'application qu'ils ont déjà installée.

Comprendre les Chaînes de Mise à Jour

Les chaînes de mise à jour sont comment Capgo cible les mises à jour vers des versions spécifiques. Chaque version est associée à une chaîne, et cette chaîne détermine les mises à jour qu'elle recevra.

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

Les canaux dans 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 à différents canaux
  • Lancer 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 de mise à jour, la Capgo documentation sur les canaux les couvre en détail.

Qu'est-ce que la navigation de canaux ?

La navigation de canaux permet à une application installée de récupérer à partir de différents flux de mise à jour sans devoir la réinstaller. Une application installée peut passer à un canal de mise à jour différent 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 soit passée à un autre canal.

In pratique, cela signifie que le propriétaire d'un produit ou un QA peut basculer une production construction vers, par exemple, un preview canal, essayer les dernières mises à jour. Lorsqu'ils ont terminé les tests, ils basculent à nouveau vers production encore une fois. Il n'est pas nécessaire de réinstaller ou de créer une mise en prévue séparée.

Sous la capote, la navigation de canal fonctionne en permettant à l'application de dire au client de mise à jour 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 Canal

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

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. code tableau de bord.

Aucune modification de la configuration ou des mises à jour API n'est nécessaire au-delà de cela.

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

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

En fin de compte, la navigation de canal est pilotée par une seule appelle de Capgo : En savoir plus sur le setChannel API.

Switcher de canal instantané (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), setChannel() fonctionne différemment et beaucoup plus rapidement :

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

Jusqu'à présent, setChannel() en a sauvé le canal de substitution vers 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 vers 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 souhaitez généralement faire plus que simplement passer au canal suivant et attendre le prochain redémarrage de l'application. Une approche courante consiste à vérifier immédiatement les mises à jour, à les télécharger si elles sont disponibles et à recharger l'application afin que l'utilisateur se retrouve directement sur la mise à jour du canal sélectionné.

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)

Ici est 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 à plusieurs reprises ou les exécuter toutes en même temps. 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.

L'Unique Exigence : Activer l'auto-attribution

Cette est la seule chose que vous devez faire pour activer la navigation entre chaînes. Avant que votre application puisse passer à une chaîne en utilisant setChannel(), vous devez activer l'auto-assignation pour cette chaîne dans le tableau de bord Capgo :

  1. Allez dans la Chaînes section de votre tableau de bord Capgo
  2. Cliquez sur le nom de la chaîne que vous souhaitez gérer
  3. Activer “Autoriser les appareils à s'auto-associer”
  4. Sauvegardez les modifications

Activer l'auto-assignation dans les paramètres de la chaîne

C'est tout. Aucune modification de configuration nécessaire dans votre application. defaultChannel setting requise. Activez simplement la réaffectation automatique sur les canaux que vous souhaitez que les utilisateurs puissent basculer vers.

Si ce paramètre est désactivé, toute tentative de setChannel() appel avec ce canal échouera et le channelPrivate événement se déclenchera.

Liste des Canaux Disponibles

Vous pouvez récupérer la liste des canaux disponibles pour la réaffectation automatique:

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

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

Cela ne retourne que les canaux où la réaffectation automatique est activée.

Récupérer le Canal Actuel

Vérifiez sur quel canal le dispositif est actuellement affecté:

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

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

Rétablir le Canal Par Défaut

Pour supprimer la réaffectation du canal et revenir à la valeur par défaut:

await CapacitorUpdater.unsetChannel({});

Cela débranche le dispositif de tout canal spécifiquement affecté, ce qui le fait retomber sur le canal par défaut, defaultChannel In votre config ou le cloud par défaut.

Comment tester la navigation entre chaînes

Pour voir la navigation entre chaînes en action, vous aurez besoin d'une version de sortie - le @capgo/capacitor-updater API est conçu pour les versions de sortie. Dans les builds 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 chaînes est de permettre “Autoriser les appareils à se lier automatiquement” sur chaque chaîne que vous souhaitez autoriser le passage à. Aucune modification de configuration n'est nécessaire dans votre application.

Création d'une version 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 Android Studio, ou utilisez votre pipeline CI/CD. L'application commencera sur la chaîne définie comme cloud par défaut dans votre Capgo tableau de bord.

Publication de mises à jour sur différentes chaînes

Une fois l'application installée, publiez des mises à jour dans 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 doit récupérer la mise à jour du canal sélectionné et se recharger dans la nouvelle mise à jour.

Construire 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 à tout le monde utilisant 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>
  );
}

Mises à jour OTA (Over-The-Air) : pièges

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 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.

Suppression ou annulation de 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 Capgo ne la supprime pas des appareils qui l'ont déjà téléchargée. La suppression ne s'arrête qu'à la suppression de la mise à jour sur le tableau de bord. avenir téléchargements.

La méthode la plus fiable pour annuler une mise à jour déficiente est de publier une mise à jour connue pour être 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 retraitement qui peut instruire les clients à réappliquer une mise à jour stable précédente ou à reculer vers la mise à jour intégrée dans la construction.

Considérations de migration de données

Changer 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, 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 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 passer d'un canal à l'autre ou restreindre le passage à une direction lorsque cela est nécessaire.

Pourquoi le surfage de canal améliore l'itération mobile

Le surfage 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 le surfage de canal, la modification peut être isolée à un petit groupe d'utilisateurs désignés qui peuvent la passer en revue avant qu'elle ne parvienne à la production.

Examen par les parties prenantes

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

Test Streamliné

Cela rend plus facile d'impliquer des parties prenantes non techniques dans la revue et la prise de décision, tout en maintenant le flux de travail lisse. Un seul build de production devient une outil flexible pour les tests, les retours et la validation.

Utilisations

  • Test de la Qualité: Le groupe de test QA peut basculer entre les branches de fonctionnalités
  • Programmes Bêta: Les utilisateurs s'inscrivent au canal bêta pour un accès précoce
  • Révision des Parties prenantes: Les propriétaires de produit prévisualisent les modifications avant la mise en production
  • Test A/B: Les utilisateurs sont affectés à différents canaux pour des expériences
  • Débogage: Passer un utilisateur spécifique à un canal de débogage pour diagnostiquer les problèmes

Comparaison : Méthodes de changement de canal

MéthodeDurée d'effetEnregistré oùUtilisation
setChannel() à partir du pluginInstantanéSeulement sur le périphérique (local)Changement de canal utilisateur initié en application
Survol du dispositif sur le tableau de bordJusqu'à 2 minBase de données backendModifications initiées par l'administrateur pour des appareils spécifiques
API affectation de canalJusqu'à 2 minBase de données backendIntégrations backend automatiques

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

Limitation d'accès

  1. : La navigation de canal est généralement réservée à l'utilisation interne - ne la montrez pas à tous les utilisateursLimitation d'accès : La navigation de canal est généralement réservée à l'utilisation interne - ne la montrez pas à tous les utilisateurs
  2. Gérer les Erreurs: Gérer toujours les erreurs de manière élégante lors du passage entre les canaux
  3. Vérifier la Compatibilité: Assurer que les mises à jour sur différents canaux sont compatibles avec la version native installée
  4. Documenter les Canaux: Maintenir une documentation claire sur ce que chaque canal est destiné à
  5. Surveiller l'Utilisation: Suivre 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 du canal introduite dans les versions récentes de 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 la validation des correctifs de bogues avec les parties prenantes, de la mise en œuvre de programmes bêta ou de la débogage d'erreurs 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 la navigation entre les canaux pour Capgo: Comment passer d'une mise à jour de canal à une autre en temps de exécution

Si vous utilisez La 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 œuvre de lancement é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 les canaux, Les canaux pour les détails d'implémentation dans les canaux, Solution de test bêta pour le flux de travail du produit dans la Solution de test bêta, et Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.

Mises à jour en direct pour les applications Capacitor

Lorsqu'un bug de la couche web est en ligne, expédiez la correction à travers 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.

Commencez Maintenant

Dernières actualités de notre Blog

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