Zum Hauptinhalt springen
Tutorial

Channel Surfing für Capgo: Wie man bei Laufzeit Update-Kanäle wechselt

Schicken Sie Änderungen an bestimmte Benutzer sofort mit Capgo's Laufzeit-Channel-Wechsel. Wechseln Sie Update-Kanäle ohne Ihre Capacitor-App neu zu installieren.

Martin Donadieu

Martin Donadieu

Content-Marketing-Beauftragter

Channel Surfing für Capgo: Wie man bei Laufzeit Update-Kanäle wechselt

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?

Ich habe Kunden haben, die Anfragen gestellt haben, die ich schnell umsetzen konnte, aber das Einbringen der Ergebnisse in ihre Hände, um diese zu validieren, bedeutete, ein Update an alle Benutzer zu verschicken (risikant für einen experimentellen Änderung) oder ein einstelliges 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, unterschiedliche Updates an unterschiedliche Gruppen von Benutzern zu liefern, wie z.B. nicht-technische Stakeholder, QA oder die gesamte Benutzerbasis, wenn dies angemessen ist.

Es gab keine Möglichkeit, eine Produktionsversion zu wechseln, Feedback zu sammeln und dann wieder zur Produktionsversion zurückzukehren.

Das ist, was Fernsehprogrammwechsel ermöglicht. Eine auf einem Gerät installierte App kann den Updatekanal bei Laufzeit wechseln, eine 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.

Updatekanäle verstehen

Updatekanäle sind die Weise, wie Capgo Ziele für Updates an bestimmte Builds setzt. Jedes Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates es erhalten wird.

Beispiel: Sie können Updates an einen preview Kanal veröffentlichen, ohne Benutzer aufzuwerten, die auf production. In der Vergangenheit war das Umstellen der Kanäle mit dem Installieren eines anderen nativen Builds oder dem manuellen Ändern der Gerätezuweisungen über das Dashboard verbunden.

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, liefert die Capgo Kanäldokumentation eine detailliertere Erklärung.

Was ist Channel Surfing?

Channel Surfing ermöglicht es einem 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 ä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 Build auf, zum Beispiel, einen production Kanal umschalten und die neuesten Änderungen ausprobieren kann. Wenn sie mit dem Testen fertig sind, schalten sie wieder auf preview zurück. Es ist keine Neuinstallation oder ein separates Preview-Build erforderlich. production Unter der Haube funktioniert das Kanalsurfen, indem das Applet dem Updates-Client mitteilt, welchen Kanal verwenden soll. Diese Wahl kann während der Laufzeit geändert und bleibt bis zur Löschung oder Ersetzung gültig.

Wie man Kanalsurfen implementiert

Bevor Sie Kanalsurfen ausprobieren können, muss Ihr Projekt mit __CAPGO_KEEP_0__ Live Updates konfiguriert sein. Um das aufzusetzen, folgen Sie der

Capgo Schnellstartanleitung Die einzige erforderliche Einstellung für Kanalsurfen ist die Aktivierung der Option „Zulassen, dass Geräte sich selbst assoziieren“ auf jedem Kanal, den Sie umschalten möchten, im Capgo Dashboard..

Keine Capgo Änderungen oder Konfigurationsanpassungen erforderlich darüber hinaus. Im Kern wird das Kanalsurfen durch eine einzelne code-Anruferung angetrieben:

Dies setzt den Kanal fest, der verwendet wird, wenn API nach Updates abgefragt wird.

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({ channel: 'your-channel' });

This sets the channel that is used when querying Capgo for updates. Mehr über die setChannel API erfahren.

Schneller Wechsel des Kanals (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() funktioniert anders und viel schneller:

  1. Hintergrundvalidierung (readonly): Ein Anfrage wird an den Capgo-Hintergrund gesendet, um die Zulässigkeit des Kanals zu validieren
  2. Lokale Speicheraktualisierung: Wenn die Validierung 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überschreitung im 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 erkannt 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 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 die ausgewählte Kanal-Update landet.

Eine typische Flussansicht sieht wie folgt aus:

  1. Kanal ändern (setChannel)
  2. Nach Updates suchen (getLatest)
  3. Update herunterladen und anwenden (download, set oder next)
  4. App neu laden, wenn erforderlich (reload)

Ein vollständiges Beispiel lautet:

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 Struktur dieses Flusses liegt Ihnen überlassen. 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 achten. 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 zu einem Kanal wechseln kann, der mit "," verwendet wird, müssen Sie die Selbstzuweisung für diesen Kanal in Ihrem __CAPGO_KEEP_0__-Dashboard aktivieren: setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. Kanäle Sektion in Ihrem __CAPGO_KEEP_0__-Dashboard section in your Capgo dashboard
  2. Aktivieren Sie
  3. Enable Zulassen Sie Geräten, sich selbst zuzuweisen"
  4. Speichern Sie die Änderungen

Aktivieren Sie die Selbstzuweisung in den Kanal-Einstellungen

Das ist es. Keine Konfigurationsänderungen erforderlich in Ihrer App. defaultChannel Einstellung erforderlich. Aktivieren Sie die Selbstzuweisung nur auf den Kanälen, auf die Benutzer umschalten möchten.

Wenn diese Einstellung deaktiviert ist, wird jeder Versuch, diesen Kanal zu verwenden, fehlschlagen und das Ereignis wird ausgelöst. setChannel() Listing verfügbarer Kanäle channelPrivate 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.

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:

Zurücksetzen auf den Standardkanal

Um die Kanalüberschreibung zu entfernen 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, sodass es auf den Standard zurückfällt.

This unlinks the device from any specifically assigned channel, causing it to fall back to the __CAPGO_KEEP_0__.

await CapacitorUpdater.unsetChannel({});

If this setting is disabled, any attempt to call __CAPGO_KEEP_1__ with this channel will fail and the __CAPGO_KEEP_2__ will fire. 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

“Zulassen, dass Geräte sich selbst verbinden” auf jeder Kanal, den Sie zum 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 Ihre 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 in 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

Von dort navigieren Sie zu Ihrer Kanal-Surfing-UI 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-Surfing ist normalerweise etwas, das Sie nur einem begrenzten Satz 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 Vorschaukanal 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-Surfing, aber sie werden schnell sichtbar, sobald Sie Kanäle während der Laufzeit 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 der Laufzeit Kanäle umschalten, zeigt sich dies normalerweise als die App die Kanäle wechselt, aber kein Update angewendet wird, obwohl eines auf diesem Kanal existiert.

Das bedeutet normalerweise, dass das Update von einer anderen native Version der App veröffentlicht wurde. Stellen Sie sicher, dass das Bundle Ihres Kanals mit der native Version kompatibel ist, die auf dem Gerät installiert ist.

Ein Update 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-Oberfläche es nicht von Geräten, die es bereits haben. Die Löschung stoppt nur die Herunterladung von neuen Geräten. Zukunft downloads.

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 anstatt dessen 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-Bündel, 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.

Wie 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 Benutzern beschränkt werden, die sie vor der Veröffentlichung überprüfen können.

Stakeholder-Überprüfung

A Produktbesitzer oder QA kann ihre installierte Produktionsversion in einen anderen Updatekanal 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. Ein einzelnes Produktionsbuild wird zu einem flexiblen Werkzeug für Tests, Feedback und Validierung.

Anwendungsbereiche

  • QA-Testen: Lassen Sie die QA-Team zwischen Featurezweigen umschalten
  • Betaversionen: Benutzer wählen sich für eine frühe Zugriffsmöglichkeit
  • Stakeholder-Bewertung: Produktbesitzer präsentieren Änderungen vor der Veröffentlichung
  • A/B-Testen: Zuweisen von Benutzern zu verschiedenen Kanälen für Experimente
  • Fehlersuche: Ein bestimmtes Benutzerkonto auf ein Debug-Kanal umschalten, um Probleme zu diagnostizieren

Vergleich: Kanaländerungsverfahren

MethodeWirkungszeitWo persistiertVerwendungsfall
setChannel() von PluginEchtzeitGerätespezifisch (lokale)Benutzerinitiierte Kanalwechsel in der App
Geräteübersicht - Übertragungbis zu 2 minHintergrund-DatenbankAdmin-gesteuerte Ä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 internen Gebrauch vorgesehen - vermeiden Sie es, es allen Benutzern zugänglich zu machen
  2. Fehler behandeln: Fehler immer dann geschickt und behandelnd, wenn sich die Kanäle ändern
  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: Überwache, welche Geräte auf welchen Kanälen sind, 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 Testung, Validierung und schnelle Iteration.

Mit der Einführung des sofortigen Channel-Wechselns 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 bei bestimmten Benutzern debuggen, das Channel-Surfen bietet Ihnen die Flexibilität, dem richtigen Update den richtigen Benutzer zur richtigen Zeit zu liefern.

Weiterhin aus Channel Surfing für Capgo: Wie man Update-Kanäle bei Laufzeit umschaltet

Wenn Sie Channel Surfing für Capgo: Wie man Update-Kanäle bei Laufzeit umschaltet zum Planen von Kanalrouten und der gestuften Veröffentlichung verwenden, verbinden Sie es mit Kanälen für die Implementierungsdetails in Kanälen, 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 Web-Schicht-Bug live ist, liefern Sie die Reparatur über Capgo anstatt Tage auf die Genehmigung der App-Stores zu warten. 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.