Allez directement au contenu principal
Guide

Surfage de canal 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 canal 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 canal 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 leur permettre de la réviser et de la commenter 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 fastidieux 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 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 basculer entre les canaux de mise à jour en temps de exécution, transformant une application de production en un espace flexible pour la révision 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 canaux de mise à jour

Les canaux de mise à jour sont la façon dont Capgo cible les mises à jour vers des versions spécifiques. Chaque version est associée à un canal, et ce canal détermine les mises à jour qu'elle recevra.

Par exemple, vous pouvez publier des mises à jour dans un preview canal sans affecter les utilisateurs sur productionDans le passé, la mise en place de canaux 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
  • Rouler progressivement les 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 documentation des canaux __CAPGO_KEEP_0__ Capgo channels documentation 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 être réinstallée. Une application installée peut basculer entre les canaux de mise à jour en temps de exécution, et elle continuera à recevoir des mises à jour à partir du canal sélectionné jusqu'à ce que l'application soit désinstallée ou basculée vers un autre canal.

Channels in __CAPGO_KEEP_0__ allow you to:

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 une fois. Il n'est pas nécessaire de réinstaller ou de créer un build de prévisualisation séparé.

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

Comment Mettre en œuvre la Navigation entre les Canaux

Avant de pouvoir essayer la navigation entre les canaux, votre projet doit être configuré avec les Mises à jour en temps réel de Capgo. Pour configurer cela, suivez le guide de démarrage rapide de Capgo La seule configuration requise pour la navigation entre les canaux est d'autoriser les appareils à se lier automatiquement sur chaque canal que vous souhaitez switcher vers dans le tableau de bord de Capgo..

Aucune modification de la configuration ou des paramètres de Capgo n'est nécessaire au-delà de cela. En fin de compte, la navigation entre les canaux est pilotée par une seule appelle de code:

Cela définit le canal utilisé lors de la recherche de mises à jour de API.

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.

Switch Channel 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 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 le tableau de bord ou les 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 changer le canal 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 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 en même temps. 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'auto-attribution

Pour activer la navigation entre les canaux, il vous suffit de faire ceci. Avant que votre application puisse basculer vers un canal à l'aide de setChannel()vous devez activer la réaffectation automatique pour ce canal dans le tableau de bord Capgo :

  1. Allez dans la section Canaux section in your Capgo dashboard
  2. section de votre tableau de bord __CAPGO_KEEP_0__
  3. Cliquez sur le nom du canal que vous souhaitez gérer Activer
  4. “Autoriser les appareils à se réaffecter automatiquement”

Enregistrer les modifications

Activer la réaffectation automatique dans les paramètres du canal » : « Et voilà. Aucune modification de configuration nécessaire dans votre application.  defaultChannel configuration requise. Activez simplement la réaffectation automatique sur les canaux que vous souhaitez que les utilisateurs puissent basculer vers.

Si cette configuration est désactivée, toute tentative de requête 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

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

Récupérer le canal actuel

Vérifiez quel canal est actuellement affecté à l'appareil :

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({});

Cela débranche l'appareil de tout canal spécifiquement affecté, ce qui le fait retomber sur le defaultChannel sur 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 le passage. Aucune modification de configuration n'est nécessaire dans votre application. Création d'une version de test

Construisez votre application comme d'habitude :

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

Comment tester la navigation entre les canaux.

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

Les pièges de mise à jour OTA

Rien de ces ne sont spécifiques à la navigation de canaux, mais ils tendent à devenir apparents rapidement une fois que vous commencez à basculer entre les canaux en temps de exécution.

Les incompatibilités de version 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 les 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.

La suppression ou l'annulation des 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 comme bonne sur 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 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.

Considérations de migration de données

Le changement de canal modifie le bundle JavaScript exécuté par l'application. Si votre application dépend de migrations ou de formes de données incompatibles entre canaux, le changement de sens allers-retours 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 changement à une direction 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 groupe d'utilisateurs désignés qui peuvent la passer en revue avant qu'elle ne rejoigne 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 des 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éProgrammes bêta
  • : Les utilisateurs s'inscrivent au canal bêta pour un 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 Conservé où Utilisation
setChannel() context : Page/zone : Page de marketing de 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` (Solutions Cordova To Capacitor Ai Table Use Case). à partir de plugin Instantané Seulement sur appareil (local)
Changement de canal utilisateur initié en application : : Sur le tableau de bord, passer un appareil à un canal spécifique pour débogage Jusqu'à 2 min Base de données backend Modifications initiées par l'administrateur pour des appareils spécifiques
Affectation du canal API 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 basculement de canal, utilisez toujours la méthode du plugin. setChannel() Meilleures Pratiques

Limitation d'accès

  1. : Le surfage de canal est généralement réservé à l'utilisation interne - n'y exposez pas tous les utilisateurschannel-switching
  2. Gérer les Erreurs: Gère toujours les erreurs de manière élégante lors du basculement de canaux
  3. Vérifier laCompatibilité: Assurez-vous que les mises à jour sur différents canaux sont compatibles avec la version native installée
  4. Documenter les Canaux: Gardez une documentation claire de ce que chaque canal est destiné à faire
  5. Surveiller l'Utilisation: Suivez 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 Capacitor application. 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 de 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 réel

Si vous utilisez La navigation entre les canaux pour Capgo: Comment passer d'une mise à jour de canal à une autre en temps réel pour planifier la mise en route des canaux et la mise en œuvre d'une mise à jour étalée, connectez-l’avec Les canaux context : nom du canal de mise en production de Capgo. Page/zone : page de marketing des solutions de Capgo. Rôle : étiquette de navigation ou élément de navigation court. Voir dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de la cellule visuelle de la page des solutions White Label). pour les détails d'implémentation dans Les canaux, Les canaux 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 temps réel pour les applications Capacitor

Lorsqu'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 la boutique d'applications. 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.