Zum Inhalt springen

Automatische Aktualisierung

Diese Dokumentation wird erklären, wie Sie Ihren Auto-Update-Server ausführen können.

Stellen Sie sicher, dass Ihr Bundle über HTTPS bereitgestellt wird und der Server die richtigen CORS-Kopfzeilen hat, um dem App die Möglichkeit zu geben, die Aktualisierung herunterzuladen. Beispiel: https://myserver.com/app/updates/updates.json

Wenn Sie unbekannt mit dem Bereitstellen eines Bundles sind, empfehlen wir Ihnen, Capgo Cloud auszuprobieren oder ein Beispiel hier zu sehen:

Hinzufügen eines updateUrl zu Ihrem capacitor.config.json.

{
"plugins": {
"CapacitorUpdater": {
"updateUrl": "https://myserver.com/app/updates/updates.json",
}
}
}

Die Erweiterung wird bei jedem Start der App einen POST-Aufruf an Ihr API durchführen, mit diesem Body:

interface AppInfos {
"platform": "ios" | "android" | "electron",
"device_id": "UUID_of_device_unique_by_install",
"app_id": "APPID_FROM_CAPACITOR_CONFIG",
"custom_id": "your_custom_id_set_on_runtime",
"plugin_version": "PLUGIN_VERSION",
"version_build": "VERSION_NUMBER_FROM_NATIVE_CODE",
"version_code": "VERSION_CODE_FROM_NATIVE_CODE",
"version_name": "LAST_DOWNLOADER_VERSION" | "builtin"
"version_os": "VERSION_OF_SYSTEM_OS",
"is_emulator": boolean,
"is_prod": boolean,
}

Der Server API sollte antworten, in JSON, auf den capacitor-Updater-Plugin. Mit dieser Daten, wenn ein Update erforderlich ist:

{
"version": "1.2.3",
"url": "https://myserver.com/app/updates/my-new-app-2.0.0.zip",
"checksum": "sha256_checksum_of_bundle"
}

Bei der Auto-aktualisierungsmodus sollte der Server die Versionen vergleichen und die richtige zurückgeben, wenn die URL-Schlüssel vorhanden ist, startet der Plugin den Download-Prozess.

Wenn Sie den Schlüssel “message” und “error” hinzufügen, wird die Version nicht gesetzt und die Nachricht wird stattdessen in den Protokollen angezeigt.

version Der Schlüssel sollte in semver Format.

Die Zip sollte index.html als Datei am Root oder nur eine Ordner am Root mit index.html drinnen haben.

Sie können den Befehl von CLI verwenden, um Ihr Bundle zu komprimieren:

Erstellen Sie ein Bundle mit Ihren Dateien, um es von Ihrem Server auszuliefern
npx @capgo/cli bundle zip --path [/path/to/my/bundle]

Wichtig: Sie müssen den Capgo CLI verwenden, um Ihr Bundle-Zip-Datei zu erstellen. Der Capgo-Plugin erfordert eine spezifische Zip-Format und -Struktur, die nur dann garantiert ist, wenn Sie das offizielle CLI-Tool verwenden. Standard-Zip-Utilitäten können inkompatible Archive erstellen.

Um die Prüfsumme für Ihr Bundle zu generieren, verwenden Sie den Capgo CLI-Zip-Befehl mit dem Flag: --json Bundle mit Prüfsummeninformationen erstellen

Auf die Zwischenablage kopieren
npx @capgo/cli bundle zip [appId] --json

Dieser Befehl wird: __CAPGO_KEEP_0__

  • Erstelle ein korrekt formatiertes Zip-Datei, das mit dem Capgo-Plugin kompatibel ist
  • Generiere den SHA256-Prüfsummenwert für die Integritätsprüfung
  • Gib die Bundle-Informationen im JSON-Format aus

Beispiel-Ausgabe:

{
"version": "1.2.3",
"checksum": "a1b2c3d4e5f6789...",
"size": 1234567
}

Verwende den checksum Wert aus dieser Ausgabe in Ihrer API-Antwort, um sicherzustellen, dass das Plugin die Bundle-Integrität vor der Installation überprüfen kann.