Wie oft hast du gewünscht, eine Änderung direkt an einen bestimmten Benutzer zu liefern, damit er sie sofort überprüfen und Feedback geben kann - ohne ihn dazu auffordern, eine neue Version von TestFlight oder Google Play herunterzuladen und zu installieren?
Meine Kunden haben mich gebeten, Verbesserungen vorzunehmen, die ich schnell umsetzen konnte, aber es bedeutete, eine Aktualisierung an alle Benutzer zu versenden (risikant für einen experimentellen Änderung) oder eine einmalige Version speziell für den Kunden zu erstellen (eine Mühe 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 Arbeit-in-Progress-Version umzuwandeln, Feedback zu sammeln und dann wieder in die Produktionsversion zurückzukehren.
Dafür sorgt das Kanalwechsel erlaubt. Eine auf einem Gerät installierte App kann den Updatekanal während der Ausführung ändern, wodurch eine Produktionsanwendung 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 Produktionsanwendungen arbeiten, und ermöglicht es ihnen, Ä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. Jedes Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates es erhält.
Beispiel: Du kannst Updates an einen preview Kanal veröffentlichen, ohne die Benutzer auf production. In der Vergangenheit war das Umstellen von Kanälen das Installieren einer anderen nativen Build oder das manuelle Ändern der Gerätezuweisungen über das Dashboard.
Mit den Capgo-Kanälen kannst du:
- Zielgruppen mit unterschiedlichen Funktionen ansprechen
- A/B-Tests durchführen, indem du Benutzer verschiedenen Kanälen zuweistest
- Neue Funktionen allmählich einfügen
- Beta-Testprogramme erstellen
- Produktionsprobleme mit einzelnen Benutzern debuggen
Wenn du mit den Updatekanälen nicht vertraut bist, deckt die __CAPGO_KEEP_0__-Kanäldokumentation sie in mehr Details ab. Capgo channels documentation Channel-Surfing ermöglicht es einer installierten App, von verschiedenen Update-Streams zu pullen, ohne neu installiert zu werden. Eine installierte App kann den Update-Kanal während der Ausführung umschalten und wird weiterhin Updates vom neu ausgewählten Kanal erhalten, bis die App uninstalliert oder auf einen anderen Kanal umgeschaltet wird.
Channel-Surfing ermöglicht es einer installierten App, von verschiedenen Update-Streams zu pullen, ohne neu installiert zu werden. Eine installierte App kann den Update-Kanal während der Ausführung umschalten und wird weiterhin Updates vom neu ausgewählten Kanal erhalten, bis die App uninstalliert oder auf einen anderen Kanal umgeschaltet wird.
Channel-Surfing ermöglicht es einer installierten App, von verschiedenen Update-Streams zu pullen, ohne neu installiert zu werden. Eine installierte App kann den Update-Kanal während der Ausführung umschalten und wird weiterhin Updates vom neu ausgewählten Kanal erhalten, bis die App uninstalliert oder auf einen anderen Kanal umgeschaltet wird.
In der Praxis bedeutet dies, dass ein Produktbesitzer oder QA-Tester ein Build auf, zum Beispiel, einen production kanal umschalten kann, um 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 Unter der Haube funktioniert das Channel-Surfen, indem das App-Programm dem Updates-Client mitteilt, welchen Kanal verwenden soll. Diese Wahl kann während der Laufzeit geändert werden und bleibt bis zum Löschen oder Ersetzen gültig.
Wie man Channel-Surfing implementiert
Bevor Sie Channel-Surfing ausprobieren können, muss Ihr Projekt mit __CAPGO_KEEP_0__ Live Updates konfiguriert sein. Um das aufzusetzen, folgen Sie bitte der
Capgo Schnellstartanleitung Capgo quickstart guide.
Capgo Dashboard. Keine Änderungen oder Konfigurationsanpassungen an code sind erforderlich, außer der genannten.
Im Kern wird Channel-Surfing durch eine einzelne API-Anfrage 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 zur Festlegung des API.
Instant Channel Switching (ab v5.34.0+)
Ab der Pluginversion 5.34.0, 6.34.0, 7.34.0 oder 8.0.0 (abhängig von Ihrer Hauptversion), setChannel() arbeiten Sie anders und viel schneller:
- Backend-Validierung (nur Lesen): Ein Anfrage wird an den Capgo Backend gesendet, um die Zulässigkeit des Kanals zu überprüfen
- Speicherung in der lokalen Zwischenspeicherung: Wenn die Überprüfung erfolgreich ist, wird der Kanal im Gerätespeicher gespeichert
- Instantane Effekte: Die nächste Aktualisierungsprüfung verwendet den neuen Kanal sofort
Zuvor, setChannel() hat die Kanalüberschreibung im Backend-Datenbank gespeichert (wie Dashboard oder API Änderungen). Geräte mussten auf Backend-Replikation (bis zu 2 Minuten) warten, bevor der neue Kanal erkannt wurde. Die neue Verhaltensweise liest nur vom Backend (für die Validierung) und speichert lokal, was die Kanalwechsel sofortig macht.
Vollständiger Kanalwechsel-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 nachzufragen, ob Updates verfügbar sind, diese herunterzuladen, wenn verfügbar, und die App neu zu laden, damit der Benutzer direkt auf die ausgewählte Kanal-Update landet.
Eine typische Flussansicht sieht wie folgt aus:
- Kanal wechseln (
setChannel) - Nach Update suchen (
getLatest) - Update herunterladen und anwenden (
download,setodernext) - Die Kanalwechsel-Flussansicht
reload)
Die Kanalwechsel-Flussansicht
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');
Die Kanalwechsel-Flussansicht
Die Kanalwechsel-Flussansicht oder die App neu laden, wenn erforderlich (
Dies ist das einzige, was Sie tun müssen, um das Channel-Surfen zu aktivieren. Bevor Ihre App auf ein Channel wechseln kann, müssen Sie in Ihrem __CAPGO_KEEP_0__-Dashboard die Selbstzuweisung für das Channel aktivieren: setChannel()Gehen Sie in Ihrem Capgo-Dashboard in die
- Kanäle Abschnitt in Ihrem __CAPGO_KEEP_0__-Dashboard section in your Capgo dashboard
- Aktivieren Sie
- „Zulassen, dass Geräte sich selbst zuweisen“ Speichern Sie die Änderungen
- Aktivieren Sie die Selbstzuweisung in den Kanal-Einstellungen

Keine defaultChannel Einstellung erforderlich. Aktivieren Sie einfach die Selbstzuweisung auf den Kanälen, auf die die Benutzer umschalten sollen.
Wenn diese Einstellung deaktiviert ist, schlägt jeder Versuch, diesen Kanal aufzurufen, fehl und das Ereignis wird ausgelöst. setChannel() Liste der verfügbaren Kanäle channelPrivate Sie können die Liste der für die Selbstzuweisung verfügbaren Kanäle abrufen:
Dies gibt nur Kanäle zurück, auf denen die Selbstzuweisung aktiviert ist.
Abfrage des aktuellen Kanals
const { channels } = await CapacitorUpdater.listChannels();
console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI
Überprüfen Sie, welcher Kanal dem Gerät derzeit zugewiesen ist:
Rückkehr zum Standardkanal
Um die Kanalübernahme aufzuheben und auf den Standard zurückzukehren:
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Dies löst das Gerät von jedem spezifisch zugewiesenen Kanal frei, sodass es auf den
Standardkanal zurückfällt.
await CapacitorUpdater.unsetChannel({});
Dies löst das Gerät von jedem spezifisch zugewiesenen Kanal frei, sodass es auf den Standardkanal zurückfällt. defaultChannel in Ihrer Konfiguration oder der Cloud-Standard.
Wie man Channel-Surfing testet
Um Channel-Surfing in Aktion zu sehen, benötigen Sie eine Release-Build - der __CAPGO_KEEP_0__ ist für Release-Builds konzipiert. In Debug-Builds lädt die App typischerweise JavaScript von einem Entwicklungsserver, der 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-Surfing ist die Aktivierung von "Zulassen, dass Geräte sich selbst assoziieren"
auf jeder 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:
Erstellen Sie dann 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__-Oberfläche festgelegt ist.
Veröffentlichung von Updates auf verschiedenen Kanälen
bun run build && npx cap sync
Erstellen Sie dann 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-Oberfläche festgelegt ist.
Erstellen Sie dann 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__-Oberfläche festgelegt ist.
Installieren Sie die App, 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
Navigieren Sie dann zu Ihrer Kanal-Übersicht in der App und aktivieren Sie den Kanalwechsel. Die App sollte die Aktualisierung vom ausgewählten Kanal herunterladen und neu laden.
Ein Kanalwechsel-UI erstellen
Kanalwechsel 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 Vorschaukanal umschaltet.
Eine Beispiel-Komponente für einen Kanalwechsel:
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 Kanalwechsel, aber sie werden schnell sichtbar, sobald Sie Kanäle während der Laufzeit umschalten.
Laufzeit-Versionen-Übereinstimmungen
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 Kanalwechsels damit konfrontiert werden, dass die App die Kanäle wechselt, aber keine Aktualisierung angewendet wird, obwohl eine auf dem Kanal existiert, bedeutet dies, dass die Aktualisierung 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ückschaltungen von Updates
Wenn eine App bereits eine Aktualisierung für einen Kanal heruntergeladen hat, entfernt die Löschung dieser Aktualisierung aus der __CAPGO_KEEP_0__-Oberfläche sie nicht von Geräten, die sie bereits haben. Die Löschung stoppt nur
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 zukünftig Herunterladen.
Die zuverlässigste Methode, um eine schlechte Aktualisierung rückgängig zu machen, besteht darin, eine bekannte gute Aktualisierung auf demselben Kanal zu veröffentlichen. Dies erstellt eine neue Aktualisierung an der Spitze der Kanalgeschichte, die Clients als die neueste Version behandeln und stattdessen anwenden.
Capgo bietet auch eine Rückschaltmechanismus an, der Clients anweisen kann, eine vorherige stabile Aktualisierung erneut anzuwenden oder auf die in der Konfiguration eingebettete Aktualisierung zurückzufallen.
Datenmigrationserwägungen
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 die 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.
Wozu das Channel-Surfen verbessert
Das Channel-Surfen ist besonders nützlich, wenn Sie schnell Änderungen in einem Produktionsumfeld überprüfen müssen.
Schnelle Validierung
Stellen Sie sich vor, dass eine dringende Bugfixung überprüft werden muss, bevor sie weit verbreitet wird. Mit dem Channel-Surfen kann die Änderung auf einen kleinen Satz von bezeichneten Benutzern isoliert werden, die sie vorher überprüfen können, bevor sie in die Produktion gelangt.
Stakeholder-Überprüfung
A Produktbesitzer oder QA-Team 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
Verwendungsfälle
context
- Qualitätsprüfung: Lassen Sie das QA-Team zwischen Featurezweigen umschalten
- Betaversionen: Benutzer wählen die Beta-Kanal für den frühen Zugriff
- Stakeholder-Bewertung: Produktbesitzer präsentieren Änderungen vor der Veröffentlichung
- A/B-Test: Zuweisen Sie Benutzer zu verschiedenen Kanälen für Experimente
- Fehlertreiber: Ein bestimmter Benutzer auf ein Debug-Kanal umschalten, um Probleme zu diagnostizieren
Vergleich: Kanaländerungsverfahren
| Methode | Wirkungszeit | Gespeichert an | Verwendungsfall |
|---|---|---|---|
setChannel() von Plugin |
Echtzeit | Gerät nur (lokal) | Benutzerinitiierte Kanalwechsel in der App |
| Geräteübersicht - Geräteüberschreiben | Bis zu 2 Minuten | Hintergrund-Datenbank | Administrativ initiierte Änderungen für bestimmte Geräte |
| API Kanalzuweisung | Bis zu 2 Minuten | Hintergrund-Datenbank | Automatisierte Hintergrundintegrationen |
Für die beste Benutzererfahrung bei der Erstellung von UIs für das Kanalwechseln, verwenden Sie immer die Methode des Plugins. setChannel() Gute Praktiken
Zugriff einschränken
- : Kanalsurfen ist normalerweise für den internen Gebrauch gedacht - vermeiden Sie es, es allen Benutzern zugänglich zu machenBeschränken Sie den Zugriff
- Fehler behandeln: Fehler immer dann behandelnd, wenn zwischen den Kanälen gewechselt wird
- Kompatibilität überprüfen: Stellen sicher, dass Updates auf verschiedenen Kanälen mit der installierten native Version kompatibel sind
- Kanäle dokumentieren: Dokumentieren Sie die Kanäle klar und deutlich, damit jeder weiß, was sie für was sind
- Verwendung überwachen: Verfolgen Sie, welche Geräte auf welchen Kanälen sind, um beim Debugging zu helfen
Ressourcen
Zusammenfassung
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 Testung, Validierung und schnelle Iteration.
Mit der Einführung der sofortigen Channel-Wechsel in den letzten Plugin-Versionen 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 validieren, Beta-Programme durchführen oder Probleme mit bestimmten Benutzern debuggen, das Channel-Surfen gibt Ihnen die Flexibilität, das richtige Update an den richtigen Benutzer zur richtigen Zeit zu liefern.
Weiter zu 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 for Capgo: How to Switch Update Channels at Runtime Kanäle Kanäle Kanäle Kanäle für die Implementierungsdetails in den Kanälen Kanäle Beta-Testlösung für die Produktworkflow in der Beta-Testlösung, und Versionziel-Lösung für die Produktworkflow in der Versionziel-Lösung. Artikelcredits