Capgo Delta-Updates: Nur geänderte Dateien mit --delta bereitstellen
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Das Live Update-System von Capgo kann Updates schneller und effizienter ausliefern, indem es nur die geänderten Dateien sendet, statt das gesamte JS-Bundle.
Das ist besonders vorteilhaft für Nutzer mit langsamen oder datenbegrenzten Verbindungen, da es die Menge an herunterzuladenden Daten minimiert.
Ein zweiter Vorteil ergibt sich, wenn die App große Assets enthält, die sich selten ändern, wie Bilder oder Videos. Im Vergleich zu gepackten JS-Dateien werden diese nur einmal heruntergeladen.
Wie Delta Updates funktionieren
Abschnitt: „So funktionieren Delta Updates“Delta Updates in Capgo werden über das in deiner App installierte Capgo-Plugin abgewickelt. Wenn du eine neue Version deiner App mit dem --delta Flag hochlädst, macht Capgo Folgendes:
- Jede Datei in deinem Build wird einzeln als Delta-Datei hochgeladen
- Für jede Delta-Datei werden Checksummen erzeugt
- Die Liste der Delta-Dateien mit ihren Pfaden und Checksummen wird in der Capgo-Datenbank gespeichert
Wenn ein Gerät mit deiner App nach einem Update sucht, erhält das Capgo-Plugin die Liste der Delta-Dateien für das neue Bundle. Es vergleicht sie mit den Dateien, die es schon hat, und erkennt anhand der Checksummen und Dateipfade, welche Dateien sich geändert haben.
Das Plugin lädt dann nur die geänderten Dateien herunter statt des gesamten JS-Bundles. Es setzt die neue Version der App zusammen, indem es die heruntergeladenen Dateien mit den unveränderten Dateien kombiniert, die es bereits hat.
Welche Geräte bekommen Delta und welche das vollständige Zip
Abschnitt: „Welche Geräte bekommen Delta und welche die vollständige Zip?“A bundle uploaded with --delta enthält sowohl ein vollständiges Zip als auch Delta-Dateien. Bei einem Channel mit dem Standard- Zip + Delta Downloadformat bekommt jedes Gerät das beste Paket, das es unterstützt:
- Geräte mit einer Plugin-Version, die Delta unterstützt (
5.10.0+,6.25.0+,7.0.35+, oder8+) laden nur die geänderten Delta-Dateien herunter. - Geräte mit einer älteren Plugin-Version ohne Delta-Support laden das vollständige Zip herunter.
- Ohne hochgeladene Bundles
--deltahaben keine Delta-Dateien, sodass jedes Gerät das vollständige Zip herunterlädt.
Es ist also normal, dass nach der Aktivierung von Delta noch einige vollständige ZIP-Downloads auftreten. Diese stammen von Geräten, auf denen noch ein älterer Native Build mit einer alten Plugin-Version läuft. Sie verschwinden, sobald die Nutzer die App aus dem Store aktualisieren.
Du kannst dies pro Channel über die Download-Format einstellung.
Delta-Updates und Bandbreitennutzung
Abschnitt mit dem Titel „Delta-Updates und Bandbreitennutzung“Delta-Updates senken außerdem deinen Capgo Bandbreitenverbrauch. Die Bandbreite zählt nur die Dateien, die ein Gerät tatsächlich herunterlädt – bei Delta also nur die geänderten Dateien, nicht das ganze Bundle. Dateien oder vollständige ZIPs, die bereits am Edge gecacht sind, zählen nicht, und abgebrochene Downloads werden an der Stelle fortgesetzt, an der sie gestoppt haben, ohne den bereits heruntergeladenen Teil doppelt zu zählen. Siehe Wie wird die Bandbreite gezählt?.
Delta-Updates aktivieren
Abschnitt mit dem Titel „Delta-Updates aktivieren“Um Delta-Updates für deine Capgo App zu aktivieren, nutze einfach das --delta Flag beim Upload einer neuen Version:
npx @capgo/cli@latest bundle upload --deltaWenn autoUpdate ist auf einen Instant-Apply-Modus ("atInstall", "onLaunch", oder "always") in deiner capacitor.config, erkennt CLI es. In nicht-interaktiven Umgebungen sendet es Delta-Updates automatisch, in interaktiven Umgebungen fragt es vor dem Upload nach einer Bestätigung. Legacy- directUpdate Konfiguration wird weiterhin erkannt. Nutze --no-delta , um einen vollständigen Bundle-Upload zu erzwingen.
Einschränkungen bei Delta-Updates
Abschnitt mit dem Titel „Delta-Update-Einschränkungen“- Leere Dateien: Die CLI-Logs
Ignoring empty file...schließt Zero-Byte-Dateien aus den Delta-Dateien aus. Der Upload schlägt dadurch nicht fehl, das Hinzufügen einer leeren Datei kann also das resultierende Bundle ändern, ohne dein Deployment zu stoppen. Verwende keine Zero-Byte-Dateien in Delta-Bundle-Pfaden. - Leerzeichen in Pfaden: Delta-Uploads schlagen fehl, noch bevor Dateien hochgeladen werden, wenn ein Bundle-Pfad ein Leerzeichen enthält. Benenne die Datei oder das Verzeichnis um, um die Leerzeichen zu entfernen, bevor du ein Delta-Update hochlädst.
Delta-Updates erzwingen
Abschnitt mit dem Titel „Delta-Updates erzwingen“Wenn du sicherstellen willst, dass alle Uploads Delta-Updates sind und versehentliche Full-Bundle-Uploads verhinderst, kannst du den --delta-only Flagge:
npx @capgo/cli@latest bundle upload --delta-onlyWenn --delta-only wird verwendet, lädt Capgo nur die Delta-Dateien hoch, ohne ein vollständiges Zip. Jedes Gerät mit einer Plugin-Version ohne Delta-Support kann das Update dann nicht herunterladen.
Eventuell möchtest du --delta-only if:
- Verwenden Sie immer Delta-Updates und erlauben Sie niemals das Hochladen vollständiger Bundles.
- Du richtest eine CI/CD-Pipeline ein und möchtest sicherstellen, dass alle automatisierten Uploads als Delta erfolgen
- Deine App ist groß und die Bandbreite begrenzt, daher musst du Upload-/Download-Größen minimieren
Wenn Sie ein volles Bundle hochladen müssen, während --delta-only gesetzt ist, führe einfach den Upload-Befehl ohne --delta-onlyaus. Dies überschreibt die Einstellung für diesen einzelnen Upload und ermöglicht es dir, bei Bedarf ein vollständiges Bundle zu pushen.
Fehlerbehebung
Abschnitt mit dem Titel „Troubleshooting“Wenn Delta-Updates nicht zu funktionieren scheinen (d. h. Geräte laden immer das vollständige JS-Bundle herunter, selbst bei kleinen Änderungen), prüfe doppelt, ob:
- Du verwendest
--deltaFlagge jedes Mal, wenn du eine neue Version hochlädst - Wenn du
--delta-onlyverwendest, achte darauf, dass du die--deltaFlagge - Ihr Gerät verwendet eine Plugin-Version mit Delta-Unterstützung (
5.10.0+,6.25.0+,7.0.35+, oder8+) - Das Download-Format des Channels ist nicht Das Download-Format des Channels ist nicht
- Ihr Gerät verfügt über eine stabile Netzwerkverbindung und kann die Capgo-Server erreichen
Sie können auch die Capgo-Web-App verwenden, um die Details Ihres letzten Uploads zu überprüfen:
- Besuchen Sie die webapp
- Klicken Sie auf Ihre App
- Klicke auf die Bundle-Anzahl in der Statistik-Leiste.
- Wähle die letzte Bundle-Zeile
- Schau in die
Delta filesaus. Sie zeigt keine Delta-Files an, wenn das Bundle nur als vollständiges ZIP hochgeladen wurde.
Falls weiterhin Probleme auftreten, wende dich bitte an den Capgo Support. Das Team kann die Server-Logs prüfen, um sicherzustellen, dass deine Delta-Uploads korrekt verarbeitet werden und die Geräte die Delta-Files erhalten.
Das war's! Das --delta Flag weist Capgo an, die einzelnen Delta-Files für Delta-Updates hochzuladen.
Beachte, dass du es jedes Mal verwenden musst, --delta wenn du eine neue Version hochlädst, die als Delta-Update ausgeliefert werden soll. Wenn du das Flag weglässt, lädt Capgo das gesamte JS-Bundle als eine einzige Datei hoch, und Geräte laden das komplette Bundle herunter, selbst wenn sich nur ein kleiner Teil geändert hat.
Weiter mit Delta-Updates
Abschnitt mit dem Titel „Weitermachen bei Delta-Updates“Wenn du es nutzt Delta-Updates um die Auslieferung von live update zu planen, verbinde sie mit Capgo Live Updates für den Produkt-Workflow in Capgo Live Updates, Übersicht für die Implementierungsdetails in Overview, Funktionen für die Implementierungsdetails in Features, Update-Verhalten für die Implementierungsdetails in Update Behavior und Update-Typen für die Implementierungsdetails in Update Types.