Zum Inhalt springen

Deltas-Updates

Capgo’s Live Update-System kann Updates schneller und effizienter liefern, indem nur die geänderten Dateien gesendet werden, anstatt das gesamte JS-Bundle.

Dies ist besonders vorteilhaft für Benutzer mit langsameren oder abgerechneten Netzwerkverbindungen, da es die Menge an Daten minimiert, die heruntergeladen werden muss.

Dies ist insbesondere für Benutzer auf langsamen oder meterierten Netzwerkverbindungen von Vorteil, da es die Menge an herunterzuladender Daten minimiert.

Wie Delta-Updates funktionieren

Wie Delta-Updates funktionieren

Delta updates in Capgo are handled by the Capgo plugin installed in your app. When you upload a new version of your app using the --delta flag, Capgo tut Folgendes:

  1. Jedes Datei in Ihrem Build wird einzeln als Differenzdatei hochgeladen
  2. Für jede Differenzdatei werden Prüfsummen generiert
  3. Die Liste der Differenzdateien, mit ihren Pfaden und Prüfsummen, wird im Capgo-Datenbank gespeichert

Wenn ein Gerät, das Ihre App ausführt, nach einer Aktualisierung sucht, erhält das Capgo-Plugin die Liste der Differenzdateien für das neue Bundle. Es vergleicht sie mit den Dateien, die es bereits hat, und identifiziert die geänderten Dateien auf der Grundlage der Prüfsummen und Dateipfaden

Das Plugin lädt dann nur die geänderten Dateien herunter, anstatt das gesamte JS-Bundle. Es rekonstruiert die neue Version der App, indem es diese heruntergeladenen Dateien mit den unveränderten Dateien kombiniert, die es bereits hat

Welche Geräte erhalten Delta und welche das volle Zip

Abschnitt mit dem Titel "Welche Geräte erhalten Delta und welche das volle Zip"

Ein Bundle, das mit --delta hat sowohl ein volles Zip als auch Differenzdateien. Auf einem Kanal mit der Standard Zip + Delta Herunterladungsformat, jedes Gerät erhält das beste Paket, das es unterstützt:

  • Geräte auf einer Plugin-Version mit Delta-Unterstützung (5.10.0+, 6.25.0+, 7.0.35+, oder 8+) laden nur die geänderten Delta-Dateien herunter.
  • Geräte auf einer älteren Plugin-Version ohne Delta-Unterstützung laden das volle Zip herunter.
  • Bundles, die ohne --delta haben keine Delta-Dateien, daher laden alle Geräte das volle Zip herunter.

Es ist also zu erwarten, dass Sie nach der Aktivierung von Delta immer noch einige volle Zip-Downloads sehen. Sie stammen von Geräten, die noch eine ältere native Build mit einer alten Plugin-Version laufen. Sie verschwinden, wenn die Benutzer die App aus dem Store aktualisieren.

Sie können dies pro Kanal mit der Einstellung ändern. setting.

Deltas reduzieren auch Ihren Capgo Bandbreitenverbrauch. Die Bandbreite wird nur für die Dateien gezählt, die ein Gerät tatsächlich herunterlädt, daher zählen bei Delta nur die geänderten Dateien, nicht das gesamte Bundle. Dateien oder vollständige Zip-Dateien, die bereits an der Edge gecached sind, werden nicht gezählt, und unterbrochene Downloads werden an der Stelle fortgesetzt, an der sie abgebrochen wurden, ohne dass der heruntergeladene Teil zweimal gezählt wird. Siehe Wie wird der Bandbreitenverbrauch gezählt?.

Um Delta-Updates für Ihre Capgo App zu aktivieren, verwenden Sie einfach die --delta Flag bei der Hochladen einer neuen Version:

Terminalfenster
npx @capgo/cli@latest bundle upload --delta

Wenn autoUpdate auf eine sofortige Anwendungsmethode ("atInstall", "onLaunch", oder "always") in Ihrem capacitor.config, das CLI erkennt es. In nicht interaktiven Umgebungen sendet es Delta-Updates automatisch, und in interaktiven Umgebungen fragt es Sie nach Bestätigung, bevor es hochlädt. directUpdate config wird weiterhin erkannt. Verwenden Sie --no-delta um eine vollständige Bundle-Upload zu erzwingen.

  • Leere Dateien: Das CLI protokolliert Ignoring empty file... und schließt leere Dateien aus den Delta-Dateien aus. Es schlägt die Upload-Operation nicht aus, daher kann das Hinzufügen einer leeren Datei das Ergebnis-Bundle ohne Unterbrechung der Bereitstellung ändern. Fügen Sie keine leeren Dateien in Delta-Bundle-Pfade ein.
  • Leerzeichen in Pfaden: Delta-Uploads scheitern, bevor sie Dateien hochladen, wenn ein Bundle-Pfad Leerzeichen enthält. Benennen Sie die Datei oder den Ordner um, um Leerzeichen zu entfernen, bevor Sie ein Delta-Update hochladen.

Wenn Sie sicherstellen möchten, dass alle Uploads Delta-Updates sind und keine ungewollten vollständigen Bundle-Uploads zulassen, können Sie das verwenden: --delta-only Flag:

Terminalfenster
npx @capgo/cli@latest bundle upload --delta-only

When --delta-only is used, Capgo will only upload the delta files, without a full zip. Any device on a plugin version without Delta support will not be able to download the update.

Sie möchten möglicherweise --delta-only if:

  • Sie setzen ein CI/CD-Pipeline ein und möchten sicherstellen, dass alle automatisierten Uploads Delta-Updates sind
  • Ihr App ist groß und die Bandbreite ist eingeschränkt, daher müssen Sie die Upload- und Download-Größen minimieren
  • Ihre App ist groß und die Bandbreite ist eingeschränkt, daher müssen Sie die Upload-/Download-Größe minimieren.

Wenn Sie eine vollständige Bundle-Upload benötigen, während --delta-only ist gesetzt, führen Sie einfach den Upload-Befehl ohne --delta-onlydies wird die Einstellung für diesen einzelnen Upload überschreiben, sodass Sie eine vollständige Bundle pushen können, wenn Sie dies benötigen.

Wenn Delta-Updates nicht funktionieren (d. h. Geräte laden immer die vollständige JS-Bundle herunter, auch bei kleinen Änderungen), überprüfen Sie, ob Sie

  • Jede neue Version --delta Jedes Mal, wenn Sie eine neue Version hochladen
  • If using --delta-onlystellen Sie sicher, dass Sie versehentlich nichts ausgelassen haben. --delta flag
  • Ihr Gerät läuft mit einer Pluginversion mit Delta-Unterstützung ("5.10.0+, 6.25.0+, 7.0.35+oder 8+)
  • Die Kanal-Download-Format ist nicht Nur Vollzip
  • Dein Gerät hat eine stabile Netzwerkverbindung und kann die Capgo-Server erreichen

Du kannst auch die Capgo-Webanwendung verwenden, um die Details deiner letzten Uploads zu überprüfen:

  1. Gehe zur Webanwendung
  2. Klicke auf deine App
  3. Klicke auf die Anzahl der Pakete in der Statistikleiste.
  4. Wähle das letzte Paket
  5. Überprüfe die Delta files Zeile. Sie zeigt No Delta-Dateien Wenn das Bundle als vollständiges Zip-Datei hochgeladen wurde. Bundle-Typ

Wenn Sie weiterhin Schwierigkeiten haben, wenden Sie sich bitte an Capgo-Support, um weitere Unterstützung zu erhalten. Sie können die Server-Protokolle überprüfen, um sicherzustellen, dass Ihre Delta-Uploads korrekt verarbeitet werden und dass Geräte die Delta-Dateien empfangen.

Das ist alles! Die --delta Flaggtell Capgo an, die einzelnen Delta-Dateien hochzuladen, die für Delta-Updates erforderlich sind.

Hinweis: Sie müssen --delta jedes Mal verwenden, wenn Sie eine neue Version hochladen, die Sie als Delta-Update liefern möchten. Wenn Sie die Flagg omissieren, wird Capgo die gesamte JS-Bundle als einzelne Datei hochladen und Geräte werden die ganze Bundle herunterladen, selbst wenn nur ein kleiner Teil geändert wurde.

Wenn Sie Delta-Updates verwenden Delta-Updates um live update Lieferung zu planen, verbinden Sie es mit Capgo Live Updates für den Produktworkflow in Capgo Live Updates, Overview für die Implementierungsdetail in Überblick, Übersicht für die Implementierungsdetails in Features, Aktualisierungsverhalten für die Implementierungsdetails in Updateverhalten, und Updateverhalten für die Implementierungsdetails in Update-Typen.