Stellen Sie sich vor, Sie könnten eine Änderung direkt an einen bestimmten Benutzer senden, um seine sofortige Überprüfung und Feedback zu erhalten - ohne ihn dazu auffordern, eine neue Version von TestFlight oder Google Play herunterzuladen und zu installieren?
Ich hatte Kunden, die Verbesserungen verlangten, die ich schnell umsetzen konnte, aber das Einbringen der Ergebnisse in ihre Hände, um sie zu validieren, bedeutete, eine Aktualisierung an alle Benutzer zu schicken (risikant für einen experimentellen Änderung) oder eine einstellige Version speziell für den Kunden zu erstellen (eine Arbeit für beide).
Was fehlte war Flexibilität. Entwickler wollten verschiedene Updates an verschiedene Benutzergruppen liefern, wie z.B. nicht-technische Stakeholder, QA oder die gesamte Benutzerbasis, wenn es angebracht ist.
Es gab keine Möglichkeit, eine Produktionsversion in eine Arbeitsversion umzuwandeln, Feedback zu sammeln und dann wieder in die Produktionsversion zurückzukehren.
Das ist, was Kanalwechsel ermöglicht. Eine auf einem Gerät installierte App kann den Updatekanal während der Ausführung ändern, wodurch eine Produktionsapp zu einem flexiblen Raum für die Überprüfung und Iteration wird, anstatt ein fester Endpunkt zu sein. Dies ist insbesondere für nicht-technische Stakeholder, die mit Produktionsanwendungen arbeiten, besonders nützlich, da sie Änderungen testen und direkt Feedback geben können, ohne dass sie die App neu installieren müssen, die sie bereits auf ihrem Gerät haben.
Updatekanäle verstehen
Updatekanäle sind die Möglichkeit, Capgo-Updates auf bestimmte Builds zu richten. Jeder Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates er erhalten wird.
Beispiel: Sie können Updates auf einen preview Kanal veröffentlichen, ohne dass dies die Benutzer auf productionbeeinflusst.
Kanäle in Capgo ermöglichen Ihnen:
- Spezifische Benutzergruppen mit unterschiedlichen Funktionen zu targeten
- A/B-Tests durch die Zuweisung von Benutzern zu verschiedenen Kanälen durchzuführen
- Neue Funktionen allmählich einzuführen
- Erstellen von Beta-Testprogrammen
- Debuggen von Produktionsproblemen mit einzelnen Benutzern
Wenn Sie sich nicht mit den Updatekanälen auskennen, behandelt die Capgo Dokumentation zu den Kanälen sie in mehr Details.
Was ist Channel-Surfen?
Channel-Surfen ermöglicht es einer installierten App, von verschiedenen Update-Strömen zu pullen, ohne dass sie neu installiert werden muss. Eine installierte App kann den Update-Kanal während der Ausführung ändern und wird weiterhin Updates vom neu ausgewählten Kanal erhalten, bis die App uninstalliert oder auf einen anderen Kanal umgestellt wird.
In der Praxis bedeutet dies, dass ein Produktbesitzer oder QA-Tester ein production zum Beispiel auf einen preview Kanal umschalten kann, um die neuesten Änderungen auszuprobieren. Wenn sie mit der Testung fertig sind, schalten sie wieder auf production zurück. Es ist keine Neuinstallation oder ein separates Preview-Build erforderlich.
Unter der Haube arbeitet Channel-Surfen, indem die App dem Updates-Client mitteilt, welchen Kanal verwenden soll. Diese Wahl kann während der Ausführung geändert und bleibt bis zur Löschung oder Ersetzung wirksam.
How Channel-Surfing zu Implementieren
Bevor Sie Channel-Surfing ausprobieren können, muss Ihr Projekt mit Capgo Live Updates konfiguriert sein. Um das zu tun, folgen Sie der Capgo Schnellstartanleitung.
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 Dashboard.
At its core, channel surfing is driven by a single API call:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
Capgo Änderungen oder Konfigurationsanpassungen erforderlich darüber hinaus. Learn more about the setChannel API.
__CAPGO_KEEP_0__ Aufruf angetrieben:
Dies setzt den Kanal fest, der verwendet wird, wenn nach __CAPGO_KEEP_0__ Updates abgefragt werden. setChannel() Erhalten Sie weitere Informationen zur Funktion setChannel in der Dokumentation von __CAPGO_KEEP_0__ zu Channel-Surfing. Die Funktion ist ab Version 5.34.0+ verfügbar, abhängig von Ihrer Hauptversion, in Version 6.34.0, 7.34.0 oder 8.0.0. Channel-Surfing funktioniert nun anders und viel schneller:
- Hintergrundvalidierung (leserisch): Ein Anfrage wird an den Capgo-Backend gesendet, um zu überprüfen, ob der Kanal erlaubt ist
- Speicherung in der lokalen Zwischenspeicherung: Wenn die Überprüfung erfolgreich ist, wird der Kanal im Gerätespeicher gespeichert
- Unmittelbarer Effekt: Die nächste Aktualisierungsprüfung verwendet den neuen Kanal sofort
Zuvor setChannel() hatte man den Kanal-Übertrag in der Backend-Datenbank (wie Dashboard oder API-Änderungen) gespeichert. Die Geräte mussten auf die Backend-Replikation (bis zu 2 Minuten) warten, bevor der neue Kanal erkannt wurde. Die neue Verhaltensweise liest nur vom Backend (für die Überprüfung) und speichert lokal, was den Kanalwechsel sofort macht.
Voller Kanalwechsel-Flow
Für eine bessere Benutzererfahrung möchten Sie normalerweise mehr tun als nur den Kanal wechseln und auf die nächste App-Neustart warten. Eine gängige Vorgehensweise besteht darin, sofort nachzufragen, ob Updates verfügbar sind, sie herunterzuladen, wenn verfügbar, und die App neu zu laden, damit der Benutzer direkt auf die ausgewählte Kanal-Update landet.
Ein typischer Flow sieht wie folgt aus:
- Den Kanal ändern (
setChannel) - Überprüfen Sie, ob ein Update verfügbar ist (
getLatest) - Das Update herunterladen und anwenden (
download,setodernext) - Bevor Ihr App die Kanäle wechseln kann, müssen Sie die Selbstzuweisung für den Kanal im __CAPGO_KEEP_0__-Dashboard aktivieren:
reload)
Zum Kanal-Verwaltungsbereich gehen
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');
Kanäle
Dies ist die einzige Sache, die Sie tun müssen, um das Kanalwechseln zu ermöglichen.
Ein Beispiel für die vollständige Anwendung dieses Flusses finden Sie hier: Sie können diese Schritte auf mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Es ist egal, wie Sie den Fluss strukturieren. Wichtig ist, dass Sie auf Fehler achten. Netzwerkprobleme oder ein ungültiger Kanal können das Anwenden eines Updates verhindern. setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:
- Sie können diese Schritte auf mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Es ist egal, wie Sie den Fluss strukturieren. Wichtig ist, dass Sie auf Fehler achten. Netzwerkprobleme oder ein ungültiger Kanal können das Anwenden eines Updates verhindern. Sie können diese Schritte auf mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Es ist egal, wie Sie den Fluss strukturieren. Wichtig ist, dass Sie auf Fehler achten. Netzwerkprobleme oder ein ungültiger Kanal können das Anwenden eines Updates verhindern. Abschnitt in Ihrem Capgo-Dashboard
- Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
- Aktivieren „Zulassen, dass Geräte sich selbst zuweisen“
- Speichern Sie die Änderungen

Das ist alles. Keine Konfigurationsänderungen erforderlich in Ihrer App. Keine defaultChannel Einrichtung erforderlich. Aktivieren Sie einfach die Selbstzuweisung auf den Kanäle, auf die Sie möchten, dass Benutzer wechseln können.
Wenn diese Einstellung deaktiviert ist, versagen alle Versuche, mit diesem Kanal zu arbeiten und das setChannel() ereignis wird ausgelöst. channelPrivate Verfügbare Kanäle auflisten
Bei diesem Schritt wird die Selbstzuweisung für den Kanal aktiviert.
Sie können die Liste der verfügbaren Kanäle für Selbstzuweisung abrufen:
const { channels } = await CapacitorUpdater.listChannels();
console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI
Dies gibt nur Kanäle zurück, bei denen die Selbstzuweisung aktiviert ist.
Aktueller Kanal abrufen
Überprüfen Sie, welcher Kanal dem Gerät derzeit zugewiesen ist:
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Zurücksetzen auf Standardkanal
Um die Kanalübernahme aufzuheben und auf den Standard zurückzukehren:
await CapacitorUpdater.unsetChannel({});
Dies löst das Gerät von einem spezifisch zugewiesenen Kanal frei, sodass es auf den defaultChannel in Ihrer Konfiguration oder im Cloud-Standard zurückfällt.
Wie man Channel-Surfing testet
Um Channel-Surfing in Aktion zu sehen, benötigen Sie eine Release-Build - die @capgo/capacitor-updater API ist für Release-Builds konzipiert. In Debug-Builds lädt die App typischerweise JavaScript von einem Entwicklungsserver ab, was den normalen Update-Flow umgeht.
Voraussetzungen
Die einzige Anforderung für das Channel-Surfen ist die Aktivierung “Zulassen, dass Geräte sich selbst assoziieren” auf jedem Channel, den Sie für das Umstellen zulassen möchten. Keine Konfigurationsänderungen sind in Ihrer App erforderlich.
Erstellung eines Testbuilds
Erstellen Sie Ihre App wie gewohnt:
bun run build && npx cap sync
Dann erstellen Sie Ihre native Builds mit Xcode oder Android Studio oder verwenden Sie Ihre CI/CD-Pipeline. Die App wird auf dem Channel starten, der als Cloud-Standard in Ihrem Capgo-Dashboard eingestellt ist.
Veröffentlichung von Updates auf verschiedenen Kanälen
Einmal installiert, veröffentlichen Sie Updates auf verschiedenen Kanälen:
# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview
# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production
Von dort aus navigieren Sie zu Ihrer Channel-Surfing-UI in der App und lösen den Channel-Wechsel aus. Die App sollte das Update vom ausgewählten Channel abrufen und in die neue Version laden.
Erstellung eines Channel-Wechsel-UI
Channel-Surfen ist normalerweise etwas, das Sie nur einer begrenzten Gruppe von Benutzern zugänglich machen möchten, nicht allen Benutzern Ihrer App. Zum Beispiel haben Sie möglicherweise einen Button, der nur für autorisierte Mitarbeiter verfügbar ist, der die App auf den Vorab-Channel umschaltet.
Hier ist ein Beispiel für eine React-Komponente für einen Channel-Wechseler:
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>
);
}
OTA-Update-Hinweise
Keine dieser sind spezifisch für das Channel-Surfen, aber sie werden schnell sichtbar, sobald Sie das Channel-Surfen bei Laufzeit starten.
Laufzeit-Versionen-unterschiede
Updates in Capgo sind an native-App-Versionen gebunden. Wenn die native Version eines Updates nicht mit der native Version der installierten App übereinstimmt, wird das Update nicht heruntergeladen oder angewendet. Wenn Sie beim Channel-Surfen das Problem haben, dass die App die Kanäle wechselt, aber kein Update angewendet wird, obwohl eines auf dem Kanal existiert,
Dies bedeutet normalerweise, dass das Update von einer anderen native Version der App veröffentlicht wurde. Stellen Sie sicher, dass der Kanal-Bundle mit der native Version auf dem Gerät kompatibel ist.
Entfernen oder Rückschaltung von Updates
Wenn eine App bereits ein Update für einen Kanal heruntergeladen hat, entfernt die Löschung dieses Updates aus der Capgo-Oberfläche es nicht von Geräten, die es bereits haben. Die Löschung stoppt nur zukünftige Herunterladungen.
Der zuverlässigste Weg, um ein schlechtes Update rückgängig zu machen, ist die Veröffentlichung eines bekannten guten Updates auf demselben Kanal. Dies erstellt ein neues Update an der Spitze der Kanal-Geschichte, das Clients als neueste Version behandeln und anstelle des alten Updates anwenden.
Capgo bietet auch eine Rückschaltmechanik, die Clients anweist, eine vorherige stabile Update zu re-applyn oder auf das Update in der Veröffentlichung zurückzufallen.
Datenaufbewahrungsüberlegungen
Das Wechseln von Kanälen ändert das JavaScript-Bundle, das die App ausführt. Wenn Ihre App auf Migrationen oder Datenformen angewiesen ist, die nicht über Kanäle kompatibel sind, kann das Wechseln zwischen ihnen Probleme verursachen.
Beispielsweise könnte eine Beta-Update eine Datenbankmigration anwenden, die die Produktionsversion nicht versteht. Entwickler sollten sicherstellen, dass ihre Updates sicher sind, um zwischen ihnen zu wechseln, oder die Wechselrichtung einschränken, wenn erforderlich.
Wozu Channel-Surfing verbessert
Channel-Surfing ist besonders nützlich, wenn Sie schnell Änderungen in einer Produktionsumgebung überprüfen müssen.
Schnelle Validierung
Stellen Sie sich vor, dass ein dringender Bug-Fix überprüft werden muss, bevor er weit verbreitet wird. Mit Channel-Surfing kann die Änderung auf einen kleinen Satz von ausgewiesenen Benutzern isoliert werden, die sie überprüfen können, bevor sie die Produktionsumgebung erreichen.
Stakeholder-Überprüfung
Ein Produktbesitzer oder QA kann seine installierte Produktionsversion auf einen anderen Update-Kanal umschalten, die Reparatur oder Funktion überprüfen und dann wieder zurück umschalten, sobald sie fertig sind.
Strukturierte Tests
Dies erleichtert es, nicht-technische Stakeholder in der Überprüfung und Entscheidungsfindung einzubinden, während der Workflow glatt bleibt. Ein einzelnes Produktionsbuild wird zu einem flexiblen Werkzeug für Tests, Feedback und Validierung.
Verwendungsfälle
- Qualitätsprüfung: Lassen Sie die QA-Team zwischen Featurezweigen wechseln
- Beta-Programme: Benutzer wählen sich für die Beta-Kanal für frühe Zugriff ein
- Stakeholder-Überprüfung: Produktbesitzer präsentieren sich Änderungen vor der Veröffentlichung
- A/B-Testung: Zuweisen von Benutzern zu verschiedenen Kanälen für Experimente
- Fehlersuche: Wechseln Sie einen bestimmten Benutzer in einen Debug-Kanal, um Probleme zu diagnostizieren
Vergleich: Kanalwechselmethoden
| Methode | Wirkungszeit | Dauerhaft Wo | Anwendungsfall |
|---|---|---|---|
setChannel() von Plugin |
Instant | Gerät nur (lokal) | Benutzerinitiierte Kanalwechsel in der App |
| Überwachung des Geräts | bis zu 2 min | Hintergrund-Datenbank | Admin-initiierte Änderungen für bestimmte Geräte |
| API channel assignment | bis zu 2 min | Hintergrund-Datenbank | Automatisierte Backend-Integrationen |
Für die beste Benutzererfahrung bei der Erstellung von UIs für das Wechseln von Kanälen, verwenden Sie immer die Funktion des Plugins. setChannel() Best Practices
Zugriffsbeschränkung
- : Kanalsurfen ist normalerweise für den internen Gebrauch gedacht - vermeiden Sie es, es allen Benutzern zugänglich zu machenFehlerbehandlung
- : Behandeln Sie Fehler immer freundlich, wenn Sie Kanäle wechselnKompatibilitätsprüfung
- : Stellen Sie sicher, dass Updates auf verschiedenen Kanälen mit der installierten nativen Version kompatibel sindKanal-Dokumentation
- method : Dokumentation für jeden Kanal aufrechterhalten
- Monitor Usage: Überwachen, welche Geräte auf welchen Kanälen für Debuggingszwecken laufen
Ressourcen
Zusammenfassung
Das Kanalwechseln verändert, wie Sie Ihre Capacitor-Anwendung iterieren können. Anstatt Produktionsbuilds als fixe Endpunkte zu behandeln, werden sie zu flexiblen Werkzeugen für die Testung, Validierung und schnelle Iteration.
Mit der Einführung des sofortigen Kanalwechsels in den letzten Pluginversionen ist die Erfahrung nun reibungslos - Benutzer können Kanäle wechseln und erhalten sofort Updates vom neuen Kanal ohne Wartezeit.
Ob Sie Bug-Fixes mit Stakeholdern validieren, Beta-Programme durchführen oder Probleme bei bestimmten Benutzern debuggen, das Kanalwechseln bietet Ihnen die Flexibilität, dem richtigen Update den richtigen Benutzer zur richtigen Zeit zuzusenden.
Fortsetzen von Channel Surfing für Capgo: Wie Sie Update-Kanäle bei Laufzeit umschalten
Wenn Sie Channel Surfing für __CAPGO_KEEP_0__: Wie Sie Update-Kanäle bei Laufzeit umschalten verwenden Channel Surfing für Capgo: Wie Sie Update-Kanäle bei Laufzeit umschalten um Kanälroutings und die Stufenrollout zu planen, verbinden Sie es mit Kanäle Kanäle Kanäle Kanäle Kanäle Kanäle Kanäle Kanäle für die Produktworkflow in Beta-Testlösung und Versionziel-Lösung zur Produktionsablauf in Versionziel-Lösung.