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

Hai mai desiderato poter 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 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 per il cliente (un fastidio per entrambi).

C'era bisogno di 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 una via per un build di produzione per passare 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à.

Per 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.

Il canale di Capgo consente di:

  • Targetizzare 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
  • Risolvere problemi di produzione con gli 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.

Di cosa si tratta il Channel Surfing?

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 permettendo all'app di dire al 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.

How to Implement Channel Surfing

Prima di poter provare il cambio di canale, il tuo progetto deve essere configurato con Capgo Aggiornamenti in Tempo Reale. Per impostare questo, segui il Capgo guida di avvio rapido.

L'unica configurazione richiesta per il cambio di canale è l'abilitazione della voce 'Consenti ai dispositivi di associarsi da soli' su ogni canale che desideri passare in Capgo dashboard. Non sono necessarie alcune modifiche o configurazioni code oltre a quella.

Al suo interno, il cambio di canale è guidato da un singolo API chiamata:

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

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

Questa imposta il canale che viene utilizzato quando si query Capgo per gli aggiornamenti. Sappi di più sul setChannel API.

Cambio di Canale Istantaneo (v5.34.0+)

Partendo dalla versione del 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() aveva 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 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 riavviare 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. Esegui l'aggiornamento (download, set o next)
  4. Controlla l'aggiornamento (reload)

Carica l'aggiornamento (

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

Esegui l'aggiornamento (

o

Ecco un esempio completo: Struttura questo flusso a tuo piacimento. 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 l'applicazione di un aggiornamento. setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. Questo è l'unica cosa che devi fare per abilitare il canale. Prima che il tuo app possa passare a un canale utilizzando sezione nella tua Capgo dashboard
  2. Clicca sul nome del canale che desideri gestire
  3. Abilita “Consenti ai dispositivi di associarsi da soli”
  4. Salva le modifiche

Abilita l'autoassegnazione nelle impostazioni del canale

È tutto. Nessuna modifica di configurazione è necessaria nell'app. Nessuna impostazione è richiesta. Basta abilitare l'autoassegnazione sui canali che desideri che gli utenti possano cambiare. defaultChannel Se questa impostazione è disabilitata, qualsiasi tentativo di chiamata con questo canale fallirà e l'evento si attiverà.

Elenco dei canali disponibili setChannel() Abilita l'autoassegnazione in impostazioni del canale channelPrivate Se questa impostazione è disabilitata, qualsiasi tentativo di chiamata con questo canale fallirà e l'evento si attiverà.

È tutto. Nessuna modifica di configurazione è necessaria nell'app. Nessuna impostazione è richiesta. Basta abilitare l'autoassegnazione sui canali che desideri che gli utenti possano cambiare.

Ecco come recuperare 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.

Ottenere il Canale Attuale

Verifica 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 tuo config o il canale predefinito del cloud.

Come Testare il Surfing dei Canali

Per vedere il surfing dei canali in azione, avrai bisogno di una release build - il @capgo/capacitor-updater API è progettato per le release build. In debug build, l'app carica tipicamente JavaScript da un server di sviluppo, 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'applicazione.

Creazione di una versione di prova

Costruisci l'applicazione 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'applicazione inizierà sul canale che è stato impostato come default cloud nel tuo Capgo dashboard.

Pubblicazione di Aggiornamenti su Canali diversi

Una volta installata l'applicazione, 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 menu, accedi alla tua interfaccia di navigazione tra canali nell'applicazione e attiva lo switch del canale. L'applicazione dovrebbe recuperare l'aggiornamento dal canale selezionato e ricaricare con l'aggiornamento nuovo.

Creazione di un'interfaccia per lo Switch 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'applicazione. Ad esempio, potresti avere un pulsante disponibile solo per gli impiegati autenticati che attiva lo switch dell'applicazione sul canale di anteprima.

Ecco un esempio di componente React per un switch 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: Cosa evitare

Questi problemi non sono specifici del cambio canale, ma tendono a diventare evidenti rapidamente una volta che iniziate 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'app installata, l'aggiornamento non verrà scaricato o applicato. Quando si cambia canale, 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 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, cancellare quell'aggiornamento dal dashboard di Capgo non lo elimina dai dispositivi che già lo hanno. La cancellazione ferma solo future download 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 può causare problemi.

Per 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 un'unica 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 velocemente in un ambiente di produzione.

Validazione Rapida

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

Recensione da parte di Stakeholder

Un proprietario di prodotto o un QA possono modificare la loro installazione di produzione per un altro canale di aggiornamento, verificare il fix o la feature e poi tornare alla versione di produzione una volta terminato.

Test Streamline

Questo rende più facile coinvolgere gli stakeholder non tecnici nella recensione e nella decisione, mantenendo il workflow fluido. Un singolo build 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
  • 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 dei Canali

Metodo Tempo di Effetto Persiste dove Utilizzo
setChannel() da plugin Subito Solo dispositivo (locale) Switching del canale in-app iniziativa dell'utente
Pannello dispositivo sovrascrittura Fino a 2 min Database backend Modifiche iniziate dall'amministratore per dispositivi specifici
API assegnazione del canale Fino a 2 min Database del backend Integrazioni di backend automatizzate

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

Limitare l'accesso

  1. : Il surf dei canali è solitamente 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. Capgo: Mantieni documentazione chiara su cosa ogni canale è destinato a fare
  5. Monitoraggio dell'uso: 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 le costruzioni di produzione come punti di fine fissa, diventano strumenti flessibili per la verifica, la validazione e l'iterazione rapida.

Con l'introduzione recente del cambio di canale istantaneo nelle versioni del plugin, l'esperienza è ora senza soluzione di continuità - 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 inviare 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 staging, connettilo con Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, 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 Targeting di Versione per il flusso di lavoro del prodotto nella Soluzione di Targeting di Versione.

Continua da Channel Surfing per Capacitor: Come cambiare i canali di aggiornamento in esecuzione in tempo reale

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.

Supporto umano da parte di Martin

Inizia subito

Ultimi articoli dal nostro Blog

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