Schnelle Aktualisierungen
Capgos Live-Update-System kann Updates schneller und effizienter bereitstellen, indem nur die geänderten Dateien und nicht das gesamte JS-Bundle gesendet werden
Dies ist besonders vorteilhaft für Benutzer mit langsameren oder getakteten Netzwerkverbindungen, da die Menge der herunterzuladenden Daten minimiert wird
Ein zweiter Vorteil ist, wenn die App große Assets enthält, die sich selten ändern, wie Bilder oder Videos - im Vergleich zu gezippten JS-Dateien werden diese nur einmal heruntergeladen
Wie Differenzielle Updates funktionieren
Differenzielle Updates in Capgo werden durch das in Ihrer App installierte Capgo-Plugin verarbeitet. Wenn Sie eine neue Version Ihrer App mit der Flag --partial
hochladen, führt Capgo Folgendes aus:
- Jede Datei in Ihrem Build wird einzeln hochgeladen
- Für jede Datei werden Prüfsummen generiert
- Ein neues JSON-Manifest wird erstellt, das alle Dateien und ihre Prüfsummen auflistet
- Dieses Manifest wird in die Capgo-Datenbank hochgeladen
Wenn ein Gerät, auf dem Ihre App läuft, nach Updates sucht, erhält das Capgo-Plugin das neue Manifest vom Server. Es vergleicht dieses Manifest mit dem aktuellen und identifiziert anhand der Prüfsummen und Dateipfade, welche Dateien sich geändert haben
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
Aktivierung von Differenziellen Updates
Um differenzielle Updates für Ihre Capgo-App zu aktivieren, verwenden Sie einfach die Flag --partial
beim Hochladen einer neuen Version:
Erzwingen von Differenziellen Updates
Wenn Sie sicherstellen möchten, dass alle Uploads differenzielle Updates sind und versehentliche vollständige Bundle-Uploads verhindert werden, können Sie die Flag --partial-only
verwenden:
npx @capgo/cli@latest upload --partial-only
Wenn --partial-only
verwendet wird, lädt Capgo nur einzelne Dateien hoch und generiert ein Manifest. Geräte, die keine partiellen Updates unterstützen, können das Update nicht herunterladen
Sie möchten --partial-only
möglicherweise verwenden, wenn:
- Sie immer differenzielle Updates verwenden und nie vollständige Bundle-Uploads zulassen möchten
- Sie eine CI/CD-Pipeline einrichten und sicherstellen möchten, dass alle automatisierten Uploads differenziell sind
- Ihre App groß ist und die Bandbreite begrenzt ist, sodass Sie Upload-/Download-Größen minimieren müssen
Wenn Sie einen vollständigen Bundle-Upload durchführen müssen, während --partial-only
gesetzt ist, führen Sie den Upload-Befehl einfach ohne --partial-only
aus. Dies überschreibt die Einstellung für diesen einzelnen Upload und ermöglicht es Ihnen, ein vollständiges Bundle zu pushen, wenn nötig
Fehlerbehebung
Wenn differenzielle Updates nicht zu funktionieren scheinen (d.h. Geräte laden immer das vollständige JS-Bundle herunter, auch bei kleinen Änderungen), überprüfen Sie Folgendes:
- Sie verwenden die Flag
--partial
bei jedem Upload einer neuen Version - Bei Verwendung von
--partial-only
stellen Sie sicher, dass Sie die Flag--partial
nicht versehentlich weggelassen haben - Ihr Gerät läuft mit der neuesten Version des Capgo-Plugins
- Ihr Gerät hat eine stabile Netzwerkverbindung und kann die Capgo-Server erreichen
Sie können auch die Capgo-Webapp verwenden, um die Details Ihres letzten Uploads zu überprüfen:
- Gehen Sie zur Webapp
- Klicken Sie auf Ihre App
- Klicken Sie auf die Bundles-Nummer in der Statistikleiste
- Wählen Sie das letzte Bundle
- Überprüfen Sie das
Partial
-Feld
Wenn Sie weiterhin Probleme haben, wenden Sie sich bitte an den Capgo-Support für weitere Unterstützung. Sie können die Server-Logs überprüfen, um zu bestätigen, dass Ihre partiellen Uploads korrekt verarbeitet werden und die Geräte die aktualisierten Manifeste erhalten
Das war’s! Die Flag --partial
weist Capgo an, die einzelnen Datei-Uploads und Manifest-Generierung durchzuführen, die für differenzielle Updates benötigt werden
Beachten Sie, dass Sie --partial
jedes Mal verwenden müssen, wenn Sie eine neue Version hochladen, die als differenzielles Update bereitgestellt werden soll. Wenn Sie die Flag weglassen, lädt Capgo das gesamte JS-Bundle als einzelne Datei hoch, und Geräte werden das gesamte Bundle herunterladen, auch wenn sich nur ein kleiner Teil geändert hat