Migrar de Capawesome Cloud a Capgo
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
⚡️ Capgo automatiza canales, limpieza de bundles, rollbacks, analytics y subidas de CLI de forma nativa. Usa esta guía para realizar los pasos mínimos necesarios para migrar y, opcionalmente, recrear cualquier comportamiento personalizado que aún necesites.
- Reúne tu configuración actual de Capawesome Cloud (App ID, canales, claves de firma, tokens de CLI) para poder archivarla o auditarla más tarde.
- Instala el plugin de Capgo, elimina el SDK de Capawesome y llama a
CapacitorUpdater.notifyAppReady(). - Configura comportamientos opcionales (descargas manuales, pinning de bundles, reloads) si actualmente dependes de esos flujos.
Con Capgo solo necesitas instalar nuestro plugin y llamar a CapacitorUpdater.notifyAppReady(). Todo lo demás —canales, limpieza de bundles, rollbacks, analytics y la automatización de CLI— se gestiona de forma nativa. Las siguientes secciones detallan cada tarea directamente.
Antes de empezar
Sección titulada “Antes de empezar”- Asegúrate de que tu proyecto ya esté usando Capacitor 5 o superior.
- Instala el Capgo CLI (
npm install -g @capgo/cli) si planeas subir bundles desde CI/CD.
Paso 1 – Instala Capgo y elimina el SDK de Capawesome
Sección titulada “Paso 1 – Instala Capgo y elimina el SDK de Capawesome”npm uninstall @capawesome/capacitor-live-updatenpm install @capgo/capacitor-updaternpx cap syncEse es el único cambio obligatorio. El code nativo de Capgo viene incluido en el plugin; no requiere helpers de JavaScript adicionales.
Paso 2 – Configuración mínima
Sección titulada “Paso 2 – Configuración mínima”La configuración anterior requería mapear decenas de opciones en capacitor.config. Capgo reconoce tu proyecto automáticamente, así que la configuración mínima queda así:
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 configTodo lo que Capawesome lista como flags manuales (defaultChannel, autoDeleteBundles, políticas de retención, etc.) se gestiona desde el dashboard de Capgo o mediante API. Solo necesitas sobrescribir estas keys si buscas un comportamiento distinto al de los valores por defecto de Capgo.
Referencia rápida de configuración
Sección titulada “Referencia rápida de configuración”| Opción de Capawesome | Equivalente en Capgo | ¿Es necesario configurarlo? |
|---|---|---|
appId | Obtenido del dashboard de Capgo tras crear un proyecto | Solo si usas múltiples proyectos en un mismo binario |
defaultChannel | Reglas de canal gestionadas en el dashboard/API | Optional; most teams set this server-side |
autoDeleteBundles | autoDeletePrevious: true (por defecto) | Ya está activado |
publicKey | Gestionado en la consola de Capgo | Solo si rotas las llaves manualmente |
maxVersions / retención | Política de retención de bundles | Configurado centralmente en Capgo (1 mes por defecto, máx. 24 meses) |
Paso 3 – Llamada notifyAppReady() (el único hook requerido)
Sección titulada “Paso 3 – Llama a notifyAppReady() (el único hook obligatorio)”El flujo anterior usaba listeners personalizados (checkForUpdates(), retryDownload(), ocultar la splash screen, etc.). Capgo realiza esos pasos de forma nativa. El único API que debes llamar es:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()Esto confirma que la app arrancó correctamente. Si la confirmación no llega, Capgo hace un rollback automático del bundle, sin necesidad de JavaScript extra.
Eso es todo: Capgo gestiona de forma nativa los background checks, la visibilidad del splash y los rollbacks.
Opcional: ejecutar lógica personalizada antes de ocultar el splash screen
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()Paso 4 – Mapear llamadas a API (opcional)
Sección titulada “Paso 4 – Mapear llamadas a API (opcional)”En Capgo normalmente dejas que el auto-updater se ejecute; las APIs manuales siguen disponibles si quieres tener el control total.
| Capawesome Cloud | Equivalente en Capgo | ¿Lo necesitas? |
|---|---|---|
LiveUpdate.fetchLatestBundle() | CapacitorUpdater.getLatest() | Solo al implementar tu propio flujo de trabajo de download |
LiveUpdate.downloadBundle() | CapacitorUpdater.download() | Opcional: el auto-update nativo ya descarga |
LiveUpdate.setNextBundle() | CapacitorUpdater.next() | Opcional: el dashboard fija bundles automáticamente |
LiveUpdate.reload() | CapacitorUpdater.reload() | Opcional: Capgo impone bundles obligatorios después notifyAppReady() |
LiveUpdate.getCurrentBundle() | CapacitorUpdater.current() | Diagnósticos opcionales |
Si mantienes el comportamiento de auto-update nativo, puedes eliminar el JavaScript de Capawesome por completo.
Ejemplos de control manual
Sección titulada “Ejemplos de control manual”Descargar el último 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') }}Establecer el siguiente 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' })}Aplicar el bundle descargado de inmediato
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()}Paso 5 – Estrategias de actualización: cómo las gestiona Capgo
Sección titulada “Paso 5 – Estrategias de actualización: cómo las gestiona Capgo”Capawesome documenta tres estrategias. Así es como se traducen:
Actualizaciones en segundo plano
Sección titulada “Background updates”- Workflow anterior: configurar en code y programar las descargas manualmente.
- Capgo: activado por defecto (
autoUpdate: true). No requiere code adicional.
Siempre la última
Sección titulada “Always latest”- Workflow anterior: añade un
App.resumelistener, llamadadownload, luegoset. - Capgo: el auto-update en background ya realiza la comprobación al reanudar. Solo necesitas el listener manual si quieres un intervalo personalizado.
Opcional: comprobación manual al reanudar
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 }) } }})Forzar actualización
Sección titulada “Actualización forzada”- Workflow anterior: conectar la lógica del prompt y forzar el reload.
- Capgo: marcar el bundle como “obligatorio” en el dashboard, luego escuchar el
majorAvailableevento (emitido trasnotifyAppReady()) para obligar a los usuarios a actualizar dentro de tu app.
Paso 6 – Despliegue de bundles
Sección titulada “Paso 6 – Despliegue de bundles”Si antes dependías de capawesome live-update deploy, Capgo ofrece un workflow de CLI similar, y también puedes automatizar los despliegues por completo mediante 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 productionComo Capgo monitoriza la salud de los bundles automáticamente, también obtienes:
- Logs de auditoría a nivel de dispositivo para cada instalación.
- Retención automática (un mes por defecto) con límites configurables hasta 24 meses.
- Métricas de latencia en tiempo real en estado.capgo.app/historial.
Cronograma de migración
Sección titulada “Cronograma de migración”- Inventario e instalación: 10 min (
npm install, eliminar plugin antiguo). - Configuración y preparación: 5 minutos (
notifyAppReady). - Pruebas de control: 15 min (pruebas manuales o listeners opcionales).
- Primer despliegue: 10 min con Capgo CLI o integración de CI.
En la práctica, los equipos terminan en menos de una hora. Si nos das los detalles del proyecto de Capawesome, incluso podemos importar canales y listas de dispositivos por ti.
Soporte de Capgo
Sección titulada “Soporte de Capgo”- Migración asistida: reserva una sesión en capgo.app/demo.
- Comunidad: únete al Discord de Capgo.
- Gestor de incidencias: github.com/Cap-go/capacitor-updater/issues.
Capgo está pensado para ofrecer fiabilidad a largo plazo: actualizaciones delta nativas, bundles cifrados, rollbacks automáticos y analytics sin necesidad de JavaScript personalizado. Cuando migres, podrás eliminar el código de integración que tanto mantenimiento requiere y dejar que la plataforma ejecute las actualizaciones automáticamente.
Continúa desde Migrar de Capawesome Cloud a Capgo
Sección titulada “Continúa tu migración de Capawesome Cloud a Capgo”Si estás usando Migrar de Capawesome Cloud a Capgo para planificar la automatización de CI/CD, conéctalo con CI/CD de Capgo para el flujo de trabajo del producto en Capgo CI/CD, Native Builds de Capgo para el flujo de trabajo del producto en Capgo Native Builds, Integraciones de Capgo para el flujo de trabajo del producto en Capgo Integraciones, Integración CI/CD para los detalles de implementación de CI/CD Integration, y Integración con GitHub Actions para los detalles de implementación de GitHub Actions Integration.