Saltare al contenuto principale

Targetizzazione delle versioni

Invia ogni versione nativa solo le raccolte che può eseguire

Utenti aggiornano dal negozio al proprio ritmo, quindi più versioni native del tuo app sono in vita contemporaneamente. Capgo controlla le dipendenze native di ogni raccolta, blocca gli aggiornamenti con le regole delle versioni e può inviare ogni versione nativa al suo canale.

Verifica la compatibilità nativa prima dell'upload

La compatibilità del pacchetto confronta i pacchetti nativi nel tuo progetto con il pacchetto live sul canale. Aggiungi --fail-on-incompatible in CI per fermare un upload che richiede un nuovo binario.

Documentazione compatibilità nativa

Imposta un piano di versione nativa per ogni pacchetto

Colloca il canale sulla strategia dei metadati e upload con --auto-min-update-version. I dispositivi con una versione nativa inferiore al piano del pacchetto lo ignorano e mantengono il loro bundle corrente.

Documentazione versione targeting

Aggiornamenti bloccati tra linee semver

--disable-auto-update major, minor, o patch mantiene un dispositivo dall'ottenere un pacchetto fuori dalla sua linea di versione nativa. Queste regole confrontano solo i numeri di versione. Non esaminano il code nativo.

Tipi di aggiornamento e blocco di versione

Un canale per ogni versione nativa

Imposta defaultChannel in ogni configurazione nativa Capacitor, ad esempio v2 o v3. Ogni linea riceve i suoi pacchetti, e una linea più vecchia può rimanere sul suo ultimo pacchetto funzionante.

Documentazione versione targeting

Come funziona

Come le squadre con diverse versioni native distribuiscono con Capgo

Una configurazione CI che consente al canale live update e al canale dello store di funzionare fianco a fianco. Ogni comando riportato di seguito è tratto dai Capgo CLI docs.

  1. Domanda se il commit richiede una costruzione nativa

    build needed confronta i pacchetti nativi con il canale. Stampa 'sì' e esce con code 1 quando è richiesta una versione di store, e 'no' quando è sufficiente una live update

    npx @capgo/cli@latest build needed com.example.app --channel production
    Costruzione necessaria
  2. Spostare il canale alla strategia dei metadati

    Fai questo una volta. Dopo di allora, ogni bundle porta una versione nativa minima e i dispositivi sotto di essa saltano il bundle.

    npx @capgo/cli@latest channel set production com.example.app \
      --disable-auto-update metadata
    Documentazione sulla versione di targeting
  3. Caricare aggiornamenti in tempo reale quotidiani

    Mantieni --auto-min-update-version su ogni caricamento. --fail-on-incompatible ferma il lavoro se il bundle richiede una costruzione nativa code che il canale non ha

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version \
      --fail-on-incompatible
    Documentazione sulla compatibilità nativa
  4. Carica il bundle per una nuova versione nativa

    Quando il nuovo binario viene rilasciato, carica il suo bundle senza --fail-on-incompatible. Capgo solleva il tetto in modo che le versioni precedenti lo ignorino, e le successive verifiche confrontano con i nuovi pacchetti nativi.

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version
    Flusso di lavoro per canali nativi e OTA

Migrazione Appflow

Proviene da Ionic Appflow?

Appflow sincronizza gli aggiornamenti live con le versioni native per te. In Capgo ottieni lo stesso risultato con i canali e le regole di versione:

  1. Creare un canale per ogni linea nativa, ad esempio v1 e v2.
  2. Setta defaultChannel in ogni configurazione nativa Capacitor a suo canale.
  3. Carica ogni bundle nel canale della linea nativa per cui è stato costruito.
  4. Keep --auto-min-update-version on uploads so a bundle that needs newer native code skips older builds.
Migrazione guide Appflow
Canale per linea nativa
// capacitor.config.ts in your 2.x native builds
plugins: {
  CapacitorUpdater: {
    defaultChannel: 'v2',
  },
},

# ship a fix to 2.x users only
npx @capgo/cli@latest bundle upload --channel v2 \
  --auto-min-update-version

# 1.x devices stay on their channel's current bundle

Situazioni comuni

Un nuovo plugin nativo

La tua versione 2.0 aggiunge un plugin di camera. Carica il bundle che lo utilizza con --auto-min-update-version, e i dispositivi 1.x lo ignorano fino a quando gli utenti installano la versione 2.0.

Documentazione di compatibilità nativa

Esposizione graduale

Invia un pacchetto a una quota di un canale con --rollout, osserva l'installazione e i dati di fallimento, quindi promuovi o annulla.

Documentazione dei rilasci progressivi

Ritiro di una versione vecchia

Smetti di caricare sul canale v1. I dispositivi su di esso mantengono l'ultima versione funzionante mentre v2 continua a ricevere aggiornamenti.

Documentazione della versione di destinazione

Esempio di layout con tre versioni native in circolazione.

Un esempio di layout con tre versioni native in circolazione.

  • v3
    v3
    Nuove raccolte
  • Native 2.x
    v2
    Solo correzioni
  • Native 1.x
    v1
    Nessun nuovo pacchetto

Invia funzionalità a v3, correzioni a v2 e nulla a v1. I dispositivi su v1 mantengono il loro ultimo bundle funzionante.

App costruite con Capacitor

Tutte le app pubbliche devono supportare vecchie e nuove versioni native

Gli app di tipo civico, sanitario e di previsione possono supportare versioni Android più vecchie e diverse generazioni di dispositivi. La versione di targeting mantiene ogni build nativo sul bundle web più compatibile senza imporre un percorso di aggiornamento unico per tutti.

Icona dell'app e-Título SOCIAL

e-Titolo

App di identità civica con ampia compatibilità di dispositivi pubblici necessaria.

L'installazione su Google Play
54,9M
Valutazione della store
4.8
Icona dell'app Conecte SUS MEDICALE

Connetti SUS

L'app di salute dove le conchiglie native più vecchie e più nuove possono richiedere bundle web diversi.

L'installazione su Google Play
27,7M
Valutazione negli store
4.6
Icona dell'app di previsione del tempo Windy.com METEO

Windy.com - Previsione del tempo

L'applicazione del meteo dove le prestazioni del dispositivo e la mappa possono variare in base alla versione.

Instalazioni Google Play
32,9M
Valutazione negli store
4.7

Prova dei clienti

Cosa dicono i team che stanno spingendo con Capgo

5.0/5 valutato dalle squadre di sviluppatori 9,400+ team Leggi le recensioni

no-tone @ Webincode

Sviluppatore, Webincode

"Essere in grado di aggiungere gli ID dei dispositivi a certi gruppi e di inviare le modifiche a solo certi gruppi è un salvavita."

Nate van Jole

CTO, Privato

Mi è stato necessario meno di un giorno per configurarmi. I rilasci basati sul canale mi consentono di testare sul mio dispositivo prima che i dati raggiungano gli utenti produttivi.

Ritratto di Sergiu S

Sergiu S

Capo Sviluppatore, drivolino GmbH

The Capgo Capacitor Updater plugin ha completamente rivoluzionato il modo in cui distribuiamo gli aggiornamenti. Ciò che un tempo richiedeva giorni ora richiede solo minuti.

FAQ

Domande sui versioni in libertà

Per le squadre che supportano gli utenti che aggiornano l'app di negozio in momenti diversi.

Cosa accade agli utenti che non aggiornano l'app nativa?

They keep receiving bundles that are compatible with their native version. With the metadata strategy, a bundle whose minimum native version is above theirs is skipped, and they stay on their current bundle.

Versione di destinazione

È --disable-auto-update sufficientemente importante per prevenire i crash?

No. Le regole di versione si limitano a confrontare i numeri di versione, quindi un cambiamento nativo inviato in una versione minore o di patch viene comunque inviato. Utilizzare --fail-on-incompatible o --auto-min-update-version, che controllano i pacchetti nativi.

Documentazione sulla compatibilità nativa

Come il CI sa se un cambiamento richiede una rilascio di archiviazione?

Eseguire build necessario o rilascio del bundle con il canale. Entrambi confrontano i metadati dei pacchetti nativi. Non vedono ogni modifica sotto ios/, android/ o capacitor.config, quindi bloccate queste directory in Git.

Scegliere OTA o build nativo in CI

Stiamo passando da Ionic Appflow. Possiamo mantenere gli aggiornamenti sincronizzati con la versione?

Sì. Utilizzare un canale per ogni linea nativa con defaultChannel, o la strategia dei metadati con --auto-min-update-version. La guida di migrazione di Appflow illustra la configurazione.

Guida di migrazione di Appflow

Cosa succede se un bundle incompatibile è già stato inviato?

Point the channel back to the last compatible bundle from its history, or force the built-in bundle, and ship the native build. notifyAppReady() rolls back a bundle that fails to start, but it is not a substitute for compatible native code.

Documentazione sui rollback

Conserva ogni versione nativa in un bundle che può eseguire

Configura la strategia dei metadati e un controllo di compatibilità in CI durante la prova gratuita di 14 giorni. Nessuna carta di credito necessaria.