Zum Hauptinhalt springen
Anleitung

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

Versenden Sie Änderungen an bestimmten Benutzern sofort mit Capgo's Laufzeitkanalwechsel. Wechseln Sie Update-Kanäle ohne Ihre Capacitor-App neu zu installieren.

Artikelcredits

Martin Donadieu

Schreiber

Valeria

Rezensent

Jordan

Redakteur

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

Stellen Sie sich vor, Sie könnten eine Änderung direkt an einen bestimmten Benutzer senden, damit er sie sofort überprüfen und Feedback geben kann - ohne dass er ein neues Build von TestFlight oder Google Play herunterladen und installieren muss?

Ich hatte Kunden, die Verbesserungen wünschten, 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 einstelliges Build speziell für den Kunden zu erstellen (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 es angebracht ist.

Es gab keine Möglichkeit, ein Produktionsbuild in einen Work-in-Progress-Status zu wechseln, Feedback zu sammeln und dann wieder in den Produktionsstatus zurückzukehren.

Das ist, was Kanalwechsel ermöglicht. Eine auf einem Gerät installierte App kann bei Laufzeit die Update-Kanäle 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.

Update-Kanäle verstehen

Update-Kanäle sind die Weise, wie Capgo Updates an bestimmte Builds richtet. Jeder Build ist mit einem Kanal verbunden, und dieser Kanal bestimmt, welche Updates er erhält.

Zum Beispiel können Sie Updates für ein preview Kanal ohne die Benutzer auf productionIn der Vergangenheit war das Wechseln von Kanälen eine Installation einer anderen nativen Build oder eine manuelle Änderung der Gerätezuweisungen über das Dashboard erforderlich.

Kanäle in Capgo ermöglichen Ihnen:

  • Zielgruppen mit unterschiedlichen Funktionen anzusprechen
  • Lauf A/B-Tests, indem Sie Benutzer verschiedenen Kanälen zuweisen
  • Neue Funktionen allmählich einzuführen
  • Beta-Testprogramme zu erstellen
  • Produktionsprobleme mit einzelnen Benutzern zu debuggen

Wenn Sie sich nicht mit Updatekanälen auskennen, bietet die Capgo Kanäldokumentation eine detailliertere Erklärung.

Was ist Channel-Surfen?

Channel-Surfen ermöglicht es einer installierten App, von verschiedenen Update-Streams ohne Neuinstallation zu pullen. 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 eine production Version auf einen preview channel, probieren Sie die neuesten Änderungen aus. Wenn sie mit den Tests fertig sind, wechseln sie wieder zurück production zurückwechseln. Eine Neuinstallation oder ein separates Preview-Build sind nicht erforderlich.

Unter der Haube arbeitet Channel-Surfen, indem die App dem Updates-Client mitteilt, welchen Kanal verwenden soll. Diese Wahl kann jederzeit geändert und bleibt bis zum Löschen oder Ersetzen wirksam.

Wie Channel-Surfen implementieren

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

The only setup required for channel surfing is enabling “Allow devices to self associate” on each channel you want to switch to in the Capgo dashboard. Keine code Änderungen oder Konfigurationsanpassungen erforderlich.

Am Kernpunkt besteht das Channel-Surfen aus einer einzelnen API-Aufruf:

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

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

Dies setzt den Channel, der bei der Abfrage von Capgo für Updates verwendet wird. Erfahren Sie mehr über den setChannel API.

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() wirkt sich anders und viel schneller:

  1. Hintergrundvalidierung (lesen-only): Ein Anfrage wird an den Capgo-Hintergrund gesendet, um die Zulässigkeit des Channels zu überprüfen
  2. Lokale Speicheraktualisierung: Wenn die Überprüfung erfolgreich ist, wird der Channel im Gerätespeicher gespeichert
  3. Sofortige Wirkung: Die nächste Aktualisierungskontrolle verwendet den neuen Kanal sofort.

Zuvor, setChannel() speicherte die Kanalüberlagerung im Backend-Datenbank (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 die nächste 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.

Eine typische Flussfolge sieht wie folgt aus:

  1. Den Kanal ändern (setChannel)
  2. Nach einer Aktualisierung suchen (getLatest)
  3. Die Aktualisierung herunterladen und anwenden (download, set oder next)
  4. Wiederholen Sie die Anwendung, wenn erforderlich ("reload)

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 auf 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 ermöglichen. Bevor Ihre App auf einen Kanal wechseln kann setChannel()Sie müssen die Selbstzuweisung für diesen Kanal im Capgo-Dashboard aktivieren.

  1. Kanäle Channels Abschnitt in Ihrem Capgo Dashboard
  2. Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
  3. Enable Speichern Sie die Änderungen
  4. Speichern Sie die Änderungen

Selbstzuweisung in den Kanal-Einstellungen aktivieren

Das ist alles. Keine Änderungen in Ihrer App erforderlich. defaultChannel Einstellung erforderlich. Aktivieren Sie einfach die Selbstzuweisung auf den Kanäle, die Sie möchten, dass Benutzer wechseln können.

Wenn diese Einstellung deaktiviert ist, versucht jeder Aufruf setChannel() mit diesem Kanal wird fehlschlagen und der channelPrivate Verfügbare Kanäle auflisten

Verfügbare Kanäle auflisten

Dies gibt nur Kanäle zurück, bei denen die Selbstzuweisung aktiviert ist.

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.

Aktuelles Kanal abrufen

Überprüfen Sie, welcher Kanal dem Gerät derzeit zugewiesen ist:

const { channel } = await CapacitorUpdater.getChannel();

console.log('Current channel:', channel);

Rückkehr zur Standardkanal

Um die Kanalüberlagerung zu entfernen und auf die Standardwerte zurückzukehren:

await CapacitorUpdater.unsetChannel({});

Dies löst das Gerät von jedem spezifisch zugewiesenen Kanal, sodass es auf die 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 - die @capgo/capacitor-updater API ist für Release-Builds konzipiert. In Debug-Builds lädt die App normalerweise JavaScript von einem Entwicklungsserver, was den normalen Update-Flow umgeht.

Voraussetzungen

Die einzige Anforderung für Channel-Surfing ist die Aktivierung ‘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 einer Testversion

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 startet auf derjenigen Kanal, die als Cloud-Standard in Ihrem Capgo-Dashboard eingestellt ist.

Veröffentlichung von Updates auf verschiedenen Kanälen

Nachdem die App installiert wurde, 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 aus navigieren Sie zu Ihrer Kanal-Übersicht in der App und aktivieren den Kanal-Wechsel. Die App sollte das Update vom ausgewählten Kanal abrufen und neu laden.

Erstellung eines Kanal-Wechsel-UI

Kanal-Übersicht ist normalerweise nur für eine begrenzte Anzahl von Benutzern sichtbar und nicht für alle Benutzer 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 wechselt.

Ein Beispiel für eine React-Komponente für einen Kanal-Wechseler:

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 das Wechseln von Kanälen, aber sie werden schnell offensichtlich, sobald Sie mit dem Wechseln von Kanälen bei Laufzeit beginnen.

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 wechseln, zeigt sich dies normalerweise als die App wechselt die Kanäle, aber kein Update wird angewendet, obwohl eines auf diesem Kanal existiert.

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

Entfernen oder Rückgängig machen von 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. future downloads.

__CAPGO_KEEP_0__ bietet auch eine Rückschaltmechanismus an, der Clients anweist, eine vorherige stabile Update zu wiederholen oder auf das Update zurückzufallen, das im Build eingebettet ist.

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.

Datenmigrationserwägungen

Switching channels changes the JavaScript bundle the app runs. If your app depends on migrations or data shapes that are not compatible across channels, switching back and forth may cause issues.

For example, if a beta update applies a database migration, the production version might not understand the new schema. Developers should ensure their updates remain safe to switch between or restrict switching to one direction when needed.

Warum Channel-Surfen die mobile Iteration verbessert

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

Rapid Validation

Stellen Sie sich vor, ein dringender Bug-Fix, der vor der Veröffentlichung in einem kleinen Kreis von Benutzern getestet werden muss, bevor er in die Produktion geht.

Stakeholder-Bewertung

Ein Produktbesitzer oder QA-Experte kann ihre installierte Produktionsversion in einen anderen Update-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 die Bewertung und Entscheidungsfindung einzubeziehen, während der Workflow glatt bleibt. Ein einzelnes Produktionsbuild wird zu einem flexiblen Werkzeug für Tests, Feedback und Validierung.

Use Cases

  • Qualitätsprüfung: Lassen Sie die QA-Team zwischen Feature-Zweigen umschalten
  • Betaversionen: Benutzer wählen sich für eine frühe Zugriffsmöglichkeit
  • Stakeholder-Bewertung: Produktbesitzer prüfen Änderungen vor der Veröffentlichung
  • A/B-Testung: Benutzer zu verschiedenen Kanälen für Experimente zuweisen
  • Debugging: Ein bestimmter Benutzer auf ein Debug-Kanal umschalten, um Probleme zu diagnostizieren

Vergleich: Kanälabwechselmethoden

Method Effektzeit Persistiert an Anwendungsfall
setChannel() vom Plugin von Plugin Gerät nur (lokal) Benutzerinitiierte Wechsel des Kanals in der App
Übergeordneter Geräte-Übertrag 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 Wechsel-Kanälen, verwenden Sie immer die Methode des Plugins. setChannel() Empfehlungen

Best Practices

  1. ZugriffsbeschränkungChannel-Surfing dient normalerweise der internen Verwendung - vermeide es, es allen Benutzern zugänglich zu machen
  2. Fehlerbehandlung: Behandle Fehler immer freundlich, wenn man zwischen Kanälen wechselt
  3. Kompatibilitätsprüfung: Stelle sicher, dass Updates auf verschiedenen Kanälen mit der installierten nativen Version kompatibel sind
  4. Kanal-Dokumentation: Halte eine klare Dokumentation darüber, wofür jeder Kanal ist
  5. Benutzungsüberwachung: Verfolge, 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 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 mit bestimmten Benutzern debuggen, das Channel-Surfen bietet Ihnen die Flexibilität, das richtige Update an den richtigen Benutzer zur richtigen Zeit zu liefern.

Fortsetzen Sie mit Channel Surfing für Capgo: Wie Sie Update-Kanäle bei Laufzeit umschalten

Wenn Sie Capgo verwenden Channel-Surfing für Capgo: Wie Sie Update-Kanäle bei Laufzeit umschalten um die Kanalrouting und die geplante Rollout zu planen, verbinden Sie es mit context Für die Implementierungsdetails in den Kanälen, Kanäle Für die Implementierungsdetails in den Kanälen, Kanäle Für die Implementierungsdetails in den Kanälen, Beta-Testlösung Für die Produktworkflow in der Beta-Testlösung, und Lösung für Zielversionen Für die Produktworkflow in der 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 App-Store-Zulassung zu warten. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Menschliche Unterstützung von Martin

Los geht's jetzt

Neueste von unserem Blog

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