Zum Inhalt springen

Auto Update

Diese Dokumentation erklärt, wie Sie Ihren Auto-Update-Server ausführen.

Stellen Sie sicher, dass Ihr Bundle über HTTPS bereitgestellt wird und der Server die richtigen CORS-Header hat, um der App das Herunterladen des Updates zu ermöglichen. z.B. https://myserver.com/app/updates/updates.json

Falls Sie nicht vertraut mit der Bereitstellung eines Bundles sind, empfehlen wir Ihnen, Capgo Cloud auszuprobieren oder ein Beispiel hier zu sehen:

Fügen Sie eine updateUrl zu Ihrer capacitor.config.json hinzu.

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

Das Plugin wird jedes Mal, wenn die App geöffnet wird, einen POST-Aufruf an Ihre API durchführen, mit diesem Body:

interface AppInfos {
"platform": "ios" | "android",
"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,
}

Die Server-API sollte in JSON an das capacitor-updater-Plugin antworten. Mit diesen Daten, wenn ein Update notwendig ist:

{
"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 sollte der Server die Versionen vergleichen und die richtige zurückgeben. Wenn der URL-Schlüssel vorhanden ist, startet das Plugin den Download-Prozess.

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

Der version-Schlüssel sollte im semver-Format sein.

Die ZIP-Datei sollte index.html als Datei im Root haben, oder nur einen Ordner im Root mit index.html darin.

Sie können den Befehl der CLI verwenden, um Ihr Bundle zu zippen:

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

Wichtig: Sie müssen die Capgo CLI verwenden, um Ihre Bundle-ZIP-Datei zu erstellen. Das Capgo-Plugin erfordert ein bestimmtes ZIP-Format und eine Struktur, die nur durch die Verwendung des offiziellen CLI-Tools garantiert ist. Standard-ZIP-Dienstprogramme können inkompatible Archive erstellen.

Um die Checksumme für Ihr Bundle zu generieren, verwenden Sie den Capgo CLI-ZIP-Befehl mit dem --json-Flag:

Erstellen Sie ein Bundle mit Checksummen-Informationen
npx @capgo/cli bundle zip [appId] --json

Dieser Befehl wird:

  • Eine ordnungsgemäß formatierte ZIP-Datei erstellen, die mit dem Capgo-Plugin kompatibel ist
  • Die SHA256-Checksumme zur Integritätsprüfung generieren
  • Bundle-Informationen im JSON-Format ausgeben

Beispielausgabe:

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

Verwenden Sie 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.