Vai alla sezione principale
Guida

Navigazione tra canali per Capgo: Come cambiare i canali di aggiornamento in esecuzione

Con Capgo puoi inviare modifiche ai singoli utenti istantaneamente. Cambia i canali di aggiornamento senza reinstallare l'app Capacitor.

Crediti dell'articolo

Martin Donadieu

Autore

Valeria

Recensore

Jordan

Curatore

Navigazione tra canali per Capgo: Come cambiare i canali di aggiornamento in esecuzione

Avete mai desiderato poter inviare una modifica direttamente a un utente specifico per una loro revisione e feedback immediati - senza chiedergli di scaricare e installare una nuova versione da TestFlight o Google Play?

I miei clienti mi hanno chiesto miglioramenti che ho potuto implementare velocemente, ma ottenere i risultati nelle loro mani per la validazione significava inviare un aggiornamento a tutti gli utenti (rischioso per una modifica sperimentale) o creare una versione unica specifica per il cliente (un fastidio per entrambi).

C'era bisogno di flessibilità. Gli sviluppatori volevano poter servire aggiornamenti diversi a diversi gruppi di utenti, come stakeholder non tecnici, QA o l'intera base utenti quando opportuno.

Non c'era modo per una versione di produzione di passare a una versione in corso di sviluppo, raccogliere feedback e poi tornare alla produzione.

È quello che il surfamento dei canali abilita. Un'app installata su un dispositivo utente può cambiare i canali di aggiornamento in esecuzione, trasformando un'app di produzione in uno spazio flessibile per la revisione e l'iterazione piuttosto che un punto di arrivo fissato. Questo è particolarmente utile per i stakeholder non tecnici che lavorano con app di produzione, consentendo loro di testare le modifiche e dare feedback direttamente nell'app che già hanno installato.

Capire i Canali di Aggiornamento

Il canale di aggiornamento è il modo in cui Capgo si rivolge agli aggiornamenti specifici per le versioni. Ogni versione è associata a un canale e quel canale determina gli aggiornamenti che riceverà.

Ad esempio, è possibile pubblicare aggiornamenti su un preview canale senza influenzare gli utenti su productionNegli ultimi tempi, l'aggiornamento di un canale richiedeva l'installazione di una versione nativa diversa o la modifica manuale delle assegnazioni di dispositivo tramite il pannello di controllo.

Il canale in Capgo consente di:

  • Targetizzare gruppi di utenti diversi con funzionalità diverse
  • Eseguire test A/B assegnando gli utenti a canali diversi
  • Rilasciare gradualmente nuove funzionalità
  • Creare programmi di testing beta
  • Debuggare problemi di produzione con utenti individuali

Se non sei familiarizzato con i canali di aggiornamento, la documentazione sui canali di __CAPGO_KEEP_0__ Capgo channels documentation Cosa è il Channel Surfing?

Channel surfing consente a un'app installata di estrarre da flussi di aggiornamento diversi senza reinstallare. Un'app installata può cambiare canale di aggiornamento in esecuzione e continuerà a ricevere aggiornamenti dal canale selezionato fino a quando l'app non viene disinstallata o cambiata a un altro canale.

Negli ultimi tempi, l'aggiornamento di un canale richiedeva l'installazione di una versione nativa diversa o la modifica manuale delle assegnazioni di dispositivo tramite il pannello di controllo.

In pratica, ciò significa che un proprietario di prodotto o un responsabile della qualità può cambiare un production costruito per, ad esempio, un preview canale, provare le ultime modifiche. Quando hanno finito di testare, tornano a production nuovamente. Non è necessario reinstallare o creare un build di anteprima separato.

Sotto la cappa, il navigazione tra canali funziona lasciando che l'app informi il client di aggiornamento quale canale utilizzare. Questa scelta può essere cambiata in esecuzione e rimane in vigore fino a quando non viene annullata o sostituita.

Come implementare la navigazione tra canali

Prima di poter provare la navigazione tra canali, il tuo progetto deve essere configurato con Capgo Aggiornamenti in Tempo Reale. Per configurarlo, segui il guida di avvio rapido di 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. dashboard di code.

Non sono necessarie altre modifiche o modifiche di configurazione di API.

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

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

Al suo nucleo, la navigazione tra canali è guidata da un solo chiamata di Capgo: Scopri di più sul setChannel API.

Switch Channel istantaneo (v5.34.0+)

Dalla versione del plugin 5.34.0, 6.34.0, 7.34.0 o 8.0.0 (in base alla tua versione principale), setChannel() funziona in modo diverso e molto più veloce:

  1. Validazione backend (solo lettura): Viene inviata una richiesta al backend Capgo per validare che il canale sia consentito
  2. Aggiornamento del storage locale: Se la validazione ha successo, il canale viene salvato nel storage locale del dispositivo
  3. Effetto istantaneo: La prossima verifica dell'aggiornamento utilizza immediatamente il nuovo canale

In precedenza, setChannel() ha salvato l'override del canale nel database backend (come Dashboard o API modifiche). I dispositivi dovevano attendere la replica del backend (fino a 2 minuti) prima che il nuovo canale fosse riconosciuto. Il nuovo comportamento legge solo dal backend (per la validazione) e memorizza localmente, rendendo i passaggi tra canali istantanei.

Flusso di completamento del canale

Per una migliore esperienza utente, desidererai di solito fare di più che semplicemente cambiare il canale e attendere il prossimo riavvio dell'applicazione. Un approccio comune è controllare immediatamente le aggiornamenti, scaricarli se disponibili e riavviare l'applicazione affinché l'utente atterri direttamente sull'aggiornamento selezionato del canale.

Un flusso tipico assomiglia a questo:

  1. Cambia il canale (setChannel)
  2. Controlla l'aggiornamento (getLatest)
  3. Esegui l'aggiornamento (download, set o next)
  4. Riavvia l'applicazione se necessario (reload)

Ecco un esempio completo:

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');

La struttura di questo flusso è a tua scelta. Potresti suddividere questi passaggi across multiple interazioni o eseguirli tutti contemporaneamente. A prescindere da come strutturi il flusso, assicurati di tenere conto delle eventuali eccezioni. Problemi di rete o un canale non valido possono tutti impedire l'applicazione di un aggiornamento.

L'unica richiesta: abilita l'assegnazione automatica

Per attivare la navigazione tra canali, è tutto ciò che dovete fare. Prima che il vostro app possa passare a un canale utilizzando setChannel()vi è necessario abilitare l'assegnazione automatica per quel canale nel dashboard Capgo:

  1. Vai alla Sectore dei canali sezione nel tuo dashboard Capgo
  2. Clicca sul nome del canale che desideri gestire
  3. Abilita “Consenti ai dispositivi di associarsi automaticamente”
  4. Salva le modifiche

Abilita l'assegnazione automatica nelle impostazioni del canale

Tutto qui. Nessuna modifica di configurazione è necessaria nell'app. defaultChannel impostazione obbligatoria. Basta abilitare l'assegnazione automatica sui canali che desiderate che gli utenti possano utilizzare.

Se questa impostazione è disabilitata, qualsiasi tentativo di chiamare setChannel() con questo canale fallirà e l' channelPrivate evento si attiverà.

Elenco dei Canali Disponibili

Puoi estrarre l'elenco dei canali disponibili per l'assegnazione automatica:

const { channels } = await CapacitorUpdater.listChannels();

console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI

Questo restituisce solo i canali dove l'assegnazione automatica è abilitata.

Ottieni il Canale Corrente

Controlla quale canale il dispositivo è attualmente assegnato:

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

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

Ritorna al Canale Predefinito

Per rimuovere l'override del canale e tornare al canale predefinito:

await CapacitorUpdater.unsetChannel({});

Questo disconnette il dispositivo da qualsiasi canale assegnato specificamente, causando il dispositivo a cadere nuovamente sul canale predefinito. defaultChannel nel tuo config o la cloud default.

Come testare il cambio di canale

Per vedere il cambio di canale in azione, avrai bisogno di una release build - il @capgo/capacitor-updater API è progettato per le release builds. In debug builds, l'app carica tipicamente JavaScript da un server di sviluppo al posto di questo, il che bypassa il normale flusso di aggiornamento.

Requisiti

L'unico requisito per il cambio di canale è abilitare ‘Consenti ai dispositivi di associarsi da soli’ su ogni canale che vuoi consentire lo switching. Non sono necessarie modifiche di configurazione nell'app.

Creazione di una versione di test

Costruisci l'app come di consueto:

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.

Pubblicazione di Aggiornamenti su Canali diversi

Una volta installato l'app, pubblica aggiornamenti per canali diversi:

# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview

# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production

Da lì, naviga nella tua interfaccia di navigazione dei canali nell'app e attiva il cambio canale. L'app dovrebbe scaricare l'aggiornamento dal canale selezionato e ricaricare con l'aggiornamento nuovo.

Creare un'interfaccia per il cambio canale

La navigazione dei canali è di solito qualcosa che desideri esporre a un limitato set di utenti, non a tutti gli utenti che utilizzano il tuo app. Ad esempio, potresti avere un pulsante disponibile solo per gli utenti autenticati che cambia l'app nel canale di anteprima.

Ecco un esempio di componente React per un cambio canale:

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>
  );
}

Aggiornamenti OTA (Over-The-Air) con problemi

Nessuno di questi è specifico per la navigazione dei canali, ma tendono a diventare evidenti rapidamente non appena inizi a cambiare canali in esecuzione.

Manci di versione in esecuzione

Gli aggiornamenti in Capgo sono legati alle versioni native dell'app. Se la versione nativa di un aggiornamento non corrisponde alla versione nativa dell'app installata, l'aggiornamento non verrà scaricato o applicato. Quando si naviga tra i canali, questo si manifesta spesso come l'app che cambia canali ma non viene applicato alcun aggiornamento, anche se ne esiste uno su quel canale.

Questo significa di solito che l'aggiornamento è stato pubblicato da una versione nativa diversa dell'app. Assicurati che il bundle del tuo canale sia compatibile con la versione nativa installata sul dispositivo.

Rimuovere o annullare gli aggiornamenti

Se un'app ha già scaricato un aggiornamento per un canale, cancellando quell'aggiornamento dalla dashboard Capgo non lo elimina dai dispositivi che già lo hanno. La cancellazione blocca solo future download.

Il modo più affidabile per annullare un'aggiornamento dannoso è pubblicare un aggiornamento noto come buono alla stessa canale. Questo crea un nuovo aggiornamento in cima alla storia della canale, che i clienti tratteranno come la versione più recente e applicheranno al suo posto.

Capgo fornisce anche un meccanismo di rollback che può istruire i clienti a ripetere un aggiornamento stabile precedente o a cadere indietro all'aggiornamento incorporato nella build.

Considerazioni per la migrazione dei dati

La modifica della canale cambia il bundle JavaScript che l'app esegue. Se la tua app dipende da migrazioni o forme di dati che non sono compatibili tra canali, la modifica di andata e ritorno potrebbe causare problemi.

Ad esempio, se un aggiornamento beta applica una migrazione del database, la versione di produzione potrebbe non comprendere lo schema nuovo. I sviluppatori dovrebbero assicurarsi che le loro aggiornamenti rimangano sicuri per la modifica di andata e ritorno o limitare la modifica a una sola direzione quando necessario.

Perché il surf sul canale migliora l'iterazione mobile

La navigazione tra canali è particolarmente utile quando si ha bisogno di esaminare rapidamente le modifiche in un ambiente di produzione.

Validazione rapida

Immagina un bug fix urgente che richiede la validazione prima di essere distribuito ampiamente. Con la navigazione tra canali, la modifica può essere isolata a un piccolo gruppo di utenti designati che possono esaminarla prima che raggiunga la produzione.

Revisione da parte degli stakeholder

A un produttore o un responsabile QA può passare la loro installazione di produzione a un altro canale di aggiornamento, verificare la correzione o la funzionalità e poi tornare nuovamente una volta che sono finiti.

Test Streamline

Utilizzo

context

  • Test di QA: I membri del team QA possono passare tra le branch di funzionalità
  • Programmi Beta: Gli utenti si iscrivono al canale beta per l'accesso anticipato
  • Revisione da parte degli stakeholder: I responsabili dei prodotti visualizzano le modifiche prima della release
  • Test A/B: Assegna gli utenti a canali diversi per gli esperimenti
  • Duplicazione dei bug: Passa un utente specifico a un canale di debug per diagnosticare gli errori

Confronto: Metodi di cambio canale

Metodo Tempo di effetto Salvato dove Caso d'uso
setChannel() da plugin Subito Solo dispositivo (locale) Switching del canale in-app iniziativa dell'utente
Override del dispositivo del dashboard Finale 2 min Database del backend Cambiamenti iniziali dell'amministratore per dispositivi specifici
Assegnazione del canale API Finale 2 min Database del backend Integrazioni di backend automatizzate

Per ottenere il miglior esperienza utente quando si costruiscono UI per il cambio di canale, utilizzare sempre il metodo del plugin. setChannel() Pratiche Raccomandate

Limitare l'accesso

  1. : Il surfare tra canali è generalmente per uso interno - non esporlo a tutti gli utenti__CAPGO_KEEP_0__
  2. Gestisci gli Errori: Si gestiscano sempre gli errori con delicatezza quando si passa da un canale all'altro
  3. Verifica la Compatibilità: Assicurarsi che gli aggiornamenti su diversi canali siano compatibili con la versione nativa installata
  4. Documenta i Canali: Tenere una documentazione chiara su cosa ogni canale è destinato a fare
  5. Monitora l'Utilizzo: Seguire quali dispositivi sono su quali canali per il debug

Risorse

Conclusion

Il channel surfing trasforma il modo in cui puoi iterare sul tuo Capacitor app. Invece di considerare i build di produzione come endpoint fissi, diventano strumenti flessibili per la verifica, la validazione e l'iterazione rapida.

Con il channel switching istantaneo introdotto nelle versioni recenti del plugin, l'esperienza è ora senza soluzione di continuità - gli utenti possono passare da un canale all'altro e ricevere immediatamente aggiornamenti dal nuovo canale senza alcun periodo di attesa.

Sia che stiate validando i riparazioni di bug con gli stakeholder, eseguendo programmi beta, o debuggando problemi con gli utenti specifici, il channel surfing vi dà la flessibilità di spedire l'aggiornamento giusto all'utente giusto al momento giusto.

Continua da Channel Surfing per Capgo: Come passare ai canali di aggiornamento in tempo di esecuzione

Se stai utilizzando Channel Surfing per Capgo: Come passare ai canali di aggiornamento in tempo di esecuzione per pianificare la routing dei canali e la distribuzione in fasi, connettilo con Canali context Canali Capgo (nome del feature). Pagina/area: Pagina di marketing delle soluzioni Capgo. Ruolo: Etichetta di navigazione o elemento UI breve. Visto in: pagina solutions/white-label.astro. Chiave di messaggio `solutions_white_label_visual_cell2_value` (Valore della cella visiva del white label delle soluzioni). per i dettagli di implementazione nei canali, Canali context: Capgo release channels feature name. Page/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: page solutions/white-label.astro. Message key `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value). per i dettagli di implementazione nei canali, Soluzione di Test Beta per il flusso di lavoro del prodotto in Soluzione di Test Beta, e Soluzione di Targeting della Versione

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Sostegno umano da parte di Martin

Inizia subito

Ultimi articoli dal nostro Blog

Capgo vi offre le migliori informazioni che hai bisogno per creare un'app mobile davvero professionale.