Haben Sie sich schon einmal gewünscht, eine Änderung direkt an einen bestimmten Benutzer zu liefern, damit sie diese sofort überprüfen und Feedback geben können - ohne sie dazu auffordern, ein neues Build von TestFlight oder Google Play herunterzuladen und zu installieren?
Meine Kunden haben mich gebeten, Verbesserungen vorzunehmen, die ich schnell umsetzen konnte, aber es bedeutete, dass ich ein Update an alle Benutzer schicken musste (risikant für eine experimentelle Änderung) oder ein separates Build für den Kunden erstellen musste (ein Aufwand 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 dies angebracht ist.
Es gab keine Möglichkeit, einen Produktionsbuild in einen Work-in-Progress-Status zu wechseln, Feedback zu sammeln und dann wieder in den Produktionsstatus zurückzukehren.
Dafür sorgt Kanalwechsel Kanalwechsel ermöglicht es, dass eine auf einem Gerät installierte App den Updatekanal während der Ausführung ändern kann, wodurch eine Produktionsapp in einen flexiblen Raum für die Überprüfung und Iteration verwandelt wird, anstatt ein fester Endpunkt zu sein. Dies ist besonders nützlich für nicht-technische Stakeholder, die mit Produktionsapps arbeiten, und ihnen ermöglicht, Änderungen zu testen und direkt in der App zu geben, die sie bereits installiert haben.
Updatekanäle verstehen
Updatekanäle sind die Wege, auf denen Capgo Updates an bestimmte Builds richtet. Jeder Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates er erhalten wird.
Beispiel: Sie können Updates an einen preview Kanal veröffentlichen, ohne die Benutzer auf anderen Kanälen zu beeinflussen. production. In der Vergangenheit war das Wechseln von Kanälen das Installieren eines anderen native Builds oder das Manuelle Ändern der Gerätezuweisungen über das Dashboard.
Kanäle in Capgo ermöglichen Ihnen:
- Ziel spezifische Benutzergruppen mit unterschiedlichen Funktionen
- A/B-Tests durchführen, indem Sie Benutzer verschiedenen Kanälen zuweisen
- Neue Funktionen allmählich einleiten
- Beta-Testprogramme erstellen
- Produktionsprobleme mit einzelnen Benutzern debuggen
Wenn Sie sich nicht mit Updatekanälen auskennen, wird das Thema im Capgo Kanäldokumentation detaillierter behandelt.
Was ist Channel Surfing?
Channel Surfing ermöglicht es einem installierten App, von verschiedenen Update-Streams 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 Build auf, zum Beispiel, ein preview Kanal wechseln kann, um die neuesten Änderungen auszuprobieren. Wenn sie mit den Tests fertig sind, wechseln sie wieder zurück zu production . Es ist nicht notwendig, ein neues Installationsprogramm oder ein separates Preview-Build zu erstellen.
Unter der Haube funktioniert das Kanalwechseln, indem das App-Programm dem Updates-Client mitteilt, welchen Kanal zu verwenden ist. Diese Wahl kann während der Ausführung geändert und bleibt bis zur Löschung oder Ersetzung gültig.
Wie man Kanalwechseln implementiert
Bevor Sie Kanalwechseln ausprobieren können, muss Ihr Projekt mit Capgo Live Updates konfiguriert sein. Um das aufzusetzen, folgen Sie dem Capgo Schnellstart-Leitfaden.
Die einzige erforderliche Einstellung für Kanalwechseln ist die Aktivierung der Option 'Zulassen, dass Geräte sich selbst verbinden' auf jedem Kanal, den Sie wechseln möchten, im Capgo Dashboard. Keine code Änderungen oder Konfigurationsanpassungen erforderlich, darüber hinaus.
Im Kern wird das Kanalwechseln durch eine einzelne API-Anruferung 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. Mehr über die setChannel API erfahren.
Schneller Kanalwechsel (ab v5.34.0+)
Ab Pluginversion 5.34.0, 6.34.0, 7.34.0 oder 8.0.0 je nach Hauptversion setChannel() funktioniert anders und viel schneller:
- Hintergrundvalidierung (readonly): Ein Anfrage wird an den Capgo-Backend gesendet, um zu überprüfen, ob der Kanal erlaubt ist
- Lokale Speicheraktualisierung: Wenn die Überprüfung erfolgreich ist, wird der Kanal im Gerätespeicher gespeichert
- Schnelle Wirkung: Die nächste Aktualisierungsprüfung verwendet den neuen Kanal sofort
Zuvor setChannel() hat den Kanalüberschreibungssatz auf dem 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 anerkannt wurde. Die neue Verhaltensweise liest nur vom Backend (für die Validierung) und speichert lokal, was den Kanalwechsel sofort macht.
Vollständiger Kanalwechsel-Flow
Für eine bessere Benutzererfahrung möchten Sie in der Regel mehr tun als nur den Kanal wechseln und auf den nächsten 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 so aus:
- Kanal ändern (
setChannel) - Nach Update prüfen (
getLatest) - Update herunterladen und anwenden (
download,setodernext) - App neu laden, wenn erforderlich (
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');
Sie können die Struktur dieses Flows selbst bestimmen. Sie können diese Schritte über mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Unabhängig davon, wie Sie den Fluss strukturieren, stellen Sie sicher, dass Sie auf Fehler reagieren. Netzwerkprobleme oder ein ungültiger Kanal können alle eine Aktualisierung verhindern.
Die einzige Anforderung: Selbstzuweisung aktivieren
Dies ist das einzige, was Sie tun müssen, um das Channel-Surfen zu aktivieren. Bevor Ihre App auf ein anderes Channel wechseln kann, müssen Sie die Selbstzuweisung für das Channel in Ihrem __CAPGO_KEEP_0__-Dashboard aktivieren: setChannel()Gehe in Ihrem Capgo-Dashboard zur
- Kanäle Sektion section in your Capgo dashboard
- Aktiviere
- „Zulassen, dass Geräte sich selbst zuweisen“ Speichere die Änderungen
- Aktiviere die Selbstzuweisung in den Kanal-Einstellungen

Keine Konfigurationsänderungen erforderlich in Ihrer App. defaultChannel Einstellung erforderlich. Aktivieren Sie einfach die Selbstzuweisung auf den Kanälen, auf die Benutzer wechseln können.
Wenn diese Einstellung deaktiviert ist, schlägt jeder Versuch, setChannel() mit diesem Kanal aufzurufen channelPrivate fehlschlägt und das
ereignis wird ausgelöst.
Verfügbare Kanäle auflisten
const { channels } = await CapacitorUpdater.listChannels();
console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI
Sie können die Liste der verfügbaren Kanäle für die Selbstzuweisung abrufen:
Dies gibt nur Kanäle zurück, bei denen die Selbstzuweisung aktiviert ist.
Aktueller Kanal abrufen
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Überprüfen Sie, welcher Kanal dem Gerät derzeit zugewiesen ist:
Zurück auf Standardkanal wechseln
await CapacitorUpdater.unsetChannel({});
Um den Kanal-Übertrag und die Rückkehr zum Standard zu ermöglichen: defaultChannel In Ihrer Konfiguration oder der Cloud-Standard.
Wie man Channel-Surfen testet
Um Channel-Surfen in Aktion zu sehen, benötigen Sie eine Release-Build - die __CAPGO_KEEP_0__ ist für Release-Builds konzipiert. In Debug-Builds lädt die App typischerweise JavaScript von einem Entwicklungsserver, was den normalen Update-Flow umgeht. @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.
Die einzige Anforderung für Channel-Surfen ist die Aktivierung von
“Zulassen, dass Geräte sich selbst assoziieren” auf jedem Kanal, den Sie für das Umstellen zulassen möchten. Keine Konfigurationsänderungen sind in Ihrer App erforderlich. Erstellung eines Testbuilds
Bauen Sie Ihre App wie gewohnt:
Dann erstellen Sie Ihre native Builds mit Xcode oder Android Studio oder verwenden Sie Ihren CI/CD-Pipeline. Die App wird auf dem Kanal starten, der als Cloud-Standard in Ihrer __CAPGO_KEEP_0__-Dashboard eingestellt ist.
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.
Veröffentlichung von Updates auf verschiedenen Kanälen
Nachdem die App installiert ist, veröffentlichen Sie Updates für verschiedene Kanäle:
# 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 navigieren Sie zu Ihrer Kanal-Übersicht in der App und aktivieren den Kanalwechsel. Die App sollte das Update vom ausgewählten Kanal abrufen und in das neue Update neu laden.
Ein Channel-Switcher-UI erstellen
Kanal-Surfen ist normalerweise etwas, das Sie nur einer begrenzten Gruppe von Benutzern zugänglich machen möchten, nicht allen Benutzern, die Ihre App verwenden. Zum Beispiel haben Sie möglicherweise einen Button, der nur für autorisierte Mitarbeiter verfügbar ist, der die App auf den Vorab-Kanal umschaltet.
Hier ist ein Beispiel für eine React-Komponente für einen Channel-Switcher:
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 Kanal-Surfen, aber sie werden schnell sichtbar, sobald Sie Kanäle während der Ausführung umschalten.
Laufzeit-Versionen stimmen nicht überein
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 während des Kanal-Surfens damit konfrontiert werden, dass die App die Kanäle wechselt, aber kein Update angewendet wird, obwohl eines auf dem Kanal existiert, bedeutet dies, dass die Update-Veröffentlichung von einer anderen native Version der App erfolgte. Stellen Sie sicher, dass die Bundle Ihres Kanals mit der native Version auf dem Gerät kompatibel ist.
Updates entfernen oder rückgängig machen
Wenn eine App bereits ein Update für einen Kanal heruntergeladen hat, entfernt die Löschung dieses Updates aus der __CAPGO_KEEP_0__-Oberfläche es nicht von Geräten, die es bereits haben. Die Löschung stoppt nur die Herunterladung von neuen Updates.
If an app has already downloaded an update for a channel, deleting that update from the Capgo dashboard does not remove it from devices that already have it. Deletion only stops Zukunft Herunterladen.
Die zuverlässigste Methode, um eine schlechte Aktualisierung rückgängig zu machen, ist die Veröffentlichung einer bekannten guten Aktualisierung in demselben Kanal. Dies erstellt eine neue Aktualisierung an der Spitze der Kanalgeschichte, die Clients als die neueste Version behandeln und anstelle der alten anwenden.
Capgo bietet auch eine Rückerstattungsmechanismus, der Clients anweisen kann, eine vorherige stabile Aktualisierung erneut anzuwenden oder auf die in der Veröffentlichung eingebaute Aktualisierung zurückzufallen.
Datenaufbewahrungsüberlegungen
Das Wechseln der Kanäle ä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 hin und her Probleme verursachen.
Beispiel: Wenn eine Beta-Aktualisierung eine Datenbankmigration anwendet, versteht die Produktionsversion möglicherweise nicht das neue Schema. Entwickler sollten sicherstellen, dass ihre Aktualisierungen sicher sind, um zwischen ihnen hin und her zu wechseln, oder die Wechselrichtung einschränken, wenn erforderlich.
Weshalb Channel-Surfing die mobile Iteration verbessert
Channel-Surfing ist besonders nützlich, wenn Sie schnell Änderungen in einem Produktionsumfeld überprüfen müssen.
Schnelle Validierung
Stellen Sie sich eine dringende Bugfix vor, die vor der Veröffentlichung in einem breiteren Umfang überprüft werden muss. Mit Channel-Surfing kann die Änderung auf eine kleine Gruppe von bezeichneten Benutzern isoliert werden, die sie vor der Veröffentlichung in einem Produktionsumfeld überprüfen können.
Stakeholder-Überprüfung
A Produktbesitzer oder QA kann ihre installierte Produktionsversion auf eine andere Aktualisierungsstelle umschalten, die Reparatur oder Funktion überprüfen und dann wieder zurück umschalten, sobald sie fertig sind.
Zusammengefasste Tests
Dies erleichtert es, nicht-technische Stakeholder in der Überprüfung und Entscheidungsfindung einzubinden, während der Workflow reibungslos bleibt. Eine einzelne Produktionsversion wird zu einem flexiblen Werkzeug für Tests, Feedback und Validierung.
Verwendungsfälle
- QA-Testen: Lassen Sie die QA-Team zwischen Featurezweigen umschalten
- Betaversionen: Benutzer wählen sich die Beta-Kanal für den frühen Zugriff
- Stakeholder-Bewertung: Produktbesitzer präsentieren Änderungen vor der Veröffentlichung
- A/B-Testen: 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: Methoden zum Wechseln des Kanals
| Methode | Effektzeit | Wo persistiert | Verwendungsfall |
|---|---|---|---|
setChannel() aus Plugin | Echtzeit | Gerät nur (lokal) | Benutzerinitiiertes Wechseln des Kanals in-app |
| Überprüfung des Geräts im Dashboard | bis zu 2 min | Hintergrund-Datenbank | Administrativ initiierte Änderungen für bestimmte Geräte |
| API-Kanalzuweisung | bis zu 2 min | Hintergrund-Datenbank | Automatisierte Hintergrundintegrationen |
Für die beste Benutzererfahrung bei der Erstellung von UIs für das Wechseln von Kanälen, verwenden Sie immer die Methode des Plugins. setChannel() Best Practices
Zugriff einschränken
- : Das Channel-Surfen wird normalerweise für den internen Gebrauch verwendet - vermeiden Sie es, es allen Benutzern zugänglich zu machenZugriff einschränken ist normalerweise für den internen Gebrauch vorgesehen - vermeiden Sie es, es allen Benutzern zugänglich zu machen
- Fehler behandeln: Fehler immer dann elegant handhaben, wenn sich das Kanal wechselt
- Kompatibilität überprüfen: Stelle sicher, dass Updates auf verschiedenen Kanälen mit der installierten nativen Version kompatibel sind
- Dokumentation der Kanäle: Dokumentiere die Kanäle klar und deutlich, damit jeder weiß, was sie für was sind
- Verwendung überwachen: Verfolge, welche Geräte auf welchen Kanälen laufen, um beim Debugging zu helfen
Ressourcen
- : Live-Updates-Dokumentation Capgo
- Dokumentation der Kanäle
- : Dokumentation der Kanäle API
- Capgo CLI Befehle
Schlussfolgerung
Das Channel-Surfen verändert, wie Sie an Ihrem Capacitor-Anwendungen iterieren können. Anstatt Produktionsbuilds als feste Endpunkte zu behandeln, werden sie zu flexiblen Werkzeugen für die Überprüfung, die Validierung und die schnelle Iteration.
Mit der Einführung des sofortigen Channel-Wechselns in den letzten Plugin-Versionen ist die Erfahrung jetzt nahtlos - Benutzer können die 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, bietet das Channel-Surfen Ihnen die Flexibilität, die richtige Aktualisierung an den richtigen Benutzer zur richtigen Zeit zu liefern.
Weiterhin aus Channel Surfing für Capgo: Wie Sie die Aktualisierungs-Kanäle bei Laufzeit umschalten können
Wenn Sie Channel Surfing für Capgo: Wie Sie die Aktualisierungs-Kanäle bei Laufzeit umschalten können zur Planung der Kanalroutings und der gestuften Rollout verwenden, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in Versionziel-Lösung.