Zum Inhalt springen

Delta-Updates

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

Dies ist insbesondere für Benutzer mit langsamen oder abgerechneten Netzwerkverbindungen von Vorteil, da es die Menge an heruntergeladenen Daten minimiert.

Aus diesem Grund wird die App nur einmal heruntergeladen, wenn sie große Assets enthält, die selten geändert werden, wie Bilder oder Videos, im Vergleich zu zugehörigen JS-Dateien.

Delta (manifest) 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 does the following:

  1. Prüfsummen werden für jede Datei generiert
  2. Ein neuer JSON-Manifest wird erstellt, das alle Dateien und ihre Prüfsummen enthält
  3. Dieses Manifest wird in die Capgo-Datenbank hochgeladen
  4. This manifest is uploaded to the Capgo database

When a device running your app checks for an update, the Capgo plugin receives the new manifest from the server. It compares this manifest to the one it currently has, identifying which files have changed based on the checksums and file paths.

Manifest

Delta (Manifest)-Updates aktivieren

Abschnitt: "Delta (Manifest)-Updates aktivieren"

Um Delta-Updates (Manifest) für Ihre Capgo-App zu aktivieren, verwenden Sie einfach die Flagge bei der Hochladen einer neuen Version: --delta Terminal-Fenster

Zwischenablage kopieren
npx @capgo/cli@latest bundle upload --delta

auf "Echtzeit-Übernehmen" ( autoUpdate " oder " ) in Ihrer"atInstall", "onLaunch"Einstellung gesetzt ist. "always"Einstellung capacitor.configDie CLI erkennt es. In nicht-interaktiven Umgebungen werden Delta-Updates (Manifest) automatisch gesendet, und in interaktiven Umgebungen wird Sie vor dem Hochladen aufgefordert, die Bestätigung zu geben. Legacy directUpdate Die Konfiguration wird weiterhin erkannt. Verwenden Sie --no-delta um eine vollständige Bundle-Upload zu erzwingen.

  • Leere Dateien: Die CLI protokolliert Ignoring empty file... und schließt leere Dateien aus dem Delta-Manifest aus. Es wird keine Upload-Fehler verursacht, daher kann die Hinzufügung einer leeren Datei das Ergebnis des Bundles ändern, ohne die Bereitstellung zu stoppen. Leere Dateien sollten nicht in Delta-Bundle-Pfaden enthalten sein.
  • Pfade mit Leerzeichen: Delta-Uploads scheitern, bevor Dateien hochgeladen werden, 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 (Manifest)-Updates sind und versehentliche vollständige Bundle-Uploads verhindern möchten, können Sie das verwenden. --delta-only Flag:

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

Wenn --delta-only wird verwendet, wird nur Capgo einzeln hochgeladen und ein Manifest erstellt. Jedes Gerät, das Delta (Manifest)-Updates nicht unterstützt, kann das Update nicht herunterladen.

Sie möchten vielleicht verwenden --delta-only Wenn:

  • Sie möchten immer Delta (Manifest)-Updates verwenden und vollständige Bundle-Uploads nie zulassen
  • Sie setzen ein CI/CD-Pipeline ein und möchten sicherstellen, dass alle automatisierten Uploads Delta (Manifest)-Updates sind
  • Ihr App ist groß und die Bandbreite ist eingeschränkt, sodass Sie die Upload- und Downloadgröße minimieren müssen

Wenn Sie ein vollständiges Bundle-Upload durchführen müssen --delta-only lässt sich einfach durch die Ausgabekommando ohne --delta-onlyDies wird die Einstellung für diesen einzelnen Upload überschreiben und ermöglicht es Ihnen, eine vollständige Bundle zu pushen, wenn erforderlich.

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

  • Sie das --delta Flag setzen, sobald Sie eine neue Version hochladen
  • Wenn Sie --delta-onlyverwenden, stellen Sie sicher, dass Sie das --delta Flag nicht vergessen haben
  • Sie haben das neueste Plugin von Capgo installiert
  • Sie haben eine stabile Netzwerkverbindung und können die Capgo-Server erreichen

Sie können auch die Capgo-Webanwendung verwenden, um die Details Ihrer 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 aus
  5. Überprüfe das Partial Feld 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-(Manifest)-Uploads korrekt verarbeitet werden und dass Geräte die aktualisierten Manifeste empfangen.

Das ist alles! Die Flagge sagt __CAPGO_KEEP_0__ an, die einzelnen Dateianlagen und die Manifest-Generierung durchzuführen, die für Delta-(Manifest)-Updates erforderlich sind. --delta Das ist alles! Die Flagge sagt Capgo an, die einzelnen Dateianlagen und die Manifest-Generierung durchzuführen, die für Delta-(Manifest)-Updates erforderlich sind.

Beachten Sie, dass Sie --delta jedes Mal verwenden müssen, wenn Sie eine neue Version hochladen, die als Delta-Update (Manifest) bereitgestellt werden soll. Wenn Sie die Flag-Option überspringen, wird Capgo die gesamte JS-Bundle als einzelnes Datei hochladen und Geräte werden die gesamte Bundle herunterladen, auch wenn nur ein kleiner Teil geändert wurde.

Wenn Sie Deltas context Capgo Live Updates for the product workflow in Capgo Live Updates, __CAPGO_KEEP_0__ Live Updates context Seite/ Bereich: Live-Updates-Produktseite. Rolle: Kurzer UI-Label oder Navigationspunkt. Gesehen in: Seite live-update.astro. Produkt/Markenname und Entwicklertitel von Capgo genau beibehalten. Nachrichten Schlüssel `live_update_hero_badge` (Live-Update-Helden-Badge). für die Implementierungsdetails in Features, Aktualisierungsverhalten für die Implementierungsdetails in Aktualisierungsverhalten und Aktualisierungstypen für die Implementierungsdetails in Aktualisierungstypen.