Vai al contenuto principale
Guida

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

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

Martin Donadieu

Martin Donadieu

Content Marketer

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

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

Ho avuto clienti che richiedevano 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 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 una via per un build di produzione per cambiare a una versione in corso di sviluppo, raccogliere feedback e poi tornare alla produzione.

Quello che la navigazione tra canali consente. Un'app installata su un dispositivo dell'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 gli stakeholder non tecnici che lavorano con app di produzione, consentendo loro di testare le modifiche e di fornire feedback direttamente nell'app già installata.

Capire i canali di aggiornamento

Il canale di aggiornamento è il modo in cui Capgo si rivolge agli aggiornamenti per edizioni specifiche. Ogni edizione è associata a un canale e quel canale determina gli aggiornamenti che riceverà.

Ad esempio, puoi pubblicare aggiornamenti su un preview senza influenzare gli utenti su productionIn passato, cambiare canale richiedeva l'installazione di una versione nativa diversa o la modifica manuale delle assegnazioni dei dispositivi tramite la dashboard.

Il canale di Capgo consente di:

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

Se non sei familiare con i canali di aggiornamento, il Capgo documento sui canali di aggiornamento ne copre i dettagli in modo più approfondito.

Cosa è 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ò cambiare una production costruzione a, ad esempio, un preview canale, provare le ultime modifiche. Quando sono stati completati i test, cambiano di nuovo a production nuovamente. Non è necessario reinstallare o creare un build di anteprima separato.

Sotto la cappa, il channel surfing funziona consentendo all'app di dire al client di aggiornamenti quale canale utilizzare. Questa scelta può essere cambiata in esecuzione e rimane in vigore fino a quando non viene annullata o sostituita.

How to Implement Channel Surfing

Prima di poter provare il channel surfing, il tuo progetto deve essere configurato con Capgo Aggiornamenti in Tempo Reale. Per impostare questo, segui il Capgo quickstart guide.

La sola configurazione richiesta per il channel surfing è l'abilitazione di “Consenti ai dispositivi di associarsi da soli” su ogni canale che desideri passare in Capgo dashboard. Nessuna code modifica o configurazione necessaria oltre a questo.

Al suo interno, il channel surfing è guidato da un singolo API chiamata:

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

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

Questo imposta il canale utilizzato quando si query Capgo per aggiornamenti. Sappi di più sul setChannel API.

Channel Switching istantaneo (v5.34.0+)

Partendo dalla versione plugin 5.34.0, 6.34.0, 7.34.0 o 8.0.0 (a seconda della tua versione maggiore), setChannel() funziona in modo diverso e molto più veloce:

  1. Validazione backend (solo lettura): Viene inviata una richiesta al backend Capgo per verificare se il canale è consentito
  2. Aggiornamento del storage locale: Se la validazione ha successo, il canale viene salvato nel storage locale del dispositivo
  3. Effetto immediato: La prossima verifica degli aggiornamenti utilizza immediatamente il nuovo canale

In precedenza, setChannel() salvava 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 venisse riconosciuto. Il nuovo comportamento legge solo dal backend (per la validazione) e memorizza localmente, rendendo le scelte di canale istantanee.

Flusso di completamento della scelta del canale

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

Un flusso tipico assomiglia a questo:

  1. Cambia il canale (setChannel)
  2. Controlla l'aggiornamento (getLatest)
  3. Estrai e applica l'aggiornamento (download, set o next)
  4. La struttura di questo flusso è a tua scelta. Potresti suddividere questi passaggi in più interazioni o eseguirli tutti contemporaneamente. In ogni caso, assicurati di tenere conto degli errori. Problemi di rete o un canale non valido possono impedire di applicare l'aggiornamento.reload)

La Unica Richiesta: Abilita l'Auto-Assegnazione

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

Questo è l'unica cosa di cui hai bisogno per abilitare la navigazione tra canali.

Prima che il tuo app possa passare a un canale utilizzando

devi abilitare l'auto-assegnazione per quel canale nel __CAPGO_KEEP_0__ dashboard: Vai al setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. Canali Canali sezione nella tua dashboard di Capgo
  2. Clicca sul nome del canale che desideri gestire
  3. Abilita “Consenti ai dispositivi di associarsi da soli”
  4. Salva le modifiche

Abilita l'auto-assegnazione nelle impostazioni del canale

È tutto. Non sono necessarie modifiche di configurazione nell'app. Non defaultChannel è richiesta alcuna impostazione. Basta abilitare l'auto-assegnazione sui canali che desideri che gli utenti possano cambiare.

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

Elenco dei canali disponibili

Potete recuperare l'elenco dei canali disponibili per l'assegnazione auto:

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 auto è abilitata.

Ottenere il Canale Attuale

Verificate quale canale il dispositivo è attualmente assegnato:

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

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

Ritornare 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, causandolo a cadere nuovamente sul defaultChannel nel vostro config o il canale predefinito del cloud.

Come Testare il Surfing dei Canali

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

Requisiti Preliminari

La sola richiesta per la navigazione tra canali è l'abilitazione “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 una versione di prova

Costruisci l'app come di consueto:

bun run build && npx cap sync

Quindi crea le tue versioni native utilizzando Xcode o Android Studio, o utilizza il tuo pipeline CI/CD. L'app inizierà sul canale che è stato impostato come default cloud nel tuo Capgo dashboard.

Pubblicazione di Aggiornamenti su Canali diversi

Una volta installata l'app, pubblica aggiornamenti su 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

Dal lì, naviga nella tua UI di navigazione tra canali nell'app e attiva lo switching del canale. L'app dovrebbe recuperare l'aggiornamento dal canale selezionato e ricaricare nella nuova versione.

Creazione di una UI per lo Switching dei Canali

La navigazione tra canali è di solito qualcosa che desideri esporre a un limitato numero di utenti, non a tutti gli utenti che utilizzano l'app. Ad esempio, potresti avere un pulsante disponibile solo per gli impiegati autenticati che attiva lo switching dell'app sul canale di anteprima.

Ecco un esempio di componente React per una UI di switching dei canali:

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: attenzioni

Questi problemi non sono specifici del channel surfing, ma tendono a diventare evidenti rapidamente non appena inizi a cambiare canali in esecuzione.

Discrepanze tra versioni di 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'applicazione installata, l'aggiornamento non verrà scaricato o applicato. Quando si fa channel surfing, 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 canale sia compatibile con la versione nativa installata sul dispositivo.

Eliminazione o Annullamento degli Aggiornamenti

Se un'app ha già scaricato un aggiornamento per un canale, cancellare quell'aggiornamento dalla dashboard di Capgo non lo elimina dai dispositivi che già lo hanno. La cancellazione ferma solo future scarichi futuri.

La soluzione più affidabile per annullare un aggiornamento dannoso è pubblicare un aggiornamento noto come buono sullo stesso canale. Ciò 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 un aggiornamento stabile precedente o a cadere indietro all'aggiornamento incorporato nel build.

Considerazioni per la migrazione dei dati

La modifica del canale cambia il bundle JavaScript con cui l'applicazione esegue. Se la tua applicazione dipende da migrazioni o forme dati non compatibili tra canali, la modifica di canali 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 canali o limitare la modifica a una sola direzione quando necessario.

Perché il Channel Surfing Migliora la Iterazione Mobile

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

Validazione Rapida

Immagina un bug da correggere urgentemente che richiede una 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

Un proprietario del prodotto o un QA può modificare la propria installazione di produzione per un altro canale di aggiornamento, verificare il bug o la funzionalità e poi tornare alla versione di produzione una volta terminato.

Test Streamline

Questo rende più facile coinvolgere gli stakeholder non tecnici nella revisione e nella decisione, mantenendo il workflow fluido. Una sola installazione di produzione diventa uno strumento flessibile per il testing, la feedback e la validazione.

Uso dei casi

  • Test di QA: La squadra QA può passare tra le branch di feature
  • Programmi Beta: Gli utenti si iscrivono al canale beta per l'accesso anticipato
  • Valutazione da parte degli stakeholder: I proprietari dei prodotti visualizzano le modifiche prima della release
  • Test A/B: Assegna gli utenti a canali diversi per esperimenti
  • Debugging: Passa un utente specifico a un canale di debug per diagnosticare gli errori

Confronto: Metodi di Modifica dei Canali

Metodo Tempo di Effetto Persistato Dove Utilizzo
setChannel() context Dall'plugin Instanteo Solo dispositivo (locale)
Switching del canale in-app inizializzato dall'utente Dashboard sovrascrittura dispositivo Fino a 2 min Database backend
API channel assignment __CAPGO_KEEP_0__ assegnazione del canale Database del backend Integrazioni backend automatizzate

Per offrire la migliore esperienza utente quando si costruisce interfacce utente per il cambio di canale, utilizzare sempre il metodo del plugin. setChannel() Pratiche raccomandate

Limitare l'accesso

  1. : Il cambio di canale è di solito per uso interno - non esporlo a tutti gli utentiGestire gli errori
  2. : Gestire sempre gli errori con grazia quando si cambia canaleVerificare la compatibilità
  3. : Assicurarsi che gli aggiornamenti su diversi canali siano compatibili con la versione nativa installataDocumentare i canali
  4. Backend database: Mantieni documentazione chiara su cosa ogni canale è destinato a fare
  5. Monitorare l'uso: Traccia quali dispositivi sono su quali canali per il debug

Risorse

Conclusioni

La navigazione tra canali trasforma il modo in cui puoi iterare sul tuo Capacitor app. Invece di considerare le costruzioni di produzione come punti di fine fissa, diventano strumenti flessibili per la prova, la validazione e l'iterazione rapida.

Con l'introduzione recente del cambio di canale istantaneo nelle versioni del plugin, l'esperienza è ora senza intoppi - gli utenti possono passare da un canale all'altro e ricevere immediatamente gli 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, la navigazione tra canali vi dà la flessibilità di spedire l'aggiornamento giusto all'utente giusto al momento giusto.

Continua 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 fase di testing, connettilo con Canaletta contexto: nome del feature di canali di rilascio di Capgo. Pagina/area: pagina di marketing delle soluzioni di Capgo. Ruolo: breve etichetta di navigazione o elemento UI. 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 in Canaletta, Canaletta contexto: nome del feature di canali di rilascio di Capgo. Pagina/area: pagina di marketing delle soluzioni di Capgo. Ruolo: breve etichetta di navigazione o elemento UI. 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 in Canaletta, Canaletta contexto: nome del feature di canali di rilascio di Capgo. Pagina/area: pagina di marketing delle soluzioni di Capgo. Ruolo: breve etichetta di navigazione o elemento UI. 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). Soluzione di Targeting della Versione per il flusso di lavoro del prodotto nella 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 sulla normale via di revisione.

Supporto umano da parte di Martin

Inizia subito

Ultimi articoli dal nostro Blog

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