Haben Sie sich schon einmal gewünscht, eine Änderung direkt an einen bestimmten Benutzer zu liefern, damit er sie sofort überprüfen und darauf reagieren kann, ohne dass er eine neue Version von TestFlight oder Google Play herunterladen und installieren muss?
Ich habe Kunden gehabt, die Verbesserungen verlangt haben, die ich schnell umsetzen konnte, aber es bedeutete, dass ich eine Aktualisierung an alle Benutzer schicken musste (was für einen experimentellen Änderung riskant ist) oder eine einmalige Version für den Kunden erstellen musste (was für beide von uns eine Mühe war).
Was fehlte war Flexibilität. Entwickler wollten verschiedene Updates an verschiedene Benutzergruppen liefern können, wie z.B. nicht-technische Stakeholder, QA oder die gesamte Benutzerbasis, wenn es angebracht ist.
There war kein Weg für eine Produktionsversion, auf eine WIP-Version umzuschalten, Feedback zu sammeln und dann wieder auf 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, eine Produktionsapp in einen flexiblen Raum für die Überprüfung und Iteration verwandeln anstatt in einen festen Endpunkt. Dies ist insbesondere für nicht-technische Stakeholder, die mit Produktionsanwendungen arbeiten, nützlich, indem sie Änderungen testen und direkt im bereits installierten App Feedback geben können.
Updatekanäle verstehen
Updatekanäle sind die Art und Weise, wie Capgo Ziele für Updates auf bestimmte Builds setzt. Jedes Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates es erhalten wird.
Beispielsweise können Sie Updates in einen preview Kanal veröffentlichen, ohne die Benutzer auf productionzu beeinflussen. In der Vergangenheit war ein Wechsel der Kanäle ein Installieren eines anderen native Builds oder das Manuell Ändern der Gerätezuweisungen über das Dashboard erforderlich.
Kanäle in Capgo ermöglichen Ihnen:
- Wichtige Funktionen für bestimmte Benutzergruppen zu targeten
- A/B-Tests durchzuführen, indem Sie Benutzer verschiedenen Kanälen zuweisen
- Neue Funktionen sukzessive bereitstellen
- Beta-Testprogramme erstellen
- Produktionsprobleme mit einzelnen Benutzern debuggen
Wenn Sie sich nicht mit Update-Kanälen auskennen, behandelt die Capgo Dokumentation zu den Kanälen diese Thematik im Detail. 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 das Update-Kanal wechseln, sobald sie gestartet wird, und sie 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
Build auf ein production Kanal umschalten kann, um z.B. die neuesten Änderungen auszuprobieren. Wenn sie mit der Testung fertig sind, schalten sie wieder auf preview zurück. Ein Neustart oder ein separates Preview-Build sind nicht erforderlich. production In der Praxis bedeutet dies, dass ein Produktbesitzer oder QA-Tester ein Build auf ein anderes Channel umschalten kann, um z.B. die neuesten Änderungen auszuprobieren. Wenn sie mit der Testung fertig sind, schalten sie wieder auf das ursprüngliche Channel zurück.
Unter der Haube funktioniert das Fernsehen von Kanälen, indem das App den Updates-Client wissen lässt, welchen Kanal verwenden soll. Diese Wahl kann während der Laufzeit geändert werden und bleibt bis sie gelöscht oder durch eine andere ersetzt wird.
Wie man Channel-Surfing implementiert
Bevor Sie Channel-Surfing ausprobieren können, muss Ihr Projekt mit Capgo Live Updates konfiguriert sein. Um das aufzusetzen, folgen Sie bitte der Capgo Schnellstartanleitung.
Für Channel-Surfing ist nur die Aktivierung der Option 'Zulassen, dass Geräte sich selbst verbinden' auf jedem Kanal, den Sie wechseln möchten, in der Capgo-Oberfläche erforderlich. Keine code-Änderungen oder Konfigurationsanpassungen erforderlich.
Im Kern wird Channel-Surfing durch eine einzelne API-Anruferanforderung angetrieben:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
Dies setzt den Kanal fest, der verwendet wird, wenn Capgo nach Updates abgefragt wird. Erhalten Sie weitere Informationen über die setChannel API.
Instant Channel Switching (ab v5.34.0+)
Ab Plugin-Version 5.34.0, 6.34.0, 7.34.0 oder 8.0.0 (abhängig von Ihrer Hauptversion) setChannel() funktioniert anders und viel schneller:
- Hintergrundvalidierung (lesen nur): Ein Anfrage wird an den Capgo-Backend gesendet, um zu überprüfen, ob der Kanal erlaubt ist
- Lokales Speicher aktualisieren: Wenn die Validierung erfolgreich ist, wird der Kanal im Gerätespeicher gespeichert
- Echtzeit-Effekt: Die nächste Überprüfung auf Updates verwendet den neuen Kanal sofort
Zuvor setChannel() hatte der Kanal-Übertrag gespeichert, um den Backend-Datenbank (wie Dashboard oder API-Änderungen) zu speichern. Die Geräte mussten auf Backend-Replikation (bis zu 2 Minuten) warten, bevor der neue Kanal anerkannt wurde. Die neue Verhaltensweise liest nur aus dem Backend (für die Validierung) und speichert lokal, was den Kanal-Wechsel sofort macht.
Vollständiger Kanal-Wechsel-Flow
Für eine bessere Benutzererfahrung möchten Sie normalerweise mehr tun als nur den Kanal wechseln und auf den nächsten App-Neustart warten. Eine gängige Vorgehensweise besteht darin, sofort nach Updates zu suchen, sie herunterzuladen, wenn verfügbar, und die App neu zu laden, damit der Benutzer direkt auf dem ausgewählten Kanal landet.
Ein typischer Flow sieht wie folgt aus:
- Den Kanal ändern (
setChannel) - Nach einer Aktualisierung suchen (
getLatest) - Die Aktualisierung abrufen und anwenden (
download,setodernext) - Das App-Programm neu laden, wenn nötig (
reload)
Hier ist ein vollständiges Beispiel:
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');
Wie Sie diese Flussstruktur gestalten, liegt Ihnen überlassen. Sie könnten diese Schritte über mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Unabhängig davon, wie Sie die Flussstruktur gestalten, müssen Sie sicherstellen, dass Sie auf Fehler reagieren. Netzwerkprobleme oder ein ungültiger Kanal können alle eine Aktualisierung davon abhalten, angewendet zu werden.
Die einzige Anforderung: Selbstzuweisung aktivieren
Dies ist die einzige Sache, die Sie tun müssen, um das Kanalsurfen zu aktivieren. Bevor Ihre App auf einen Kanal wechseln kann, muss sie für den Kanal in der __CAPGO_KEEP_0__-Oberfläche Selbstzuweisung aktiviert haben: setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:
- Go to the Kanäle Abschnitt in Ihrem Capgo-Dashboard
- Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
- Aktivieren „Zulassen, dass Geräte sich selbst zuordnen“
- Speichern Sie die Änderungen

Das ist alles. Keine Konfigurationsänderungen erforderlich in Ihrer App. Nein defaultChannel Keine Einstellung erforderlich. Aktivieren Sie einfach die Selbstzuordnung auf den Kanälen, auf denen Benutzer wechseln dürfen.
Wenn diese Einstellung deaktiviert ist, versagt jeder Versuch, auf setChannel() mit diesem Kanal aufzurufen, und das channelPrivate Ereignis wird ausgelöst.
Verfügbare Kanäle auflisten
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 ab, sodass es auf den defaultChannel in Ihrer Konfiguration oder im Cloud-Standard zurückfällt.
Kanalwechsel testen
Um den Kanalwechsel in Aktion zu sehen, benötigen Sie ein Release-Build - das @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 Fernsehen von Kanälen besteht darin, dass Sie „Zugriff auf Geräte ermöglichen, dass sie sich selbst verbinden“ auf jedem Kanal, den Sie für das Umstellen erlauben möchten. Keine Konfigurationsänderungen sind in Ihrer App erforderlich.
Erstellung eines Testbuilds
Bauen 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 Kanal starten, der als Cloud-Standard in Ihrem Capgo-Dashboard eingestellt ist.
Veröffentlichung von Updates auf verschiedenen Kanälen
Sobald die App installiert ist, 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
Dann navigieren Sie zu Ihrer Kanal-Übersichts-UI in der App und lösen den Kanal-Wechsel aus. Die App sollte das Update vom ausgewählten Kanal herunterladen und neu laden.
Erstellung einer Kanal-Wechsel-UI
Kanal-Übersicht 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-Versionen-Kanal umschaltet.
Ein Beispiel für eine React-Komponente für einen Kanalwechsler:
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 Probleme sind spezifisch für das Kanalwechseln, aber sie werden schnell sichtbar, sobald Sie Kanäle bei Laufzeit wechseln.
Versionenmismatches bei Laufzeit
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 Kanalwechseln dieses Problem beobachten, zeigt sich das, 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 Kanalbundle 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 dem Capgo-Dashboard es nicht von Geräten, die es bereits haben. Die Löschung stoppt nur zukünftige Downloads. Die zuverlässigste Methode, 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 Kanalgeschichte, das Clients als neueste Version behandeln und anstelle des alten Updates anwenden. __CAPGO_KEEP_0__ bietet auch eine Rückschaltmechanik, die Clients anweist, eine vorherige stabile Update zu wiederherzustellen oder auf das Update zurückzufallen, das in der Build eingebettet ist.
__CAPGO_KEEP_0__
Capgo
Datenmigrationserwägungen
Wenn Sie das Kanalwechseln, ändert sich das JavaScript-Bundle, das die App ausführt. Wenn Ihre App auf Migrations- oder Datenformen angewiesen ist, die sich nicht über Kanäle hinweg kompatibel sind, kann das Wechseln zwischen Kanälen zu Problemen führen.
Beispielsweise könnte eine Beta-Update eine Datenbankmigration anwenden, die die Produktionsversion nicht versteht. Entwickler sollten sicherstellen, dass ihre Updates sicher sind, um zwischen oder auf eine Richtung zu wechseln, wenn erforderlich.
Warum Channel-Surfing die mobile Iteration verbessert
Channel-Surfing ist besonders nützlich, wenn Sie schnell Änderungen in einer Produktionsumgebung überprüfen müssen.
Schnelle Validierung
Stellen Sie sich vor, ein dringender Bug-Fix, der vor der Veröffentlichung überprüft werden muss. Mit Channel-Surfing kann die Änderung auf eine kleine Gruppe von Benutzern beschränkt werden, die sie überprüfen können, bevor sie in die Produktionsumgebung gelangen.
Stakeholder-Review
Ein Produktbesitzer oder QA kann seine installierte Produktionsversion auf einen anderen Update-Kanal umschalten, die Änderung oder Funktion überprüfen und dann wieder zurück umschalten, wenn er fertig ist.
Gestrahltes Testen
Dies erleichtert es, nicht-technische Stakeholder in der Überprüfung und Entscheidungsfindung einzubinden, während der Workflow reibungslos bleibt. Ein einzelnes Produktionsbuild wird zu einem flexiblen Werkzeug für das Testen, Feedback und die Validierung.
Verwendungsfälle
- Qualitätstestung: Lassen Sie das 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 Änderungen vor der Veröffentlichung
- A/B-Testung: Zuweisen Sie Benutzer zu verschiedenen Kanälen für Experimente
- Fehlersuche: Wechseln Sie einen bestimmten Benutzer in einen Debug-Kanal, um Probleme zu diagnostizieren
Vergleich: Kanalwechselmethoden
| Methode | Effektzeit | __CAPGO_KEEP_0__ gespeichert | Verwendungsfall |
|---|---|---|---|
setChannel() aus Plugin | Instant | Gerät nur (lokal) | Benutzerinitiierte Kanalwechsel innerhalb der App |
| Überwachung des Geräts im Dashboard | bis zu 2 min | Hintergrund-Datenbank | Admin-gesteuerte Änderungen für spezifische Geräte |
| API Kanalzuweisung | Bis zu 2 Minuten | Hintergrund-Datenbank | Automatisierte Hintergrundintegrationen |
Für die beste Benutzererfahrung bei der Erstellung von UIs, die Kanäle wechseln, verwenden Sie immer die Funktion des Plugins. setChannel() Methode.
Gute Praktiken
- Zugriff einschränken: Kanalsurfen wird normalerweise für interne Zwecke verwendet - vermeiden Sie es, es allen Benutzern zugänglich zu machen
- Fehler behandeln: Behandeln Sie Fehler immer freundlich, wenn Sie Kanäle wechseln
- Kompatibilität überprüfen: Stellen Sie sicher, dass Updates auf verschiedenen Kanälen mit der installierten nativen Version kompatibel sind
- DokumentationskanäleHalten Sie eine klare Dokumentation darüber, wofür jeder Kanal ist
- Verwendung überwachenTracken Sie, welche Geräte auf welchen Kanälen sind, um zu debuggen
Ressourcen
Zusammenfassung
Das Kanalwechseln transformiert, wie Sie an Ihrem Capacitor-Anwendungen 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 jüngsten Pluginversionen ist die Erfahrung jetzt reibungslos - Benutzer können Kanäle wechseln und erhalten sofort Updates vom neuen Kanal ohne Wartezeit.
Ob Sie Bug-Fixes mit Stakeholdern überprüfen, Beta-Programme durchführen oder Probleme bei bestimmten Benutzern debuggen, das Channel-Surfen bietet Ihnen die Flexibilität, dem richtigen Benutzer das richtige Update zur richtigen Zeit zu liefern.