Vai al contenuto

Auto Update

GitHub

Questa documentazione spiega come eseguire il tuo server di auto-update.

Assicurati che il bundle sia servito via HTTPS e che il server abbia gli header CORS corretti per permettere all'app di scaricare l'aggiornamento. ad es. https://myserver.com/app/updates/updates.json

Se non sai come servire un bundle, ti consigliamo di provare Capgo Cloud o di guardare un esempio qui:

Aggiungi un updateUrl al tuo capacitor.config.json.

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

Il plugin farà una chiamata POST al tuo API ogni volta che l'app viene aperta, con questo 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,
}

Il server API dovrebbe rispondere in JSON al plugin capacitor-updater. Con questi dati, se serve un aggiornamento:

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

In modalità Auto-update, il server deve confrontare le versioni e restituire quella corretta; se la chiave URL è presente, il plugin avvia il download.

Se aggiungi le chiavi “message” ed “error”, la versione non verrà impostata e il messaggio verrà visualizzato nei log.

version la chiave deve essere in semver formato.

Lo zip deve contenere index.html come file alla root, oppure una singola cartella alla root con index.html all'interno.

Puoi usare il comando di CLI per zippare il tuo bundle:

Crea un bundle con i tuoi file da servire dal tuo server
npx @capgo/cli bundle zip --path [/path/to/my/bundle]

Importante: Devi usare Capgo CLI per creare il file zip del tuo bundle. Il plugin Capgo richiede un formato e una struttura zip specifici, garantiti solo utilizzando lo strumento ufficiale CLI. Gli utility zip standard potrebbero creare archivi incompatibili.

Per generare il checksum del tuo bundle, usa il comando zip di Capgo CLI con il --json flag:

Crea il bundle con le informazioni del checksum
npx @capgo/cli bundle zip [appId] --json

Questo comando eseguirà:

  • Creerà un file zip formattato correttamente per il plugin Capgo
  • Genererà il checksum SHA256 per la verifica dell'integrità
  • Esporterà le informazioni del bundle in formato JSON

Esempio di output:

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

Usa il checksum valore di questo output nella tua risposta API per garantire che il plugin possa verificare l'integrità del bundle prima dell'installazione.

Se stai usando Auto Update per pianificare la migrazione e le operazioni enterprise, collegalo a Usando @capgo/capacitor-updater per la funzionalità nativa in Usando @capgo/capacitor-updater, Capgo Enterprise per il workflow del prodotto in Capgo Enterprise, Alternative ai plugin Ionic Enterprise per il workflow del prodotto nelle alternative ai plugin Ionic Enterprise, Alternative a Capgo per il workflow di prodotto in Capgo Alternatives, e Consulenza Capgo per il workflow di prodotto in Capgo Consulting.