Haben Sie sich schon einmal 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, ein neues Build von TestFlight oder Google Play herunterzuladen und zu installieren?
Ich hatte Kunden, die Anfragen stellten, die ich schnell umsetzen konnte, aber das Ergebnis in ihre Hände zu bekommen, um es zu validieren, bedeutete, ein Update an alle Benutzer zu versenden (risikant für einen experimentellen Änderung) oder ein einzigartiges Build speziell für den Kunden zu erstellen (eine Mühe für beide).
Was fehlte war Flexibilität. Entwickler wollten in der Lage sein, verschiedenen Gruppen von Benutzern unterschiedliche Updates zu liefern, wie z.B. nicht-technischen Stakeholdern, QA oder der gesamten Benutzerbasis, wenn es angebracht ist.
Es gab keine Möglichkeit, einen Produktionsbuild zu wechseln, Feedback zu sammeln und dann wieder auf Produktionszustand zurückzukehren.
Das ist, was Kanalwechsel ermöglicht. Ein auf einem Gerät installiertes App kann bei Laufzeit Update-Kanäle wechseln, einen Produktionsapp in einen flexiblen Raum für die Überprüfung und Iteration verwandeln, anstatt ein fester Punkt zu sein. Dies ist besonders nützlich für nicht-technische Stakeholder, die mit Produktionsapps arbeiten, ihnen ermöglicht, Änderungen zu testen und direkt in der App zu geben, die sie bereits installiert haben.
Update-Kanäle verstehen
Update-Kanäle sind die Wege, auf denen Capgo-Ziele Updates für bestimmte Builds anziehen. Jeder Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates er empfängt.
Beispielsweise können Sie Updates für einen Kanal veröffentlichen, ohne die Benutzer auf preview Im Vergangenheit war das Wechseln von Kanälen die Installation eines anderen nativen Builds oder die manuelle Änderung der Gerätezuweisungen über das Dashboard erforderlich. productionKanäle in __CAPGO_KEEP_0__ ermöglichen Ihnen:
Channels in Capgo allow you to:
- A/B-Tests durch die Zuweisung von Benutzern an verschiedene Kanäle durchzuführen
- Neue Funktionen allmählich einzuführen
- Beta-Testprogramme zu erstellen
- Produktionsprobleme bei einzelnen Benutzern zu debuggen
- Wenn Sie sich nicht mit Update-Kanälen auskennen, empfehlen wir Ihnen die __CAPGO_KEEP_0__-Kanäldokumentation
__CAPGO_KEEP_0__ Capgo beschäftigen sie sich im Detail.
Was ist Channel Surfing?
Channel Surfing ermöglicht es einer installierten App, von verschiedenen Update-Streams ohne Neuinstallation zu pullen. Eine installierte App kann das Update-Kanal wechseln, sobald sie läuft, 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 " production Build" auf ein " preview Kanal" umschalten kann, um die neuesten Änderungen auszuprobieren. Wenn sie mit dem Testen fertig sind, schalten sie wieder auf " production zurück. Es ist keine Neuinstallation oder ein separates Preview-Build erforderlich.
Unter der Haube funktioniert Channel Surfing, indem die App dem Updates-Client mitteilt, welchen Kanal verwenden soll. Diese Wahl kann während der Laufzeit geändert werden und bleibt bis sie gelöscht oder ersetzt wird.
Wie Channel Surfing umzusetzen ist
Bevor Sie Channel Surfing ausprobieren können, muss Ihr Projekt mit Capgo Live Updates konfiguriert sein. Um das aufzusetzen, folgen Sie bitte der " Capgo Quickstart-Anleitung.
Die einzige Einstellung, die für Channel Surfing erforderlich ist, ist die Aktivierung der "Zulassen, dass Geräte sich selbst assoziieren"-Einstellung auf jedem Kanal, den Sie umschalten möchten, in der Capgo-Oberfläche. No code-Änderungen oder Konfigurationsanpassungen erforderlich außer dem.
Bei seinem Kern ist das Channel-Surfen von einem einzelnen API-Aufruf angetrieben:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
Dies stellt den Kanal fest, der verwendet wird, wenn Capgo für Aktualisierungen abgefragt wird. Mehr über die Funktion setChannel API erfahren..
Instant Channel Switching (ab v5.34.0+)
Ab der Plugin-Version 5.34.0, 6.34.0, 7.34.0 oder 8.0.0 (abhängig von Ihrer Hauptversion), setChannel() arbeiten anders und viel schneller:
- Hintergrundvalidierung (lesend nur): Ein Anfrage wird an den Capgo-Hintergrund gesendet, um zu überprüfen, ob der Kanal erlaubt ist.
- Speicherung in der lokalen Datenbank: Wenn die Überprüfung erfolgreich ist, wird der Kanal in der lokalen Speicherung des Geräts gespeichert.
- Instant Effekt: Die nächste Aktualisierungsprüfung verwendet den neuen Kanal sofort
Zuvor setChannel() den Kanal-Übertrag in der Backend-Datenbank (wie Dashboard oder API-Änderungen) gespeichert. Geräte mussten auf die Backend-Replikation (bis zu 2 Minuten) warten, bevor der neue Kanal erkannt wurde. Das neue Verhalten 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 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, 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 so aus:
- Den Kanal ändern (
setChannel) - Nach einer Aktualisierung suchen (
getLatest) - Die Aktualisierung herunterladen und anwenden (
download,setodernext) - Die 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');
Wie Sie diese Flussstruktur gestalten, ist Ihnen überlassen. Sie können diese Schritte über mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Unabhängig davon, wie Sie die Flussstruktur gestalten, stellen Sie sicher, dass Sie auf Fehler eingeht. 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, der mit setChannel(), muss Sie die Selbstzuweisung für diesen Kanal in Ihrem Capgo-Dashboard aktivieren:
- Gehe in Ihrem __CAPGO_KEEP_0__-Dashboard zur Kanäle section in your Capgo dashboard
- Klicke auf den Kanalnamen, den Sie verwalten möchten
- Aktiviere „Zulassen, dass Geräte sich selbst zuweisen“
- Speichern Sie die Änderungen

Das ist alles. Keine Konfigurationsänderungen erforderlich in Ihrer App. Keine defaultChannel Einstellung erforderlich. Aktivieren Sie einfach die Selbstzuweisung auf den Kanälen, auf die Sie möchten, dass Benutzer wechseln können.
Wenn diese Einstellung deaktiviert ist, versagen alle Versuche, setChannel() mit diesem Kanal aufzurufen und das channelPrivate Event wird ausgelöst.
Verfügbare Kanäle auflisten
Sie können die Liste der verfügbaren Kanäle für die 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);
Wieder auf Default-Kanal zurückkehren
Um den Kanal-Übertrag zu entfernen und auf den Default zurückzukehren:
await CapacitorUpdater.unsetChannel({});
Dies löst die Verbindung des Geräts von jedem speziell zugewiesenen Kanal, wodurch es auf den defaultChannel im Ihrer Konfiguration oder den Cloud-Standard zurückfällt.
Kanal-Surfen testen
Um Kanal-Surfen 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 statt, was den normalen Update-Flow umgeht.
Voraussetzungen
Die einzige Anforderung für Kanal-Surfen ist die Aktivierung von “Zulassen, dass Geräte sich selbst verbinden” auf jedem Kanal, den Sie für das Wechseln zulassen möchten. Keine Konfigurationsänderungen sind in Ihrer App erforderlich.
Test-Build erstellen
Bauen Sie Ihre App wie gewohnt:
bun run build && npx cap sync
Erstellen Sie dann 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
Einmal die App 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
Dort navigieren Sie dann zu Ihrer Kanal-Überwachungs-UI in der App und lösen den Kanalwechsel aus. Die App sollte das Update vom ausgewählten Kanal abrufen und in die neue Version neu laden.
Einrichten eines Kanalwechsel-UI
Kanal-Überwachung 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 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 Kanal-Überwachung, aber sie werden schnell sichtbar, sobald Sie Kanäle während der Ausführung umschalten.
Versionen 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 bei Kanal-Überwachung umschalten, zeigt sich dies normalerweise als App, die Kanäle wechselt, aber kein Update angewendet wird, obwohl eines auf diesem Kanal existiert.
This bedeutet normalerweise, dass die Aktualisierung aus einer anderen nativen Version der App veröffentlicht wurde. Stellen Sie sicher, dass das Paket Ihres Kanals mit der nativen Version auf dem Gerät kompatibel ist.
Entfernen oder Rückschritt bei 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 Downloads. zukünftige Die zuverlässigste Methode, um ein schlechtes Update rückgängig zu machen, besteht darin, ein bekannt-gutes Update zu demselben Kanal zu veröffentlichen. Dies erstellt ein neues Update an der Spitze der Kanalgeschichte, das Clients als neueste Version behandeln und anstatt dessen anwenden.
__CAPGO_KEEP_0__ bietet auch eine Rückschrittmethode an, die Clients anweist, eine vorherige stabile Aktualisierung erneut anzuwenden oder auf die in der Konstruktion eingebaute Aktualisierung zurückzufallen.
Capgo also provides a rollback mechanism that can instruct clients to re-apply a previous stable update or fall back to the update embedded in the build.
Das Wechseln der Kanäle ändert das JavaScript-Paket, 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.
Ein Beispiel dafür ist, wenn eine Beta-Aktualisierung eine Datenbankmigration anwendet, die die Produktionsversion nicht versteht. Entwickler sollten sicherstellen, dass ihre Updates sicher sind, um zwischen ihnen hin und her zu wechseln, oder die Wechselrichtung einschränken, wenn erforderlich.
Wie das Surfen zwischen Kanälen die mobile Iteration verbessert
Das Surfen zwischen Kanälen ist besonders nützlich, wenn Sie schnell Änderungen in einer Produktionsumgebung überprüfen müssen.
__CAPGO_KEEP_0__
Schnelle Validierung
Stellen Sie sich vor, ein dringender Bug-Fix, der vor der Veröffentlichung auf breite Ebene validiert werden muss. Mit dem Channel-Surfen kann die Änderung auf eine kleine Gruppe von Benutzern beschränkt werden, die sie vor der Produktion überprüfen können.
Stakeholder-Bewertung
Ein Produktbesitzer oder QA-Mitarbeiter kann seine installierte Produktionsversion auf eine andere Aktualisierungs-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 Bewertung und Entscheidungsfindung einzubinden, während der Workflow glatt bleibt. Ein einzelnes Produktionsbuild wird zu einem flexiblen Werkzeug für Tests, Feedback und Validierung.
Anwendungsbereiche
- QA-Tests: Lassen Sie die QA-Team zwischen Feature-Zweigen umschalten
- Betaversionen: Benutzer wählen sich für die Beta-Kanal für frühen Zugriff aus
- Stakeholder-Bewertung: Produktbesitzer können sich vor der Veröffentlichung an Änderungen ansehen
- A/B-Test: Benutzer werden verschiedenen Kanälen zugeordnet, um Experimente durchzuführen
- Debugging: Ein bestimmter Benutzer wird in einen Debug-Kanal umgestellt, um Probleme zu diagnostizieren
Vergleich: Kanälabänderungsmethoden
| Method | Effektzeit | Persistiert an | Verwendungsfall |
|---|---|---|---|
setChannel() von Plugin |
Instant | Gerät nur (lokal) | Benutzerinitiierte Kanalwechsel in der App |
| Übernahme von Geräten im Dashboard | bis zu 2 min | Backend-Datenbank | Administratorinitiierte Änderungen für bestimmte Geräte |
| API Kanalzuweisung | bis zu 2 min | Backend-Datenbank | Automatisierte Backend-Integrationen |
Für die beste Benutzererfahrung bei der Erstellung von Kanalwechsel-UIs, verwenden Sie immer die Methode des Plugins. setChannel() __CAPGO_KEEP_0__
Best Practices
- Zugriffsbeschränkung: Bei der Channel-Surfing ist es üblich, dass es für interne Verwendung ist - vermeide es, es allen Benutzern zugänglich zu machen
- Fehlerbehandlung: Behandle Fehler immer geschickt, wenn du zwischen Kanälen wechselst
- Kompatibilitätsprüfung: Stelle sicher, dass Updates auf verschiedenen Kanälen mit der installierten native Version kompatibel sind
- Dokumentation von Kanälen: Halte eine klare Dokumentation davon, was jeder Kanal für ist
- Verwendung überwachen: Verfolge, welche Geräte auf welchen Kanälen sind, für Debugging
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 des sofortigen Kanalwechsels 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 bietet Ihnen die Flexibilität, dem richtigen Update den richtigen Benutzer zur richtigen Zeit zu liefern.
Weiterlesen 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 for Capgo: How to Switch Update Channels at Runtime Channel Surfing für __CAPGO_KEEP_0__: Wie Sie Update-Kanäle bei Laufzeit umschalten Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in Versionziel-Lösung.