Vai alla sezione principale
Tutorial

Navigare tra canali per Capgo: come cambiare i canali di aggiornamento in esecuzione

Invia modifiche a utenti specifici istantaneamente con Capgo e la sua capacità di cambiare canali in esecuzione. Cambia i canali di aggiornamento senza reinstallare l'app Capacitor.

Martin Donadieu

Martin Donadieu

Responsabile del marketing del contenuto

Navigare tra canali per Capgo: come cambiare i canali di aggiornamento in esecuzione

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

Ho avuto clienti che 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 un cambiamento sperimentale) o creare una versione unica per il cliente (un fastidio per entrambi).

Quello che mancava era la flessibilità. Gli sviluppatori volevano poter servire aggiornamenti diversi a gruppi di utenti diversi, 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 cambiare canale consente. Un'app installata su un dispositivo utente può cambiare canale 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. Ciò è particolarmente utile per i stakeholder non tecnici che lavorano con app di produzione, consentendo loro di testare modifiche e dare feedback direttamente nell'app già installata.

Capire i canali di aggiornamento

I canali di aggiornamento sono come Capgo si rivolgono gli aggiornamenti a versioni specifiche. Ogni versione è associata a un canale, e quel canale determina quali aggiornamenti riceverà.

Ad esempio, puoi pubblicare aggiornamenti su un preview canale senza influenzare gli utenti su production. In passato, cambiare canale richiedeva l'installazione di una versione nativa diversa o la modifica manuale delle assegnazioni dei dispositivi attraverso il pannello di controllo.

Canali in Capgo consentono di:

  • Scegliere specifiche fasce di utenti con funzionalità diverse
  • Eseguire test A/B assegnando gli utenti a canali diversi
  • Lanciare gradualmente nuove funzionalità
  • Creare programmi di testing beta
  • Debuggare problemi di produzione con utenti individuali

Se non sei familiarizzato con i canali di aggiornamento, il Capgo documento sui canali di aggiornamento ne fornisce maggiori informazioni.

Cos'è il Channel Surfing?

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

In pratica, ciò significa che un proprietario di prodotto o un QA può passare a un "canale", ad esempio, per provare le ultime modifiche. Quando hanno finito di testare, passano nuovamente a "principal". Non è necessario reinstallare o creare un build di anteprima separato. production Come funziona il "canale surfing" preview Per implementare il "canale surfing", il progetto deve essere configurato con __CAPGO_KEEP_0__ Live Updates. Per configurarlo, segui il "__CAPGO_KEEP_0__ quickstart guide" production La sola configurazione richiesta per il "canale surfing" è l'abilitazione "Consenti ai dispositivi di associarsi da soli" su ogni canale che si desidera passare in __CAPGO_KEEP_0__ dashboard.

Non sono necessarie modifiche o modifiche di configurazione __CAPGO_KEEP_0__ oltre a quella.

Al suo interno, il "canale surfing" è guidato da una sola chiamata __CAPGO_KEEP_0__:

Questa imposta il canale che viene utilizzato quando si query Capgo per le informazioni sulle aggiornamenti. Capgo quickstart guide.

Before you can try channel surfing, your project needs to be configured with Capgo Live Updates. To set that up, follow the Capgo quickstart guide No code changes or config modifications needed beyond that.

At its core, channel surfing is driven by a single API call:

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

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

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. Scopri di più sul setChannel API.

Switch Channel istantaneo (v5.34.0+)

A partire 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 il canale 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 il nuovo canale immediatamente

In precedenza, setChannel() ha salvato l'override del canale sul 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 le transizioni tra canali istantanee.

Flusso di Scambio del Canale Completo

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

Un flusso tipico assomiglia a questo:

  1. Cambia il canale (setChannel)
  2. Verifica l'aggiornamento (getLatest)
  3. Esegui l'aggiornamento (download, set o next)
  4. Ricarica 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 interazioni multiple o eseguirli tutti contemporaneamente. Indipendentemente da come strutturi il flusso, assicurati di tenere conto degli errori. Problemi di rete o un canale non valido possono tutti impedire l'applicazione di un aggiornamento.

L'Unico Requisito: Abilita l'assegnazione auto

Questo è l'unica cosa che devi fare per abilitare la navigazione tra canali. Prima che il tuo app possa passare a un canale utilizzando setChannel(), devi abilitare l'assegnazione automatica per quel canale nel tuo Capgo dashboard:

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

Abilita l'assegnazione automatica nei impostazioni del canale

Ecco fatto. Nessuna modifica di configurazione necessaria nell'app. defaultChannel Impostazione richiesta. Abilita l'assegnazione automatica sui canali che desiderate che gli utenti possano cambiare.

Se questa impostazione è disabilitata, qualsiasi tentativo di chiamare setChannel() con questo canale fallirà e il 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 l'Ultimo Canale

Controlla quale canale il dispositivo è attualmente assegnato a:

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

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

Ritorna al Canale Predefinito

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

await CapacitorUpdater.unsetChannel({});

Questo disconnette il dispositivo da qualsiasi canale assegnato specificamente, causando il ritorno al canale predefinito, defaultChannel Inserire nella tua configurazione o nel cloud predefinito.

Come testare il navigazione tra canali.

Per vedere in azione la navigazione tra canali, avrai bisogno di un rilascio - il __CAPGO_KEEP_0__ è progettato per i rilasci. In costruzioni di debug, l'app carica tipicamente JavaScript da un server di sviluppo, il che bypassa il normale flusso di aggiornamento. @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.

L'unica richiesta per la navigazione tra canali è l'abilitazione di

“Consenti ai dispositivi di associarsi da soli” su ogni canale che desideri consentire lo switching. Non sono necessarie modifiche di configurazione nell'app. Creazione di un Test Build

Costruisci l'app come di consueto:

Poi crea le tue costruzioni native utilizzando Xcode o Android Studio, o utilizza il tuo pipeline CI/CD. L'app inizierà sul canale che è stato impostato come cloud predefinito nella tua __CAPGO_KEEP_0__ dashboard.

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.

Publishing Updates to Different Channels

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 recuperare l'aggiornamento dal canale selezionato e ricaricare con l'aggiornamento nuovo.

Costruire un'interfaccia di cambio canale

La navigazione dei canali è di solito qualcosa che desideri esporre a un limitato insieme di utenti, non a tutti gli utenti che utilizzano il tuo app. Ad esempio, potresti avere un pulsante disponibile solo per gli impiegati 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: problemi comuni

Nessuno di questi è specifico alla navigazione dei canali, ma tendono a diventare evidenti rapidamente una volta che iniziate a cambiare canali in esecuzione.

Mancanza di versione di runtime

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 tipicamente come l'app che cambia canali ma non viene applicato alcun aggiornamento, anche se ne esiste uno su quel canale.

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

Rimozione o annullamento degli aggiornamenti

Se un'app ha già scaricato un aggiornamento per un canale, la rimozione di quell'aggiornamento dal dashboard Capgo non lo elimina dai dispositivi che già lo hanno. La rimozione ne blocca solo la distribuzione. future download.

La modalità più affidabile per annullare un aggiornamento dannoso è pubblicare un aggiornamento noto e buono sullo stesso canale. Questo crea un nuovo aggiornamento in cima alla storia del 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 una versione di aggiornamento stabile precedente o a cadere indietro all'aggiornamento incorporato nella build.

Considerazioni sulla migrazione dei dati

Cambiare canale cambia il bundle JavaScript con cui l'applicazione esegue. Se la tua applicazione dipende da migrazioni o forme dei dati che non sono compatibili tra canali, cambiare avanti e indietro può 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 da cambiare tra loro o limitare il cambio a una direzione quando necessario.

Perché il surf dei canali migliora l'iterazione mobile

Lo surf dei canali è specialmente utile quando hai bisogno di esaminare le modifiche velocemente in un ambiente di produzione.

Validazione rapida

Immagina un bug urgente da correggere che ha bisogno di validazione prima di essere distribuito ampiamente. Con lo surf dei 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 proprietario di prodotto o un responsabile della qualità è possibile passare la versione di produzione installata a un altro canale di aggiornamento, verificare la correzione o la funzionalità e poi tornare nuovamente una volta terminato.

Test Streamline

Questa facilita l'implicazione di stakeholder non tecnici nella revisione e nella decisione, mantenendo il workflow fluido. Una sola versione di produzione diventa uno strumento flessibile per il testing, la feedback e la validazione.

Utilizzo

  • Test di Qualità: I team di QA possono passare tra rami di funzionalità
  • Programmi Beta: Gli utenti si iscrivono al canale beta per l'accesso anticipato
  • Revisione Stakeholder: I proprietari di prodotto visualizzano le modifiche prima della rilascio
  • Sperimentazione A/B: Assegna gli utenti a canali diversi per gli esperimenti
  • Debugging: Passa un utente specifico a un canale di debug per diagnosticare gli issue

Confronto: Metodi di modifica del canale

MetodoEffetto TempoPersistente DoveUtilizzo
setChannel() da pluginSubitoSolo dispositivo (locale)Modifica del canale dell'utente in-app
OVERRIDE DEL DISPOSITIVO DEL DASHBOARDFino a 2 minDatabase backendModifiche iniziate dall'amministratore per dispositivi specifici
Assegnazione del canale APIFino a 2 minDatabase backendIntegrazioni backend automatizzate

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

Limitare l'accesso

  1. : La navigazione tra canali è generalmente riservata all'uso interno - non esporla a tutti gli utenti.Limitare l'accesso
  2. Gestisci gli Errori: Tratta sempre gli errori con delicatezza quando si passa da un canale all'altro
  3. Verifica la Compatibilità: Assicurati che le aggiornamenti su diversi canali siano compatibili con la versione nativa installata
  4. Documenta i Canali: Tieni una documentazione chiara su cosa ogni canale è destinato a fare
  5. Monitora l'Utilizzo: Traccia quali dispositivi sono su quali canali per la debuggazione

Risorse

Conclusioni

La navigazione tra canali 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 la possibilità di cambiare canale istantaneamente introdotta nelle versioni recenti dei plugin, l'esperienza è ora senza intoppi - gli utenti possono cambiare canale e ricevere immediatamente aggiornamenti dal nuovo canale senza alcun periodo di attesa.

Sia che stiate verificando le correzioni di bug con gli stakeholder, eseguendo programmi beta o debuggando problemi con gli utenti specifici, la navigazione tra canali vi dà la flessibilità di inviare l'aggiornamento giusto all'utente giusto al momento giusto.

Continuate a leggere da Channel Surfing per Capgo: Come cambiare i canali di aggiornamento in esecuzione

Se stai utilizzando Channel Surfing per Capgo: Come cambiare i canali di aggiornamento in esecuzione per pianificare la routing dei canali e la distribuzione in fasi, connettilo con Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Channels, Canali per i dettagli di implementazione in Canali, Soluzione di Test Beta per il flusso di lavoro del prodotto in Soluzione di Test Beta, e Soluzione di Targetizzazione della Versione per il flusso di lavoro del prodotto in Soluzione di Targetizzazione della Versione.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug del 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.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile veramente professionale.