Saltare al contenuto

Aggiornamento automatico

Questa documentazione spiegherà come eseguire il proprio server di aggiornamento automatico.

Assicurati che il tuo bundle sia servito su HTTPS e che il server abbia i capi CORS corretti per consentire all'app di scaricare l'aggiornamento. e.g. https://myserver.com/app/updates/updates.json

Se siete sconosciuti con il servizio di un bundle, vi consigliamo di provare Capgo Cloud o vedere un esempio qui:

Configurazione

Aggiungi un

alla tua updateUrl Copia negli appunti capacitor.config.json.

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

La plugin effettuerà una chiamata POST al tuo API ogni volta che l'app viene aperta, con il seguente corpo:

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 formato JSON, al plugin di aggiornamento capacitor. Con i dati seguenti se è necessario 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à di aggiornamento automatico il server dovrebbe confrontare le versioni e restituire quella giusta, se è presente la chiave URL, il plugin avvia il processo di download.

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

version La chiave dovrebbe essere in semver formato.

Il zip dovrebbe avere index.html come file radice, o solo una cartella radice con index.html all'interno.

Puoi utilizzare il comando di CLI per creare un file zip del 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 utilizzare il Capgo CLI per creare il file zip del tuo bundle. Il plugin Capgo richiede un formato e una struttura di archivio specifici che sono garantiti solo quando si utilizza lo strumento ufficiale CLI. Le utility standard di zip possono creare archivi incompatibili.

Per generare la somma di controllo per il tuo bundle, utilizza il comando Capgo CLI zip con il flag: --json Crea bundle con informazioni sulla somma di controllo

Copia nel portapenne
npx @capgo/cli bundle zip [appId] --json

Questo comando eseguirà: generare la somma di controllo per il tuo bundle e creare un file zip del tuo bundle.

  • Crea un file zip compatibile con il plugin Capgo
  • Genera il checksum SHA256 per la verifica dell'integrità
  • Stampa le informazioni del bundle in formato JSON

Esempio di output:

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

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