Zum Inhalt springen

Auto-Update

GitHub

In dieser Dokumentation erfährst du, wie du deinen Auto-Update-Server betreibst.

Stelle sicher, dass dein Bundle über HTTPS bereitgestellt wird und der Server die korrekten CORS-Header setzt, damit die App das Update herunterladen kann. Z. B. https://myserver.com/app/updates/updates.json

Falls du noch keine Erfahrung mit dem Hosting von Bundles hast, empfehlen wir Capgo Cloud oder schau dir dieses Beispiel an:

Füge ein updateUrl in deine capacitor.config.json.

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

Das Plugin sendet bei jedem App-Start einen POST-Request an dein API 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 API-Server sollte als JSON auf das capacitor-updater Plugin antworten. Wenn ein Update erforderlich ist, sieht die Antwort so aus:

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

Im Auto-Update-Modus vergleicht der Server die Versionen und gibt die richtige zurück; ist der URL-Key vorhanden, startet das Plugin den Download.

Fügst du die Keys „message“ und „error“ hinzu, wird die Version nicht gesetzt und die Meldung stattdessen in den Logs angezeigt.

version Der Key muss im semver format.

Das Zip-Archiv sollte index.html als Datei im Root-Verzeichnis oder nur ein Ordner im Root mit index.html inside.

Du kannst den Befehl von CLI nutzen, um dein Bundle zu zippen:

Erstelle ein Bundle mit deinen Dateien, um sie von deinem Server aus bereitzustellen
npx @capgo/cli bundle zip --path [/path/to/my/bundle]

Wichtig: Du musst das Capgo CLI verwenden, um deine Bundle-Zip-Datei zu erstellen. Das Capgo Plugin erfordert ein spezielles Zip-Format und eine Struktur, die nur mit dem offiziellen CLI Tool garantiert werden kann. Standard-Zip-Tools erstellen eventuell inkompatible Archive.

Um den Checksum für dein Bundle zu generieren, nutze den Capgo CLI zip Befehl mit dem --json Flag:

Bundle mit Checksum-Informationen erstellen
npx @capgo/cli bundle zip [appId] --json

Dieser Befehl wird:

  • Eine korrekt formatierte Zip-Datei erstellen, die mit dem Capgo Plugin kompatibel ist
  • Den SHA256-Checksum zur Integritätsprüfung generieren
  • Bundle-Informationen im JSON-Format ausgeben

Beispiel-Output:

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

Nutze das checksum diesen Wert aus der API Response, damit das Plugin die Bundle-Integrität vor der Installation prüfen kann.

Wenn du es nutzt Auto-Update um Migration und Enterprise-Betrieb zu planen, verbinde es mit Verwendung von @capgo/capacitor-updater für die native Funktion in der Verwendung von @capgo/capacitor-updater, Capgo Enterprise für den Produkt-Workflow in Capgo Enterprise, Ionic Enterprise Plugin-Alternativen für den Produkt-Workflow in Ionic Enterprise Plugin-Alternativen, Capgo Alternativen für den Produkt-Workflow in Capgo Alternativen, und Capgo Consulting für den Produkt-Workflow in Capgo Consulting.