Zum Hauptinhalt springen
Tutorial

Channel Surfing für Capgo: Wie Sie bei Laufzeit die Update-Kanäle wechseln können

Versenden Sie Änderungen an spezifischen Benutzern sofort mit Capgo's Laufzeit-Wechsel der Update-Kanäle. Wechseln Sie die Update-Kanäle ohne Ihre Capacitor-App neu zu installieren.

Martin Donadieu

Martin Donadieu

Content-Marketing-Beauftragter

Channel Surfing für Capgo: Wie Sie bei Laufzeit die Update-Kanäle wechseln können

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:

  1. Hintergrundvalidierung (readonly): Ein Anfrage wird an den Capgo-Backend gesendet, um zu überprüfen, ob der Kanal erlaubt ist
  2. Lokale Speicheraktualisierung: Wenn die Überprüfung erfolgreich ist, wird der Kanal im Gerätespeicher gespeichert
  3. 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:

  1. Kanal ändern (setChannel)
  2. Nach Update prüfen (getLatest)
  3. Update herunterladen und anwenden (download, set oder next)
  4. 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

  1. Kanäle Sektion section in your Capgo dashboard
  2. Aktiviere
  3. „Zulassen, dass Geräte sich selbst zuweisen“ Speichere die Änderungen
  4. Aktiviere die Selbstzuweisung in den Kanal-Einstellungen

Das ist es. Keine Konfigurationsänderungen erforderlich in Ihrer App.

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

MethodeEffektzeitWo persistiertVerwendungsfall
setChannel() aus PluginEchtzeitGerät nur (lokal)Benutzerinitiiertes Wechseln des Kanals in-app
Überprüfung des Geräts im Dashboardbis zu 2 minHintergrund-DatenbankAdministrativ initiierte Änderungen für bestimmte Geräte
API-Kanalzuweisungbis zu 2 minHintergrund-DatenbankAutomatisierte 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

  1. : 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
  2. Fehler behandeln: Fehler immer dann elegant handhaben, wenn sich das Kanal wechselt
  3. Kompatibilität überprüfen: Stelle sicher, dass Updates auf verschiedenen Kanälen mit der installierten nativen Version kompatibel sind
  4. Dokumentation der Kanäle: Dokumentiere die Kanäle klar und deutlich, damit jeder weiß, was sie für was sind
  5. Verwendung überwachen: Verfolge, welche Geräte auf welchen Kanälen laufen, um beim Debugging zu helfen

Ressourcen

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.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Weblayer lebt, liefern Sie die Reparatur über Capgo und nicht Tage warten, bis die App-Store-Zulassung vorliegt. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Los geht's

Neuestes aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobile App zu erstellen.