Avez-vous jamais souhaité pouvoir 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 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 mise à jour personnalisée pour le client (un fardeau pour les deux).
Ce qui manquait, c'était 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 mise en production de passer à une version en cours de développement, de recueillir des commentaires et de revenir ensuite à la production.
C'est ce que permet le la navigation entre les chaînes Comprendre les chaînes d'actualisation
Les chaînes d'actualisation sont la façon dont __CAPGO_KEEP_0__ 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.
Update channels are how Capgo targets updates to specific builds. Each build is associated with a channel, and that channel determines which updates it will receive.
chaîne sans affecter les utilisateurs sur preview chaîne 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 d'actualisation, la Capgo documentation sur les canaux en traite plus en détail.
Qu'est-ce que la navigation entre canaux ?
La navigation entre 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 passer d'un canal d'actualisation à un autre en temps de exécution, et elle continuera à recevoir des mises à jour du 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 « build » vers, par exemple, un « canal », essayer les dernières mises à jour. Lorsqu'ils ont terminé les tests, ils basculent à nouveau vers « » à nouveau. Il n'est pas nécessaire d'installer à nouveau ou de créer une mise en prévision séparée. production La navigation entre les canaux fonctionne sous le capot en permettant à l'application de dire au client de mise à jour le canal à utiliser. Cette choix peut être changé en temps de cours et reste en vigueur jusqu'à ce qu'il soit supprimé ou remplacé. preview Comment mettre en œuvre la navigation entre les canaux production Avant de pouvoir essayer la navigation entre les canaux, votre projet doit être configuré avec __CAPGO_KEEP_0__ Mises à jour en direct. Pour configurer cela, suivez le guide de démarrage rapide __CAPGO_KEEP_0__
La seule configuration requise pour la navigation entre les canaux est d'activer « Autoriser les appareils à se lier automatiquement » sur chaque canal que vous souhaitez basculer vers dans le tableau de bord __CAPGO_KEEP_0__.
Aucune modification de la configuration ou des mises à jour __CAPGO_KEEP_0__ n'est nécessaire au-delà de cela.
En fin de compte, la navigation entre les canaux est pilotée par une seule appelle Capgo : Cela définit le canal utilisé lors de la recherche de mises à jour Capgo..
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. Before you can try channel surfing, your project needs to be configured with code Live Updates. To set that up, follow the
API quickstart guide
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
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 Capgo changes or config modifications needed beyond that. At its core, channel surfing is driven by a single Capgo call: This sets the channel that is used when querying Capgo for updates. En savoir plus sur la mise à jour du canal 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 :
- Validation back-end (lecture seule): Une requête est envoyée au back-end Capgo pour valider que le canal est autorisé
- Mise à jour du stockage local: Si la validation passe, le canal est enregistré dans le stockage local du dispositif
- 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 le tableau de bord ou les modifications de API). Les appareils devaient attendre la réplication backend (jusqu'à 2 minutes) avant que le nouveau canal soit reconnu. Le nouveau comportement ne lit que de la base de données 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 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 :
- Changer le canal (
setChannel) - Vérifier une mise à jour (
getLatest) - Télécharger et appliquer la mise à jour (
download,setounext) - 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 en plusieurs interactions 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
C'est la seule chose que vous devez faire pour activer la navigation entre les chaînes. Avant que votre application puisse passer à une chaîne en utilisant setChannel(), vous devez activer la mise à jour automatique pour cette chaîne dans le tableau de bord Capgo :
- Allez dans la section Chaînes du tableau de bord Capgo
- Cliquez sur le nom de la chaîne que vous souhaitez gérer
- Activer “Autoriser les appareils à se lier automatiquement”
- Sauvegardez les modifications

C'est tout. Aucune modification de configuration n'est nécessaire dans votre application. defaultChannel setting requis. Activez simplement l'auto-assignation sur les canaux que vous souhaitez que les utilisateurs puissent basculer vers.
Si ce paramètre est désactivé, toute tentative de setChannel() 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 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
Cela ne retourne que les canaux où l'auto-assignation est activée.
Récupérer le Canal Actuel
Vérifiez quel canal le dispositif est actuellement assigné à :
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Retourner au Canal Par Défaut
Pour supprimer l'override de canal et revenir à la valeur par défaut :
await CapacitorUpdater.unsetChannel({});
Cela débranche le dispositif de tout canal spécifiquement assigné, ce qui le fait retomber sur le defaultChannel In votre config ou le cloud par défaut.
Comment Tester la Navigation de Chaînes
Pour voir la navigation de 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 de chaînes est d'activer “Autoriser les appareils à se lier automatiquement” sur chaque chaîne que vous souhaitez autoriser le passage à. Aucune modification de config 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 en tant que cloud par défaut dans votre tableau de bord Capgo.
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 chaînes dans l'application et déclenchez le basculement de chaîne. 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 chaînes
La navigation de chaînes 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 chaînes :
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 Mises à jour OTA : les pièges
Rien de ces ne sont spécifiques à la navigation de chaînes, mais ils tendent à devenir apparents rapidement une fois que vous commencez à basculer entre les canaux en temps de exécution.
Incompatibilités 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 chaînes, cela se présente généralement sous la forme de l'application qui bascule entre les canaux, mais aucune mise à jour n'est appliquée, même si une 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 s'arrête que avenir téléchargements.
La méthode la plus fiable pour annuler une mise à jour nocive 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'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 à reculer vers la mise à jour intégrée dans la build.
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, 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 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 canaux améliore l'itération mobile
Le surfage de 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 le surfage de canaux, 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 des parties prenantes
Un propriétaire de produit ou un responsable de la qualité peut basculer leur build de production installé vers une autre chaîne d'actualisation, vérifier la correction ou la fonctionnalité, et basculer à nouveau une fois qu'ils ont terminé.
Test Streamliné
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 d'information 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 dans la chaîne bêta pour avoir 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: Affecter les utilisateurs à différentes chaînes 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 d'effet | Persistance | Utilisation |
|---|---|---|---|
setChannel() à partir du plugin | Instantané | Seul le dispositif (local) | Changement de canal utilisateur initié en application |
| Survol du dispositif 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 du 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
- : La navigation entre les canaux est généralement réservée à l'utilisation interne - n'y exposez pas tous les utilisateursFor the best user experience when building channel-switching UIs, always use the plugin’s method.
- Gérer les Erreurs: Gérer toujours les erreurs avec élégance lors du passage de canaux
- Valider laCompatibilité: Assurer que les mises à jour sur différents canaux sont compatibles avec la version native installée
- Documenter les Canaux: Maintenir une documentation claire sur ce que chaque canal est destiné à
- Surveiller l'Utilisation: Suivre les appareils qui sont sur lesquels les canaux pour le débogage
Ressources
- Capgo Mises à jour en Direct Documentation
- Documentation des Canaux
- Référence du Plugin API
- Capgo CLI Commandes
Conclusion
La navigation entre les chaînes 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 de la chaîne introduite dans les versions récentes de plugin, l'expérience est maintenant fluide - les utilisateurs peuvent passer d'une chaîne à l'autre et recevoir immédiatement des mises à jour de la nouvelle chaîne sans aucun délai.
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 des problèmes avec des utilisateurs spécifiques, la navigation entre les chaînes vous donne la flexibilité de livrer la mise à jour appropriée à l'utilisateur approprié au moment approprié.
Continuez de la navigation entre les chaînes pour Capgo: Comment passer d'une chaîne de mise à jour à l'autre en temps de exécution
Si vous utilisez La navigation entre les chaînes pour Capgo: Comment passer d'une chaîne de mise à jour à l'autre en temps de exécution pour planifier la routage de la chaîne et la mise en œuvre d'une mise à jour étalée, connectez-le avec Chaînes pour les détails d'implémentation dans Chaînes, Chaînes 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.