Vai al contenuto

Capgo Aggiornamenti delta: invia solo i file modificati con --delta

Il sistema Live Update di Capgo può distribuire aggiornamenti più rapidamente ed efficientemente inviando solo i file modificati, anziché l'intero bundle JS.

Questo è particolarmente utile per gli utenti con connessioni lente o a consumo, poiché riduce al minimo la quantità di dati da scaricare.

Un secondo vantaggio si ha quando l'app contiene asset di grandi dimensioni che cambiano raramente, come immagini o video: a differenza dei file JS compressi, questi vengono scaricati solo una volta.

Come funzionano i Delta Updates

Section titled “How Delta Updates Work”

Gli aggiornamenti delta in Capgo sono gestiti dal plugin Capgo installato nella tua app. Quando carichi una nuova versione della tua app usando il --delta flag, Capgo esegue le seguenti operazioni:

  1. Ogni file nel tuo build viene caricato individualmente come file delta
  2. Vengono generati checksum per ogni file delta
  3. L'elenco dei file delta, con i relativi percorsi e checksum, viene salvato nel database di Capgo

Quando un dispositivo che esegue la tua app verifica la presenza di aggiornamenti, il plugin Capgo riceve l'elenco dei file delta per il nuovo bundle. Lo confronta con i file già presenti, identificando quali file sono stati modificati in base ai checksum e ai percorsi.

Il plugin scarica quindi solo i file modificati, anziché l'intero bundle JS. Ricostruisce la nuova versione dell'app combinando questi file scaricati con quelli invariati già presenti.

Quali dispositivi ricevono i Delta e quali lo zip completo

Sezione intitolata “Quali dispositivi ricevono Delta e quali il zip completo”

Un bundle caricato con --delta contiene sia un zip completo sia file delta. Su un canale con il formato di download predefinito Zip + delta , ogni dispositivo riceve il pacchetto migliore supportato:

  • I dispositivi con una versione del plugin che supporta Delta (5.10.0+, 6.25.0+, 7.0.35+, o 8+) scaricano solo i file delta modificati.
  • I dispositivi con una versione del plugin più vecchia senza supporto Delta scaricano il zip completo.
  • Bundle caricati senza --delta non hanno file delta, quindi ogni dispositivo scarica l'intero zip.

È quindi normale continuare a vedere alcuni download di zip completi dopo aver abilitato Delta. Provengono da dispositivi che eseguono ancora una vecchia build nativa con una versione obsoleta del plugin. Scompaiono man mano che gli utenti aggiornano l'app dal store.

Puoi modificarlo per canale con Formato download setting.

Gli aggiornamenti Delta riducono anche l'utilizzo della banda di Capgo. La banda conta solo i file effettivamente scaricati dal dispositivo: con Delta vengono conteggiati solo i file modificati, non l'intero bundle. I file o gli zip completi già in cache al bordo non vengono conteggiati, e i download interrotti riprendono da dove si erano fermati senza ricalcolare la parte già scaricata. Vedi Come viene conteggiata la banda?.

Attivazione degli aggiornamenti delta

Sezione intitolata “Abilitazione di Delta Updates”

Per abilitare gli aggiornamenti Delta per la tua app Capgo, usa semplicemente il --delta flag quando carichi una nuova versione:

Finestra del terminale
npx @capgo/cli@latest bundle upload --delta

Se autoUpdate is set to an instant apply mode ("atInstall", "onLaunch", o "always") nel tuo capacitor.config, il CLI lo rileva. Negli ambienti non interattivi invia automaticamente gli aggiornamenti Delta, mentre in quelli interattivi ti chiede conferma prima dell'upload. La configurazione directUpdate legacy viene ancora rilevata. Usa --no-delta per forzare l'upload di un bundle completo.

  • File vuoti: I log di CLI Ignoring empty file... ed esclude i file da zero byte dai file delta. Non fa fallire l'upload, quindi aggiungere un file vuoto può modificare il bundle risultante senza bloccare il deployment. Non includere file da zero byte nei percorsi dei bundle Delta.
  • Spazi nei percorsi: Gli upload Delta falliscono prima dell'invio dei file se un percorso del bundle contiene uno spazio. Rinomina il file o la directory per togliere gli spazi prima di caricare un aggiornamento Delta.

Se vuoi assicurarti che tutti gli upload siano aggiornamenti Delta ed evitare upload accidentali di bundle completi, puoi usare il --delta-only flag:

Finestra del terminale
npx @capgo/cli@latest bundle upload --delta-only

Quando --delta-only Se viene usato, Capgo caricherà solo i file delta, senza uno zip completo. Qualsiasi dispositivo con una versione del plugin senza supporto Delta non potrà scaricare l'aggiornamento.

Potresti voler usare --delta-only se:

  • Vuoi usare sempre gli aggiornamenti Delta e non vuoi mai permettere l'upload di bundle completi
  • Stai configurando una pipeline CI/CD e vuoi assicurarti che tutti gli upload automatizzati siano Delta
  • La tua app è grande e la banda è limitata, quindi devi minimizzare le dimensioni di upload/download

Se devi fare un upload del bundle completo mentre --delta-only è impostato, basta eseguire il comando di upload senza --delta-only. Questo sovrascriverà l'impostazione per quel singolo upload, permettendoti di pushare un bundle completo quando serve.

Se gli aggiornamenti Delta non sembrano funzionare (ovvero i dispositivi scaricano sempre l'intero bundle JS anche per piccole modifiche), verifica bene che:

  • Stai usando il --delta flag ogni volta che effettui l'upload di una nuova versione
  • Se usi --delta-only, assicurati di non aver accidentalmente omesso il --delta flag
  • Il tuo dispositivo sta eseguendo una versione del plugin con supporto Delta (5.10.0+, 6.25.0+, 7.0.35+, o 8+)
  • Il formato di download del canale non è Solo zip completo
  • Il tuo dispositivo ha una connessione di rete stabile e può raggiungere i server Capgo

Puoi anche usare la webapp Capgo per controllare i dettagli del tuo ultimo upload:

  1. Vai a webapp
  2. Clicca sulla tua app
  3. Fai clic sul numero di bundle nella barra delle statistiche.
  4. Seleziona l'ultimo bundle
  5. Consulta la Delta files riga. Mostra Nessun file delta quando il bundle è stato caricato solo come zip completo. tipo di bundle

Se continui ad avere problemi, contatta il supporto Capgo per ulteriore assistenza. Possono controllare i log del server per confermare che i caricamenti Delta vengono elaborati correttamente e che i dispositivi stanno ricevendo i file delta.

Ecco fatto! Il --delta flag istruisce Capgo a caricare i singoli file delta necessari per gli aggiornamenti Delta.

Nota che devi usare --delta ogni volta che carichi una nuova versione che vuoi venga consegnata come Delta update. Se ometti il flag, Capgo caricherà l'intero JS bundle come un singolo file e i dispositivi scaricheranno l'intero bundle anche se è cambiata solo una piccola parte.

Se stai usando Aggiornamenti delta per pianificare la distribuzione di live update, collegalo a Live Updates di Capgo per il workflow del prodotto in Capgo Live Updates, Panoramica per i dettagli di implementazione nell'Overview, Funzionalità per i dettagli implementativi in Features, Comportamento degli aggiornamenti per i dettagli implementativi in Update Behavior, e Tipi di aggiornamento per i dettagli di implementazione in Tipi di aggiornamento.