Allez directement au contenu principal
Guide

Surfage de canaux pour Capgo: Comment passer d'un canal d'actualisation à un autre en temps de exécution

Envoyez des modifications à des utilisateurs spécifiques instantanément avec la fonctionnalité de passage de canaux d'actualisation en temps de exécution de Capgo. Passez d'un canal d'actualisation à un autre sans devoir réinstaller votre application Capacitor.

Crédits de l'article

Martin Donadieu

Auteur

Valeria

Relecteur

Jordan

Éditeur

Surfage de canaux pour Capgo: Comment passer d'un canal d'actualisation à un autre en temps de exécution

Vous avez peut-être souhaité envoyer une mise à jour directement à un utilisateur pour obtenir son avis et ses commentaires immédiats - 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 é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 en cours de développement, de recueillir des commentaires 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 passer d'une chaîne de mise à jour à une autre 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 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 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 changement de chaîne nécessitait l'installation d'une version native de construction différente ou la modification manuelle des affectations de dispositif via le tableau de bord.

Les chaînes 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érentes chaînes
  • 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 d'actualisation, la Capgo documentation des canaux d'actualisation en traite plus en détail.

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

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

In pratique, cela signifie que le propriétaire d'un produit ou le responsable de la qualité peut switcher une production construction vers, par exemple, un preview canal, essayer les dernières modifications. Lorsqu'ils ont terminé les tests, ils switchent à nouveau vers production encore. Il n'est pas nécessaire de réinstaller ou de créer un build de prévisualisation séparé.

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

Comment mettre en œuvre la navigation entre les canaux

Before you can try channel surfing, your project needs to be configured with Capgo Live Updates. To set that up, follow the 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. No code changes or config modifications needed beyond that.

At its core, channel surfing is driven by a single API call:

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

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

This sets the channel that is used when querying Capgo for updates. En savoir plus sur la mise en canal API.

Switching de canal instantané (à partir de la version 5.34.0+)

À partir de la version 5.34.0, 6.34.0, 7.34.0 ou 8.0.0 du plugin (selon votre version majeure) (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 vers l'arrière-plan 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 sauvegardé la surcharge de canal 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 du 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 souhaiterez 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 elles sont 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 structure de ce flux vous appartient. Vous pouvez les étapes diviser en plusieurs interactions ou les exécuter toutes à la fois. Quelle que soit la structure que vous choisissez, 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'Affectation Auto

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 tout d'abord activer la mise à jour automatique pour ce canal dans votre tableau de bord Capgo :

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

Activer la mise à jour automatique dans les paramètres du canal

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

Si cette configuration 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 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

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

Récupérer le canal actuel

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

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

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

Retourner au canal par défaut

Pour supprimer la réaffectation automatique et revenir au canal par défaut :

await CapacitorUpdater.unsetChannel({});

Cette méthode délie le dispositif de tout canal spécifiquement affecté, ce qui le fait retomber sur le defaultChannel dans votre configuration ou la valeur par défaut du cloud.

Comment tester la navigation entre les canaux

Pour voir la navigation entre les canaux en action, vous aurez besoin d'une version de sortie - le __CAPGO_KEEP_0__ est conçu pour les versions de sortie. 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. @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.

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 la navigation. Aucune modification de configuration n'est nécessaire dans votre application. Création d'une version de test

Construirez votre application comme d'habitude :

Ensuite, créez vos builds natifs à l'aide de Xcode ou Android Studio, ou utilisez votre pipeline CI/CD. L'application commencera sur le canal qui est défini comme la valeur par défaut du cloud dans votre __CAPGO_KEEP_0__ dashboard.

bun run build && npx cap sync

Then create your native builds using Xcode or Android Studio, or use your CI/CD pipeline. The app will start on whichever channel is set as the cloud default in your Capgo dashboard.

Publishing Updates to Different Channels

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 devrait 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 à tous les utilisateurs de l'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 : les 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 présente généralement sous la forme de l'application qui bascule entre canaux, mais aucune mise à jour n'est 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.

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à téléchargée. La suppression ne fait que avenir téléchargements.

La méthode la plus fiable pour annuler une mise à jour défectueuse est de publier une mise à jour connue pour être bonne dans le même canal. Cela crée une nouvelle mise à jour en haut de l'histoire 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 build.

Considérations de migration de données

Changer de canal 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, le fait de 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 à un sens lorsque cela est nécessaire.

Pourquoi le Channel Surfing améliore l'itération mobile

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

Révision des parties prenantes

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

Test simplifié

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

Utilisations

  • contextTest de la qualité
  • : Le groupe de QA peut basculer entre les branches de fonctionnalitésProgrammes bêta
  • : Les utilisateurs s'inscrivent au canal bêta pour avoir accès précoceRévision des parties prenantes
  • : Les propriétaires de produit prévisualisent les modifications avant la mise en productionTest 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éthode Durée de l'effet Enregistré où Utilisation
setChannel() context Page/zone : Page de marketing des solutions Capgo. Rôle : Étiquette de navigation ou élément de menu court. Vu dans : page solutions/cordova-to-capacitor-ai.astro. Clé de message `solutions_cordova_to_capacitor_ai_table_use_case` (Utilisation de la table Solutions Cordova To Capacitor Ai). à partir du plugin Instantané
Seul le dispositif (local) 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 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 - n'y exposez pas tous les utilisateurschannel switching UIs
  2. Gérer les Erreurs: Gérer toujours les erreurs avec élégance lors du passage entre les canaux
  3. Valider laCompatibilité: 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é à faire
  5. Surveiller l'Utilisation: Suivre les appareils qui sont sur lesquels les 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 le changement de canal instantané introduit dans les dernières versions 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 cours

Si vous utilisez La navigation entre les canaux pour Capgo: Comment passer d'une mise à jour de canal à une autre en temps de cours pour planifier la mise en route des canaux et la mise en œuvre d'une mise à jour étalée, connectez-l’avec Canal context Capgo release channels feature name. Page/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: page solutions/white-label.astro. Message key `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value). pour les détails d'implémentation dans les canaux, 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

Quand un bug de la couche web est actif, expédiez la correction par le biais de 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.

Support humain de Martin

Démarrer maintenant

Dernières actualités de notre Blog

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