Zum Inhalt springen

Delta-Updates

Capgo's Live-Update-System kann Updates schneller und effizienter liefern, 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 den Datenverkehr minimiert, der heruntergeladen werden muss.

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 zugepackten 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 neues 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

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

auf "Echtzeit-Übernehmen" ( autoUpdate " oder " ) in Ihrer"atInstall", "onLaunch"Einstellung gesetzt ist. "always") in your capacitor.configDie CLI detektiert es. In nicht-interaktiven Umgebungen sendet sie Delta-Updates (Manifest) automatisch, und in interaktiven Umgebungen fragt sie Sie nach Bestätigung vor dem Hochladen. 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 ausschließt Dateien mit Null-Byte-Größe aus dem Delta-Manifest. Sie schlägt das Hochladen nicht aus, daher kann das Hinzufügen einer leeren Datei das Ergebnis-Bundle ohne Unterbrechung der Bereitstellung ändern. Fügen Sie keine Dateien mit Null-Byte-Größe in Delta-Bundle-Pfade ein.
  • Leerzeichen in Pfaden: Delta-Uploads scheitern vor dem Hochladen von Dateien, 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.

If 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 Capgo wird nur einzelne Dateien hochladen und ein Manifest generieren. 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 niemals 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, daher müssen Sie die Upload- und Downloadgröße minimieren.

Wenn Sie ein vollständiges Bundle-Upload durchführen müssen. --delta-only lässt sich einfach ohne --delta-onlyDies wird die Einstellung für diesen einzelnen Upload überschreiben, sodass Sie bei Bedarf ein vollständiges Bundle pushen können.

Überprüfen Sie, ob die Delta-Updates (Manifest-Updates) funktionieren (d. h. ob Geräte immer das vollständige JS-Bundle herunterladen, auch bei kleinen Änderungen). Überprüfen Sie, ob Sie das

  • Flag setzen, sobald Sie eine neue Version hochladen --delta Wenn Sie
  • verwenden, stellen Sie sicher, dass Sie das --delta-onlyFlag nicht versehentlich weggelassen haben --delta Stellen Sie sicher, dass Ihr Gerät die neueste Version des __CAPGO_KEEP_0__-Plugins läuft
  • Stellen Sie sicher, dass Ihr Gerät eine stabile Netzwerkverbindung hat und auf die Capgo-Server zugreifen kann
  • Your device has a stable network connection and can reach the Capgo servers

Sie können auch die Capgo-Webanwendung verwenden, um die Details Ihrer letzten Uploads zu überprüfen:

  1. Gehen Sie zur Webanwendung
  2. Klicken Sie auf Ihre App
  3. Klicken Sie auf die Anzahl der Pakete in der Statistikleiste.
  4. Wählen Sie das letzte Paket
  5. Überprüfen Sie das Partial Feld Pakettyp

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 --delta 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 Flagge ü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":"Seite/ Bereich: Produkt/Preisliste der Unternehmensprodukt. Rolle: Kurzer UI-Label oder Navigationspunkt. Gesehen in: Seite enterprise.astro. Nachrichten Schlüssel `enterprise_delta_updates` (Unternehmens-Delta-Updates)." Capgo Live Updates Capgo Live Updates context":"Seite/ Bereich: Produktseite für Live-Updates. 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)." zur Produktworkflow in __CAPGO_KEEP_0__ Live Updates, Übersicht für die Implementierungsdetails in Features Aktualisierungsverhalten für die Implementierungsdetails in Aktualisierungsverhalten und Aktualisierungstypen Seite bearbeiten