Migrazione da Capawesome Cloud a Capgo
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
⚡️ Capgo automatizza canali, pulizia dei bundle, rollback, analytics e l'upload di CLI in modo nativo. Usa questa guida per eseguire i passaggi minimi necessari alla migrazione e, se necessario, ricreare eventuali comportamenti personalizzati.
Panoramica
Sezione intitolata “Panoramica”- Raccogli la tua configurazione attuale di Capawesome Cloud (App ID, canali, chiavi di firma, token CLI) per poterla archiviare o verificare in seguito.
- Installa il plugin Capgo, rimuovi il SDK di Capawesome e chiama
CapacitorUpdater.notifyAppReady(). - Configura i comportamenti opzionali (download manuali, pinning dei bundle, reload) se oggi usi questi flussi.
Con Capgo ti basta installare il nostro plugin e chiamare CapacitorUpdater.notifyAppReady(). Tutto il resto — canali, pulizia dei bundle, rollback, analytics e l'automazione di CLI — viene gestito nativamente. Le sezioni seguenti spiegano ogni attività nel dettaglio.
Prima di iniziare
Sezione intitolata “Prima di iniziare”- Assicurati che il tuo progetto utilizzi già Capacitor 5 o versioni successive.
- Installa la Capgo CLI (
npm install -g @capgo/cli) se prevedi di fare push di bundle da CI/CD.
Passaggio 1 – Installa Capgo e rimuovi il SDK di Capawesome
Sezione intitolata “Passaggio 1 – Installa Capgo e rimuovi il SDK di Capawesome”npm uninstall @capawesome/capacitor-live-updatenpm install @capgo/capacitor-updaternpx cap syncÈ l'unica sostituzione obbligatoria. Il code nativo di Capgo è incluso nel plugin; non servono altri helper JavaScript.
Passaggio 2 – Configurazione minima
Sezione intitolata “Passaggio 2 – Configurazione minima”La configurazione precedente richiedeva di mappare decine di opzioni in capacitor.config. Capgo riconosce automaticamente il tuo progetto, quindi la configurazione minima è questa:
import { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: true, autoDeletePrevious: true, periodCheckDelay: 10 * 60 * 1000, // optional: check every 10 minutes }, },}
export default configTutto quello che Capawesome elenca come flag manuali (defaultChannel, autoDeleteBundles, retention policies, ecc.) è gestito tramite la dashboard di Capgo o API. Devi sovrascrivere queste chiavi solo se vuoi un comportamento diverso dai default di Capgo.
Riferimento rapido alla configurazione
Sezione intitolata “Riferimento rapido alla configurazione”| Opzione Capawesome | Equivalente di Capgo | È necessario impostarla? |
|---|---|---|
appId | Preso dalla dashboard di Capgo una volta creato un progetto | Solo se utilizzi più progetti in un unico binario |
defaultChannel | Regole dei canali gestite nella dashboard/API | Opzionale; la maggior parte dei team la imposta lato server |
autoDeleteBundles | autoDeletePrevious: true (predefinito) | Già abilitato |
publicKey | Gestito nella console Capgo | Solo se ruoti le chiavi manualmente |
maxVersions / retention | Policy di retention dei bundle | Configurato centralmente in Capgo (default 1 mese, max 24 mesi) |
Fase 3 – Chiamata notifyAppReady() (l'unico hook richiesto)
Sezione intitolata “Passaggio 3 – Chiama notifyAppReady() (l’unico hook richiesto)”Il vecchio workflow prevedeva listener personalizzati (checkForUpdates(), retryDownload(), nascondere la splash screen, ecc.). Capgo esegue questi passaggi nativamente. L'unico API che devi chiamare è:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()Questo conferma che l'app è stata avviata correttamente. Se la conferma non arriva, Capgo esegue automaticamente il rollback del bundle, senza bisogno di JavaScript extra.
Fatto—Capgo gestisce nativamente i controlli in background, la visibilità della splash screen e i rollback.
Opzionale: esegui logica personalizzata prima che la splash screen venga nascosta
import { CapacitorUpdater } from '@capgo/capacitor-updater'import { SplashScreen } from '@capacitor/splash-screen'
CapacitorUpdater.addListener('appReady', () => { // Run diagnostics or logging if you need to SplashScreen.hide()})
CapacitorUpdater.notifyAppReady()Passaggio 4 – Mappa le chiamate API (quasi tutte opzionali)
Sezione intitolata “Passaggio 4 – Mappa le chiamate API (quasi tutte opzionali)”In Capgo solitamente si lascia girare l'auto-updater; le API manuali rimangono disponibili se desideri il controllo totale.
| Capawesome Cloud | Equivalente di Capgo | Do you need it? |
|---|---|---|
LiveUpdate.fetchLatestBundle() | CapacitorUpdater.getLatest() | Solo quando implementi il tuo workflow di download |
LiveUpdate.downloadBundle() | CapacitorUpdater.download() | Opzionale: il native auto-update scarica già |
LiveUpdate.setNextBundle() | CapacitorUpdater.next() | Opzionale: la dashboard blocca i bundle automaticamente |
LiveUpdate.reload() | CapacitorUpdater.reload() | Opzionale: Capgo impone i bundle obbligatori dopo notifyAppReady() |
LiveUpdate.getCurrentBundle() | CapacitorUpdater.current() | Diagnostica opzionale |
Se mantieni il comportamento del native auto-update, puoi eliminare del tutto il JavaScript di Capawesome.
Esempi di controllo manuale
Sezione: “Esempi di controllo manuale”Scarica l'ultimo bundle
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const downloadUpdate = async () => { const latest = await CapacitorUpdater.getLatest() if (latest?.url) { const bundle = await CapacitorUpdater.download({ url: latest.url, version: latest.version, }) console.log('Bundle downloaded', bundle?.id) }}import { LiveUpdate } from '@capawesome/capacitor-live-update'
const downloadUpdate = async () => { const result = await LiveUpdate.fetchLatestBundle() if (result.downloadUrl) { await LiveUpdate.downloadBundle({ bundleId: result.bundleId, url: result.downloadUrl, }) console.log('Bundle downloaded') }}Imposta il prossimo bundle
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const setNextBundle = async () => { await CapacitorUpdater.next({ id: 'bundle-id-123' })}import { LiveUpdate } from '@capawesome/capacitor-live-update'
const setNextBundle = async () => { await LiveUpdate.setNextBundle({ bundleId: 'bundle-id-123' })}Applica subito il bundle scaricato
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const applyUpdate = async () => { await CapacitorUpdater.reload()}import { LiveUpdate } from '@capawesome/capacitor-live-update'
const applyUpdate = async () => { await LiveUpdate.reload()}Passaggio 5 – Strategie di aggiornamento: come Capgo le gestisce
Sezione intitolata “Passaggio 5 – Strategie di aggiornamento: come Capgo le gestisce”La documentazione Capawesome descrive tre strategie. Ecco come si traducono:
Aggiornamenti in background
Sezione intitolata “Aggiornamenti in background”- Workflow precedente: configura in code e pianifica i download manualmente.
- Capgo: abilitato di default (
autoUpdate: true). Non serve alcun code aggiuntivo.
Sempre l'ultima versione
Sezione intitolata “Sempre l'ultima versione”- Workflow precedente: aggiungi un
App.resumelistener, chiamadownload, poiset. - Capgo: l'auto-update in background esegue già il controllo al resume. Il listener manuale serve solo se desideri un intervallo personalizzato.
Opzionale: controllo manuale al resume
import { App } from '@capacitor/app'import { CapacitorUpdater } from '@capgo/capacitor-updater'
App.addListener('resume', async () => { const latest = await CapacitorUpdater.getLatest() if (latest?.url) { const downloaded = await CapacitorUpdater.download({ url: latest.url, version: latest.version, }) if (downloaded) { await CapacitorUpdater.next({ id: downloaded.id }) } }})Aggiornamento forzato
Sezione intitolata “Force update”- Workflow precedente: collega la logica del prompt e forza il reload.
- Capgo: segna il bundle come “mandatory” nel dashboard, quindi ascolta il
majorAvailableevento (emesso doponotifyAppReady()) per obbligare gli utenti ad aggiornare all'interno della tua app.
Passaggio 6 – Deploy dei bundle
Sezione intitolata “Passaggio 6 – Deploy dei bundle”Se prima ti affidavi a capawesome live-update deploy, Capgo offre un CLI workflow simile, e puoi anche automatizzare i deploy interamente tramite API.
# Authenticate once (stores a token in your CI environment)capgo login
# Upload a new bundle (auto-detects platform/version)capgo bundle upload --path dist --channel productionPoiché Capgo monitora automaticamente lo stato dei bundle, ottieni anche:
- Audit log a livello di dispositivo per ogni installazione.
- Retention automatica (un mese di default) con limiti configurabili fino a 24 mesi.
- Metriche di latenza in tempo reale su stato.capgo.app/history.
Timeline della migrazione
Sezione intitolata “Timeline della migrazione”- Inventario e installazione: 10 minuti (
npm install, rimuovi il vecchio plugin). - Configurazione e preparazione: 5 minuti (
notifyAppReady). - Controlli di integrità: 15 minuti (test manuali opzionali o listener).
- Primo deployment: 10 minuti con Capgo CLI o integrazione CI.
In pratica, i team finiscono in meno di un'ora. Se fornisci i dettagli del progetto Capawesome, possiamo persino importare canali e liste dispositivi per te.
Supporto Capgo
Sezione intitolata “Supporto Capgo”- Concierge per la migrazione: prenota una sessione su book.capgo.app/demo.
- Community: unisciti al Discord di Capgo.
- Issue tracker: github.com/Cap-go/capacitor-updater/issues.
Capgo è progettato per la massima affidabilità: delta update native, bundle criptati, rollback automatici e analytics che non richiedono JavaScript personalizzato. Una volta migrato, puoi eliminare il codice di integrazione complesso e lasciare che la piattaforma gestisca gli update automaticamente.
Continua: Migrazione da Capawesome Cloud a Capgo
Sezione intitolata “Continua con il passaggio da Capawesome Cloud a Capgo”Se stai usando Migrazione da Capawesome Cloud a Capgo per pianificare l'automazione CI/CD e connetterla a CI/CD con Capgo per il workflow del prodotto in Capgo CI/CD, Capgo Native Build per il workflow di prodotto in Capgo Native Builds, Integrazioni Capgo per il workflow di prodotto in Integrazioni Capgo, Integrazione CI/CD per i dettagli implementativi in CI/CD Integration, e Integrazione GitHub Actions per i dettagli implementativi in GitHub Actions Integration.