Auto OTA o Nativo
Wire bundle releaseType in GitHub Azioni o GitLab in modo che CI riconosca l'aggiornamento in tempo reale rispetto a Capgo Costruzione.
Copiare un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Un aggiornamento live Capgo sostituisce il pacchetto JavaScript dell'applicazione Include installazione, sincronizzazione e la guida markdown della fonte. istantaneamente, ma non può cambiare la nativo part of your app — the Capacitor/Cordova plugins, native dependencies, and native project configuration that are compiled into the installed binary. When a new bundle expects native code that the installed binary doesn’t have, the bundle is incompatibile con il nativo: Capgo può ancora consegnarlo, ma potrebbe bloccarsi o comportarsi in modo anomalo sui dispositivi che ancora eseguono la versione nativa più vecchia.
Questa pagina spiega come Capgo rileva la compatibilità nativa, cosa significa un aggiornamento incompatibile per i tuoi utenti e come inviare cambiamenti nativi in modo sicuro.
Capgo può inviare file dal tuo cartello di output generato web. Se il cambiamento riguarda solo HTML, CSS, JavaScript, asset o pacchetti pure-JavaScript inclusi in quel output, invialo come aggiornamento in tempo reale.
Utilizza una versione di app nativa quando un cambiamento aggiorna capacitor.config.tsla configurazione del plugin archiviata in Capacitor config, plugin nativi o dipendenze, Capacitor stesso, o file del progetto iOS/Android. npx cap sync Una verifica pratica: se il cambiamento deve aggiornare il progetto nativo attraverso npx cap copy o
| prima che i dispositivi installati possano utilizzarlo, trattalo come nativo. | Ship with Capgo OTA? | Consegnare con __CAPGO_KEEP_0__ OTA? |
|---|---|---|
| Perché | HTML, CSS, app JavaScript, immagini, font e altri asset di costruzione web | Sì |
| Sono caricati dal bundle web in esecuzione. | Le modifiche al pacchetto Pure-JavaScript incorporate nel tuo output web | Il JavaScript generato fa parte del bundle web. |
capacitor.config.ts Modifiche | No | Il Capacitor config non viene letto nell'app nativa al momento della compilazione. |
| Aggiungere, rimuovere o aggiornare Capacitor/Cordova plugin | No | Il binario nativo installato deve contenere il code nativo corrispondente. |
| Modifiche al file di progetto iOS o Android | No | Gli utenti esistenti hanno bisogno di un nuovo binario dai negozi. |
Capgo dispiega client aggiornatori dedicati per ogni runtime ibrido:
| Plugin | Usa quando |
|---|---|
@capgo/capacitor-updater | Capacitor app iOS/Android |
@capgo/cordova-updater | Applicazioni iOS 7+ / Android 13+ di Cordova |
@capgo/electron-updater | Applicazioni desktop di Electron |
Verifiche di compatibilità native si applicano comunque indipendentemente dal plugin del client — confrontano le dipendenze native registrate del pacchetto con il binario installato.
Ogni app Capacitor parte in due strati:
Un aggiornamento in tempo reale sostituisce solo il layer JavaScript. Se il nuovo JavaScript chiama un plugin nativo o API che non è compilato nella versione binaria installata, la chiamata fallisce all'esecuzione — il che può far crashare l'applicazione o rompere silenziosamente una funzionalità. In poche parole: Capgo non può aggiornare i code nativi, quindi un dispositivo che esegue la versione binaria nativa vecchia non può eseguire in sicurezza un bundle costruito contro nuovi code nativi.
Quando carichi un bundle — o esegui la verifica manualmente — Capgo confronta i pacchetti nativi in your local project (your Capacitor/Cordova plugins and their versions) against the native packages recorded for the bundle attualmente in canale:
bunx @capgo/cli@latest bundle compatibility com.example.app --channel productionLa CLI stampa una tabella di ogni pacchetto nativo con la sua versione locale, la versione in vita sul canale e uno stato:
Package Local Remote Status@capacitor/core 6.1.2 6.1.2 ✅@capacitor/share 6.0.0 6.0.0 ✅@capacitor/camera 6.1.0 — ❌ not in the live bundlePer pipeline, bundle releaseType collapsa il controllo in una sola parola:
bunx @capgo/cli@latest bundle releaseType com.example.app --channel production# → OTA safe to ship as a live update# → native needs a new app-store buildBlocca il tuo pipeline di rilascio su questo: invia un aggiornamento live quando lo stampa OTAe attiva un build nativo quando lo stampa native.
On dispositivi ancora in esecuzione con il binario nativo più vecchio, la mancanza di __CAPGO_KEEP_0__ può causare crash o funzionalità rotte — anche se l'aggiornamento è stato scaricato e applicato con successo. Questo è il motivo per cui un aggiornamento live può essere live e consegnato, ma ancora rovinare l'app per gli utenti esistenti, e per cui __CAPGO_KEEP_1__ può avvertirti quando un pacchetto incompatibile va live. __CAPGO_KEEP_0__’s, the missing native code can cause crashes or broken features — even though the update downloaded and applied “successfully.” This is why a live update can be live and delivered yet still break the app for existing users, and why Capgo can warn you when an incompatible bundle goes live.
Capgo’s esegua, ma non è un sostituto per l'invio di un __CAPGO_KEEP_0__ nativo compatibile — un mismatch che causa un crash successivo, o un crash nativo, può sfuggire a esso. Come inviare modifiche native in modo sicuro notifyAppReady() runs, but it isn’t a substitute for shipping compatible native code — a mismatch that crashes later, or crashes natively, can slip past it.
When a bundle needs new native code, build and submit a new binary to the App Store / Play Store (or rebuild with Capgo Cloud Build). Once users update the binary, the bundle’s native dependencies line up and the live update runs correctly.
Se un pacchetto incompatibile è già attivo su un canale, ripristina il canale alla versione compatibile più recente per fermare la sua distribuzione fino a quando non è disponibile la versione nativa. Vedi Ripristini.
Due guardiani complementari, entrambi dei quali effettuano effettivamente l'ispezione dei tuoi pacchetti nativi:
Fallisci l'upload in CI — --fail-on-incompatible
Aggiungi la flag alla tua bundle upload passo. Se i pacchetti nativi del bundle non corrispondono alla versione attualmente in linea del canale, l'upload fallisce con un codice di uscita non zero e nulla viene spedito — quindi il tuo pipeline ti impedisce di pubblicare in modo silenzioso un aggiornamento OTA che non può avere effetto fino a quando gli utenti non installano una versione nativa:
bunx @capgo/cli@latest bundle upload --channel production --fail-on-incompatibleLe caricature compatibili — e i casi in cui il controllo non può essere eseguito (un nuovo canale, o nessuna metadata remota) — passano invariati. In un terminale interattivo offre il flusso di costruzione nativa del Capgo Builder al posto; rifiutare fallisce. (Non può essere combinato con --ignore-metadata-check.)
La consegna della porta da versione nativa — metadata + --auto-min-update-version
Quando sei spedisce il costruito nativo e il pacchetto insieme, metti il canale sul metadata e carica con --auto-min-update-version. Capgo esegue il controllo di compatibilità su ogni caricamento e, quando un pacchetto ha bisogno di nuovi code nativi, innalza il livello di aggiornamento affinché i dispositivi che non hanno installato il costruito nativo corrispondente non lo ricevano:
# one-time: switch the channel to the metadata strategybunx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata
# from then on, Capgo sets the floor automatically on every uploadbunx @capgo/cli@latest bundle upload --channel production --auto-min-update-versionVersion Targeting per l'intero set di opzioni di targeting. Sottosezione intitolata “Relazionato”
Auto OTA o Nativo
Wire bundle releaseType in GitHub Azioni o GitLab in modo che CI riconosca l'aggiornamento in tempo reale rispetto a Capgo Costruzione.
Versione Targeting
Invia solo pacchetti compatibili utilizzando canali, regole semver e la strategia di metadati.
Rollbacks
Ripristina un canale alla versione compatibile precedente se un pacchetto incompatibile è stato pubblicato.
Tipi di Aggiornamento
Come funzionano la programmazione del timing, le condizioni di delay e la bloccatura della versione insieme.
CLI: pacchetto
Riferimento per la compatibilità del pacchetto, tipo di rilascio e opzioni di caricamento.
Se stai utilizzando Compatibilità nativa per mantenere aggiornate in sicurezza, connettila con Target di versione per indirizzare i bundle in base alla versione nativa, Rollback per recuperare quando un bundle incompatibile viene distribuito, Tipi di aggiornamento per comprendere il blocco di versione del canale, e il Capgo CLI riferimento del bundle per le compatibilità e i comandi di rilascio.