Zum Hauptinhalt springen
Tutorial

Kanalwechsel für Capgo: Wie Sie Update-Kanäle bei Laufzeit umschalten

Mit Capgo können Sie Änderungen an bestimmten Benutzern sofort bereitstellen. Wechseln Sie die Update-Kanäle ohne Ihre Capacitor-App neu zu installieren.

Martin Donadieu

Martin Donadieu

Content-Marketing-Beauftragter

Kanalwechsel für Capgo: Wie Sie Update-Kanäle bei Laufzeit umschalten

Haben Sie sich schon einmal gewünscht, eine Änderung direkt an einen bestimmten Benutzer zu liefern, damit er sie sofort überprüfen und darauf reagieren kann, ohne dass er eine neue Version von TestFlight oder Google Play herunterladen und installieren muss?

Ich habe Kunden gehabt, die Verbesserungen verlangt haben, die ich schnell umsetzen konnte, aber es bedeutete, dass ich eine Aktualisierung an alle Benutzer schicken musste (was für einen experimentellen Änderung riskant ist) oder eine einmalige Version für den Kunden erstellen musste (was für beide von uns eine Mühe war).

Was fehlte war Flexibilität. Entwickler wollten verschiedene Updates an verschiedene Benutzergruppen liefern können, wie z.B. nicht-technische Stakeholder, QA oder die gesamte Benutzerbasis, wenn es angebracht ist.

There war kein Weg für eine Produktionsversion, auf eine WIP-Version umzuschalten, Feedback zu sammeln und dann wieder auf die Produktionsversion zurückzukehren.

Das ist, was Kanalwechsel ermöglicht. Eine auf einem Gerät installierte App kann den Updatekanal während der Ausführung ändern, eine Produktionsapp in einen flexiblen Raum für die Überprüfung und Iteration verwandeln anstatt in einen festen Endpunkt. Dies ist insbesondere für nicht-technische Stakeholder, die mit Produktionsanwendungen arbeiten, nützlich, indem sie Änderungen testen und direkt im bereits installierten App Feedback geben können.

Updatekanäle verstehen

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

Beispielsweise können Sie Updates in einen preview Kanal veröffentlichen, ohne die Benutzer auf productionzu beeinflussen. In der Vergangenheit war ein Wechsel der Kanäle ein Installieren eines anderen native Builds oder das Manuell Ändern der Gerätezuweisungen über das Dashboard erforderlich.

Kanäle in Capgo ermöglichen Ihnen:

  • Wichtige Funktionen für bestimmte Benutzergruppen zu targeten
  • A/B-Tests durchzuführen, indem Sie Benutzer verschiedenen Kanälen zuweisen
  • Neue Funktionen sukzessive bereitstellen
  • Beta-Testprogramme erstellen
  • Produktionsprobleme mit einzelnen Benutzern debuggen

Wenn Sie sich nicht mit Update-Kanälen auskennen, behandelt die Capgo Dokumentation zu den Kanälen diese Thematik im Detail. Was ist Channel-Surfen?

Channel-Surfen ermöglicht es einer installierten App, von verschiedenen Update-Strömen zu pullen, ohne dass sie neu installiert werden muss. Eine installierte App kann das Update-Kanal wechseln, sobald sie gestartet wird, 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

Build auf ein production Kanal umschalten kann, um z.B. 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 In der Praxis bedeutet dies, dass ein Produktbesitzer oder QA-Tester ein Build auf ein anderes Channel umschalten kann, um z.B. die neuesten Änderungen auszuprobieren. Wenn sie mit der Testung fertig sind, schalten sie wieder auf das ursprüngliche Channel zurück.

Unter der Haube funktioniert das Fernsehen von Kanälen, indem das App den Updates-Client wissen lässt, welchen Kanal verwenden soll. Diese Wahl kann während der Laufzeit geändert werden und bleibt bis sie gelöscht oder durch eine andere ersetzt wird.

Wie man Channel-Surfing implementiert

Bevor Sie Channel-Surfing ausprobieren können, muss Ihr Projekt mit Capgo Live Updates konfiguriert sein. Um das aufzusetzen, folgen Sie bitte der Capgo Schnellstartanleitung.

Für Channel-Surfing ist nur die Aktivierung der Option 'Zulassen, dass Geräte sich selbst verbinden' auf jedem Kanal, den Sie wechseln möchten, in der Capgo-Oberfläche erforderlich. Keine code-Änderungen oder Konfigurationsanpassungen erforderlich.

Im Kern wird Channel-Surfing durch eine einzelne API-Anruferanforderung 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 über die setChannel API.

Instant Channel Switching (ab v5.34.0+)

Ab 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 (lesen nur): Ein Anfrage wird an den Capgo-Backend gesendet, um zu überprüfen, ob der Kanal erlaubt ist
  2. Lokales Speicher aktualisieren: Wenn die Validierung erfolgreich ist, wird der Kanal im Gerätespeicher gespeichert
  3. Echtzeit-Effekt: Die nächste Überprüfung auf Updates verwendet den neuen Kanal sofort

Zuvor setChannel() hatte der Kanal-Übertrag gespeichert, um den Backend-Datenbank (wie Dashboard oder API-Änderungen) zu speichern. Die Geräte mussten auf Backend-Replikation (bis zu 2 Minuten) warten, bevor der neue Kanal anerkannt wurde. Die neue Verhaltensweise liest nur aus dem Backend (für die Validierung) und speichert lokal, was den Kanal-Wechsel sofort macht.

Vollständiger Kanal-Wechsel-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 dem ausgewählten Kanal landet.

Ein typischer Flow sieht wie folgt aus:

  1. Den Kanal ändern (setChannel)
  2. Nach einer Aktualisierung suchen (getLatest)
  3. Die Aktualisierung abrufen und anwenden (download, set oder next)
  4. Das App-Programm neu laden, wenn nötig (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, liegt Ihnen überlassen. Sie könnten diese Schritte über mehrere Interaktionen aufteilen oder sie alle auf einmal ausführen. Unabhängig davon, wie Sie die Flussstruktur gestalten, müssen Sie sicherstellen, dass Sie auf Fehler reagieren. 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, muss sie für den Kanal in der __CAPGO_KEEP_0__-Oberfläche Selbstzuweisung aktiviert haben: setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. Go to the Kanäle Abschnitt in Ihrem Capgo-Dashboard
  2. Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
  3. Aktivieren „Zulassen, dass Geräte sich selbst zuordnen“
  4. Speichern Sie die Änderungen

Aktivieren Sie die Selbstzuordnung in den Kanal-Einstellungen

Das ist alles. Keine Konfigurationsänderungen erforderlich in Ihrer App. Nein defaultChannel Keine Einstellung erforderlich. Aktivieren Sie einfach die Selbstzuordnung auf den Kanälen, auf denen Benutzer wechseln dürfen.

Wenn diese Einstellung deaktiviert ist, versagt jeder Versuch, auf setChannel() mit diesem Kanal aufzurufen, und das channelPrivate Ereignis wird ausgelöst.

Verfügbare Kanäle auflisten

Sie können die Liste der verfügbaren Kanäle für 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);

Zurücksetzen auf Standardkanal

Um die Kanalübernahme aufzuheben und auf den Standard zurückzukehren:

await CapacitorUpdater.unsetChannel({});

Dies löst das Gerät von einem spezifisch zugewiesenen Kanal ab, sodass es auf den defaultChannel in Ihrer Konfiguration oder im Cloud-Standard zurückfällt.

Kanalwechsel testen

Um den Kanalwechsel 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 ab, was den normalen Update-Flow umgeht.

Voraussetzungen

Die einzige Anforderung für das Fernsehen von Kanälen besteht darin, dass Sie „Zugriff auf Geräte ermöglichen, dass sie sich selbst verbinden“ auf jedem Kanal, den Sie für das Umstellen erlauben möchten. Keine Konfigurationsänderungen sind in Ihrer App erforderlich.

Erstellung eines Testbuilds

Bauen Sie Ihre App wie gewohnt:

bun run build && npx cap sync

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 Ihrem Capgo-Dashboard eingestellt ist.

Veröffentlichung von Updates auf verschiedenen Kanälen

Sobald die App installiert ist, 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

Dann navigieren Sie zu Ihrer Kanal-Übersichts-UI in der App und lösen den Kanal-Wechsel aus. Die App sollte das Update vom ausgewählten Kanal herunterladen und neu laden.

Erstellung einer Kanal-Wechsel-UI

Kanal-Übersicht 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-Versionen-Kanal umschaltet.

Ein Beispiel für eine React-Komponente für einen Kanalwechsler:

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 Probleme sind spezifisch für das Kanalwechseln, aber sie werden schnell sichtbar, sobald Sie Kanäle bei Laufzeit wechseln.

Versionenmismatches 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 beim Kanalwechseln dieses Problem beobachten, zeigt sich das, dass die App die Kanäle wechselt, aber kein Update angewendet wird, obwohl eines auf dem Kanal existiert.

Dies bedeutet normalerweise, dass das Update von einer anderen native Version der App veröffentlicht wurde. Stellen Sie sicher, dass der Kanalbundle mit der native Version auf dem Gerät kompatibel ist.

Entfernen oder Rückschaltung von Updates

Wenn eine App bereits ein Update für einen Kanal heruntergeladen hat, entfernt die Löschung dieses Updates aus dem Capgo-Dashboard es nicht von Geräten, die es bereits haben. Die Löschung stoppt nur zukünftige Downloads. Die zuverlässigste Methode, um ein schlechtes Update rückgängig zu machen, ist die Veröffentlichung eines bekannten guten Updates auf demselben Kanal. Dies erstellt ein neues Update an der Spitze der Kanalgeschichte, das Clients als neueste Version behandeln und anstelle des alten Updates anwenden. __CAPGO_KEEP_0__ bietet auch eine Rückschaltmechanik, die Clients anweist, eine vorherige stabile Update zu wiederherzustellen oder auf das Update zurückzufallen, das in der Build eingebettet ist.

__CAPGO_KEEP_0__

Capgo

Datenmigrationserwägungen

Wenn Sie das Kanalwechseln, ändert sich das JavaScript-Bundle, das die App ausführt. Wenn Ihre App auf Migrations- oder Datenformen angewiesen ist, die sich nicht über Kanäle hinweg kompatibel sind, kann das Wechseln zwischen Kanälen zu Problemen führen.

Beispielsweise könnte eine Beta-Update eine Datenbankmigration anwenden, die die Produktionsversion nicht versteht. Entwickler sollten sicherstellen, dass ihre Updates sicher sind, um zwischen oder auf eine Richtung zu wechseln, wenn erforderlich.

Warum Channel-Surfing die mobile Iteration verbessert

Channel-Surfing ist besonders nützlich, wenn Sie schnell Änderungen in einer Produktionsumgebung überprüfen müssen.

Schnelle Validierung

Stellen Sie sich vor, ein dringender Bug-Fix, der vor der Veröffentlichung überprüft werden muss. Mit Channel-Surfing kann die Änderung auf eine kleine Gruppe von Benutzern beschränkt werden, die sie überprüfen können, bevor sie in die Produktionsumgebung gelangen.

Stakeholder-Review

Ein Produktbesitzer oder QA kann seine installierte Produktionsversion auf einen anderen Update-Kanal umschalten, die Änderung oder Funktion überprüfen und dann wieder zurück umschalten, wenn er fertig ist.

Gestrahltes Testen

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 das Testen, Feedback und die Validierung.

Verwendungsfälle

  • Qualitätstestung: Lassen Sie das QA-Team zwischen Featurezweigen wechseln
  • Beta-Programme: Benutzer wählen sich für die Beta-Kanal für frühe Zugriff ein
  • Stakeholder-Überprüfung: Produktbesitzer präsentieren Änderungen vor der Veröffentlichung
  • A/B-Testung: 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: Kanalwechselmethoden

MethodeEffektzeit__CAPGO_KEEP_0__ gespeichertVerwendungsfall
setChannel() aus PluginInstantGerät nur (lokal)Benutzerinitiierte Kanalwechsel innerhalb der App
Überwachung des Geräts im Dashboardbis zu 2 minHintergrund-DatenbankAdmin-gesteuerte Änderungen für spezifische Geräte
API KanalzuweisungBis zu 2 MinutenHintergrund-DatenbankAutomatisierte Hintergrundintegrationen

Für die beste Benutzererfahrung bei der Erstellung von UIs, die Kanäle wechseln, verwenden Sie immer die Funktion des Plugins. setChannel() Methode.

Gute Praktiken

  1. Zugriff einschränken: Kanalsurfen wird normalerweise für interne Zwecke verwendet - vermeiden Sie es, es allen Benutzern zugänglich zu machen
  2. Fehler behandeln: Behandeln Sie Fehler immer freundlich, wenn Sie Kanäle wechseln
  3. Kompatibilität überprüfen: Stellen Sie sicher, dass Updates auf verschiedenen Kanälen mit der installierten nativen Version kompatibel sind
  4. DokumentationskanäleHalten Sie eine klare Dokumentation darüber, wofür jeder Kanal ist
  5. Verwendung überwachenTracken Sie, welche Geräte auf welchen Kanälen sind, um zu debuggen

Ressourcen

Zusammenfassung

Das Kanalwechseln transformiert, wie Sie an Ihrem Capacitor-Anwendungen iterieren können. Anstatt Produktionsbuilds als fixe 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 jüngsten Pluginversionen 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 überprüfen, Beta-Programme durchführen oder Probleme bei bestimmten Benutzern debuggen, das Channel-Surfen bietet Ihnen die Flexibilität, dem richtigen Benutzer das richtige Update zur richtigen Zeit zu liefern.

Live-Updates für Capacitor-Anwendungen

Wenn ein Fehler im Web-Schicht lebt, versenden Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung genehmigt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Überprüfungsverfahren bleiben.

Jetzt loslegen

Neueste aus unserem Blog

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