Migration von Capawesome Cloud zu Capgo
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
⚡️ Capgo automatisiert Channels, Bundle-Cleanup, Rollbacks, Analytics und CLI Uploads nativ. Nutze diesen Guide für die minimalen Schritte, um zu migrieren und optional dein gewohntes Custom-Verhalten wiederherzustellen.
Übersicht
Abschnitt: „Übersicht“- Sichere deine aktuelle Capawesome Cloud Konfiguration (App ID, Channels, Signing Keys, CLI Tokens), um sie später archivieren oder prüfen zu können.
- Installiere das Capgo Plugin, entferne das Capawesome SDK und rufe
CapacitorUpdater.notifyAppReady(). - Konfiguriere optionales Verhalten (manuelle Downloads, Bundle-Pinning, Reloads), falls du diese Flows aktuell nutzt.
Mit Capgo musst du nur unser Plugin installieren und CapacitorUpdater.notifyAppReady()aufrufen. Alles andere – Channels, Bundle-Cleanup, Rollbacks, Analytics und CLI Automatisierung – wird nativ gehandhabt. Die folgenden Abschnitte führen dich Schritt für Schritt durch die Aufgaben.
Bevor du startest
Abschnitt mit dem Titel „Bevor du startest“- Stelle sicher, dass dein Projekt bereits Capacitor 5 oder neuer verwendet.
- Installiere das Capgo CLI (
npm install -g @capgo/cli), falls du Bundles via CI/CD pushen möchtest.
Schritt 1 – Capgo installieren und Capawesome SDK entfernen
Abschnitt mit dem Titel „Schritt 1 – Capgo installieren und Capawesome SDK entfernen“npm uninstall @capawesome/capacitor-live-updatenpm install @capgo/capacitor-updaternpx cap syncDas ist der einzige obligatorische Austausch. Das native code von Capgo wird mit dem Plugin ausgeliefert; zusätzliche JavaScript-Helper sind nicht nötig.
Schritt 2 – Minimale Konfiguration
Abschnitt mit dem Titel „Schritt 2 – Minimale Konfiguration“Das vorherige Setup erforderte das Mapping von dutzenden Optionen in capacitor.config. Capgo erkennt dein Projekt automatisch, sodass die minimale Konfiguration so aussieht:
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 configAlles, was Capawesome als manuelle Flags auflistet (defaultChannel, autoDeleteBundles, Retention-Policies usw.), wird über das Capgo Dashboard oder API verwaltet. Du musst diese Keys nur überschreiben, wenn du ein Verhalten möchtest, das von den Defaults von Capgo abweicht.
Konfigurations-Quick-Reference
Abschnitt mit dem Titel „Konfigurations-Quick-Reference“| Capawesome-Option | Capgo-Äquivalent | Musst du es setzen? |
|---|---|---|
appId | Aus dem Capgo Dashboard, sobald du ein Projekt erstellt hast | Nur wenn du mehrere Projekte in einer Binary nutzt |
defaultChannel | Channel-Rules werden im Dashboard/API verwaltet | Optional; die meisten Teams setzen dies serverseitig |
autoDeleteBundles | autoDeletePrevious: true (Standard) | Bereits aktiviert |
publicKey | Verwaltet in der Capgo Console | Nur wenn du Keys manuell rotierst |
maxVersions / Aufbewahrung | Bundle-Aufbewahrungsrichtlinie | Zentral in Capgo konfiguriert (Standard 1 Monat, max. 24 Monate) |
Schritt 3 – Aufruf notifyAppReady() (der einzige erforderliche Hook)
Abschnitt mit dem Titel „Schritt 3 – notifyAppReady() aufrufen (der einzige erforderliche Hook)“Der alte Workflow nutzte benutzerdefinierte Listener (checkForUpdates(), retryDownload(), Splashscreen ausblenden etc.). Capgo führt diese Schritte nativ aus. Der einzige API, den du aufrufen musst, ist:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()Das bestätigt, dass die App erfolgreich gestartet ist. Bleibt die Bestätigung aus, setzt Capgo das Bundle automatisch zurück – ganz ohne zusätzliches JavaScript.
Das war’s – Capgo übernimmt Background-Checks, Splashscreen-Sichtbarkeit und Rollbacks nativ.
Optional: eigene Logik ausführen, bevor der Splashscreen ausgeblendet wird
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()Schritt 4 – Aufrufe von API mappen (meist optional)
Abschnitt mit dem Titel „Schritt 4 – Aufrufe von API mappen (meist optional)“In Capgo lässt du normalerweise den Auto-Updater laufen; manuelle APIs bleiben verfügbar, wenn du die volle Kontrolle willst.
| Capawesome Cloud | Capgo-Äquivalent | Brauchst du das? |
|---|---|---|
LiveUpdate.fetchLatestBundle() | CapacitorUpdater.getLatest() | Nur wenn du einen eigenen Download-Workflow implementierst |
LiveUpdate.downloadBundle() | CapacitorUpdater.download() | Optional: Native Auto-Update lädt bereits herunter |
LiveUpdate.setNextBundle() | CapacitorUpdater.next() | Optional: Dashboard pinnt Bundles automatisch |
LiveUpdate.reload() | CapacitorUpdater.reload() | Optional; Capgo erzwingt danach Pflicht-Bundles notifyAppReady() |
LiveUpdate.getCurrentBundle() | CapacitorUpdater.current() | Optionale Diagnose |
Wenn du beim nativen Auto-Update-Verhalten bleibst, kannst du das Capawesome JavaScript komplett löschen.
Beispiele für manuelle Steuerung
Abschnitt mit dem Titel „Beispiele für manuelle Steuerung“Neuestes Bundle herunterladen
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') }}Nächstes Bundle festlegen
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' })}Heruntergeladenes Bundle sofort anwenden
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()}Schritt 5 – Update-Strategien: So geht Capgo damit um
Abschnitt mit dem Titel „Schritt 5 – Update-Strategien: So geht Capgo damit um“Capawesome nennt drei Strategien. So sehen sie in Capgo aus:
Hintergrund-Updates
Abschnitt mit dem Titel „Hintergrund-Updates“- Bisheriger Workflow: in code konfigurieren und Downloads manuell planen.
- Capgo: standardmäßig aktiviert (
autoUpdate: true). Kein zusätzliches code erforderlich.
Immer aktuell
Abschnitt mit dem Titel „Immer aktuell“- Bisheriger Workflow: hinzufügen
App.resumeListener, Aufrufdownload, dannset. - Capgo: Das Hintergrund-Auto-Update führt den Check nach dem Resume bereits aus. Einen manuellen Listener benötigst du nur bei benutzerdefinierten Intervallen.
Optional: Manueller Resume-Check
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 }) } }})Force Update
Abschnitt mit dem Titel „Force Update“- Bisheriger Workflow: Prompt-Logik implementieren und Reload erzwingen.
- Capgo: Markiere das Bundle im Dashboard als „mandatory“, um dann auf den
majorAvailableEvent (ausgelöst nachnotifyAppReady()) um Nutzer in deiner App zum Upgrade zu zwingen.
Schritt 6 – Bundles deployen
Abschnitt mit dem Titel „Schritt 6 – Bundles deployen“Wenn du dich zuvor auf capawesome live-update deploy verlassen hast, bietet Capgo einen ähnlichen CLI-Workflow. Zudem kannst du Deployments vollständig über API automatisieren.
# 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 productionDa Capgo die Bundle-Health automatisch überwacht, erhältst du auch:
- Audit-Logs auf Geräteebene für jede Installation.
- Automatische Aufbewahrung (standardmäßig ein Monat) mit konfigurierbaren Limits bis zu 24 Monaten.
- Echtzeit-Latenzmetriken bei Status von capgo.app/history.
Migrationszeitplan
Abschnitt mit dem Titel „Migrationszeitplan“- Bestandsaufnahme & Installation: 10 Min. (
npm install, altes Plugin entfernen). - Konfiguration & Einsatzbereitschaft: 5 Min. (
notifyAppReady). - Sanity Checks: 15 Min. (optionale manuelle Tests oder Listener).
- Erstes Deployment: 10 Min. mit Capgo CLI oder CI-Integration.
In der Praxis ist das in weniger als einer Stunde erledigt. Wenn du uns die Details deines Capawesome-Projekts gibst, können wir sogar Channels und Gerätelisten für dich importieren.
Capgo Support
Abschnitt mit dem Titel „Capgo Support“- Migrations-Concierge: Buchen Sie eine Session unter book.capgo.app/demo.
- Community: tritt bei bei Capgo Discord.
- Issue Tracker: github.com/Cap-go/capacitor-updater/issues.
Capgo ist auf langfristige Zuverlässigkeit ausgelegt: native Delta Updates, verschlüsselte Bundles, automatische Rollbacks und Analytics, die kein eigenes JavaScript benötigen. Nach der Migration können Sie den wartungsintensiven Glue-Code löschen und die Plattform Updates automatisch ausführen lassen.
Weiter mit der Migration von Capawesome Cloud zu Capgo
Abschnitt mit dem Titel „Weiter mit dem Wechsel von Capawesome Cloud zu Capgo“Wenn du es nutzt Migration von Capawesome Cloud zu Capgo um CI/CD-Automatisierung zu planen, verbinde es mit Capgo CI/CD für den Produkt-Workflow in Capgo CI/CD, Capgo Native Builds optimieren für den Produkt-Workflow in Capgo Native Builds, Capgo Integrationen für den Produkt-Workflow in Capgo Integrations, CI/CD-Integration für die Implementierungsdetails in der CI/CD-Integration und GitHub Actions-Integration für die Implementierungsdetails in der GitHub Actions-Integration.