Zum Inhalt springen

Migrate from Capawesome Cloud to Capgo

⚡️ Capgo automatisiert Kanäle, Bundle-Aufräumung, Rollbacks, Analysen und CLI-Uploads natively. Verwenden Sie diese Anleitung, um die minimalen Schritte durchzuführen, um zu migrieren und optional jede benutzerdefinierte Funktion zu wiederherstellen, die Sie noch benötigen.

  1. Sammeln Sie Ihre bestehende Capawesome-Cloud-Konfiguration (App-ID, Kanäle, Signierungsschlüssel, CLI-Tokens) so, dass Sie sie später archivieren oder überprüfen können.
  2. Installieren Sie das Capgo-Plugin, entfernen Sie das Capawesome-SDK-Plugin und rufen Sie CapacitorUpdater.notifyAppReady().
  3. Konfigurieren Sie optionalen Verhalten (manuelle Downloads, Pinning von Bundles, Reloads) wenn Sie sich auf diese Flows heute noch verlassen.

Mit Capgo benötigen Sie nur unsere Plugin-Installation und Aufruf. CapacitorUpdater.notifyAppReady()Alles andere – Kanäle, Bundle-Vornahme, Rollbacks, Analytics und CLI-Automatisierung – wird native gehandhabt. Die folgenden Abschnitte gehen jeden Schritt direkt durch.

  • Stellen Sie sicher, dass Ihr Projekt bereits Capacitor 5 oder später verwendet.
  • Installieren Sie das Capgo CLI (npm install -g @capgo/cli) wenn Sie beabsichtigen, Bundles aus CI/CD zu pushen.

Schritt 1 – Installieren Sie Capgo und entfernen Sie das Capawesome SDK

Abschnitt mit dem Titel „Schritt 1 – Installieren Sie Capgo und entfernen Sie das Capawesome SDK“
Terminal-Fenster
npm uninstall @capawesome/capacitor-live-update
npm install @capgo/capacitor-updater
npx cap sync

Das ist der einzige verpflichtende Austausch. Capgo's native code wird mit dem Plugin geliefert; keine zusätzlichen JavaScript-Hilfsmittel sind erforderlich.

Die vorherige Konfiguration erforderte die Zuordnung von Dutzenden von Optionen in capacitor.config. Capgo erkennt Ihr Projekt automatisch, daher sieht die Minimal-Konfiguration wie folgt aus:

capacitor.config.ts
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 config

Alle von Capawesome als manuelle Flags (defaultChannel, autoDeleteBundlesRückhalteregeln usw.) aufgelisteten Einstellungen werden über das Capgo-Dashboard oder API verwaltet. Sie müssen diese Schlüssel nur überschreiben, wenn Sie Verhaltensweisen wollen, die sich von den Standards von Capgo unterscheiden.

Capawesome-OptionCapgo-ÄquivalentBrauchen Sie es einzustellen?
appIdGewonnen aus der Capgo-Oberfläche, sobald Sie ein Projekt erstellenNur, wenn Sie mehrere Projekte in einem Binärdatei verwenden
defaultChannelKanalregeln werden in der API-Oberfläche verwaltetOptional; die meisten Teams setzen dies serverseitig
autoDeleteBundlesautoDeletePrevious: true (Standard)Bereits aktiviert
publicKeyVerwaltet in der Capgo-KonsoleNur, wenn Sie Schlüssel manuell rotieren
maxVersions / RückerstattungPaket-RückerstattungspolitikZentral in Capgo konfiguriert (1 Monat Standard, 24 Monate maximal)

Schritt 3 – Aufrufen notifyAppReady() (der einzige erforderliche Hook)

Abschnitt mit Titel „Schritt 3 – Aufrufen notifyAppReady() (der einzige erforderliche Hook)“

Die alte Workflow führte benutzerdefinierte Listener ein (checkForUpdates(), retryDownload(), die Splash-Schaltfläche verbergen, usw.). Capgo führt diese Schritte natively durch. Der einzige API , den Sie aufrufen müssen, ist:

import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()

Dies bestätigt, dass die App erfolgreich gestartet wurde. Wenn die Bestätigung nie eintrifft, führt Capgo automatisch den Bundle zurück—kein zusätzliches JavaScript erforderlich.

Das ist alles—Capgo handhabt Hintergrundprüfungen, Splash-Sichtbarkeit und Rollbacks natively.

Optional: Ausführen von benutzerdefinierten Logik vor der Versteckung der Splash-Schaltfläche
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 – Zuordnen von API -Aufrufen (zumeist optional)

Abschnitt mit Titel „Schritt 4 – Zuordnen von API -Aufrufen (zumeist optional)“

In Capgo fahren Sie normalerweise die automatische Aktualisierung; manuelle APIs bleiben verfügbar, wenn Sie volle Kontrolle benötigen.

Capawesome CloudCapgo-ÄquivalentBenötigen Sie es?
LiveUpdate.fetchLatestBundle()CapacitorUpdater.getLatest()Nur wenn Sie Ihren eigenen Download-Workflow implementieren
LiveUpdate.downloadBundle()CapacitorUpdater.download()Optional: Die native Autoaktualisierung lädt bereits native Updates herunter
LiveUpdate.setNextBundle()CapacitorUpdater.next()Optional: Die Dashboard-Pins laden Bundles automatisch
LiveUpdate.reload()CapacitorUpdater.reload()Optional; Capgo erzwingt nach notifyAppReady()
LiveUpdate.getCurrentBundle()CapacitorUpdater.current()Optional Diagnose

Wenn Sie sich an die native Autoaktualisierung verhalten, können Sie den Capawesome-JavaScript-Code vollständig löschen.

Herunterladen des aktuellen Pakets

Capgo
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)
}
}
Capawesome Cloud
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')
}
}

Setzen des nächsten Pakets

Capgo
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const setNextBundle = async () => {
await CapacitorUpdater.next({ id: 'bundle-id-123' })
}
Capawesome Cloud
import { LiveUpdate } from '@capawesome/capacitor-live-update'
const setNextBundle = async () => {
await LiveUpdate.setNextBundle({ bundleId: 'bundle-id-123' })
}

Anwenden des heruntergeladenen Pakets sofort

Capgo
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const applyUpdate = async () => {
await CapacitorUpdater.reload()
}
Capawesome Cloud
import { LiveUpdate } from '@capawesome/capacitor-live-update'
const applyUpdate = async () => {
await LiveUpdate.reload()
}

Schritt 5 – Aktualisierungsstrategien: Wie Capgo sie handhabt

Sektion: Schritt 5 – Aktualisierungsstrategien: Wie Capgo sie handhabt

Capawesome beschreibt drei Strategien. Hier ist, wie sie übersetzt werden:

Hintergrundaktualisierungen

Sektion: Hintergrundaktualisierungen
  • Vorherige Workflow: in code konfigurieren und Downloads manuell anplanen.
  • CapgoKontext: HTML-Textfragment aus einer längeren Capgo-UI-Zeichenfolge (Elternschlüssel `submitting_a_pr_to_capgo`). Seite/Bereich: Capgo-Marketing-Website. Rolle: Website-Text. Gesehen in: Seite contributing.astro. Beibehalten Sie Capgo-Produkt- und -Markenbegriffe sowie Entwicklertitel genau. Nachrichtenschlüssel `submitting_a_pr_to_capgo` (Ein Pull-Request an Capgo einreichen).autoUpdate: true. Keine zusätzlichen code erforderlich.
  • Vorheriger Workflow: Hinzufügen eines App.resume Hinzufügen eines Hörers, Aufrufen von download, dann set.
  • CapgoOptional: Manuelle Wiederanlaufprüfung
Zwischenablage kopieren
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 })
}
}
})

Hintergrund-Auto-Update führt den Check bereits nach Wiederanlauf durch. Sie benötigen den manuellen Hörer nur, wenn Sie einen benutzerdefinierten Intervall wünschen.

Abschnitt mit dem Titel “Zwangsaktualisierung”
  • Vorheriger Workflow: Kabellose Logik für die Anweisung und erzwungenes Neuladen.
  • CapgoAbschnitt mit dem Titel “Schritt 6 – Bereitstellung von Paketen” majorAvailable Wenn Sie sich zuvor auf notifyAppReady()__CAPGO_KEEP_0__

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__

Terminalfenster capawesome live-update deploy, Capgo offers a similar CLI workflow, and you can also automate deployments entirely via API.

Vorheriger Workflow
# 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 production

Da Capgo die Gesundheit der Bundle automatisch verfolgt, erhalten Sie auch:

  • Geräteebene Audit-Protokolle für jeden Installationsvorgang.
  • Automatische Aufbewahrung (ein Monat standardmäßig) mit konfigurierbaren Grenzen bis zu 24 Monaten.
  • Echtzeit-Verzögerungs-Metriken bei status.capgo.app/history.
  • Bestand und Installierung: 10 Minuten (npm install, alte Plugin entfernen).
  • Konfiguration und Bereitschaft: 5 Minuten (notifyAppReady).
  • Sanitätsprüfungen: 15 Minuten (optional manuelle Tests oder Hörer).
  • Erste Bereitstellung: 10 Minuten mit Capgo CLI oder CI-Integration.

In der Praxis beenden Teams ihre Arbeit in weniger als einer Stunde. Wenn Sie uns die Details Ihres Capawesome-Projekts liefern, können wir sogar Kanäle und Gerätelisten importieren.

Capgo ist für langfristige Zuverlässigkeit konzipiert: native Delta-Updates, verschlüsselte Pakete, automatische Rollbacks und Analysen, die keine benutzerdefinierte JavaScript-Code erfordern. Sobald Sie migriert haben, können Sie die aufwändige Wartung entfernen und lassen Sie das Plattform automatisch Updates durchführen.

Wenn Sie __CAPGO_KEEP_0__ verwenden Migrate from Capawesome Cloud zu Capgo um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Capgo CI/CD für das Produktworkflow in Capgo CI/CD, Capgo Native Builds zur Produktworkflow in Capgo Native Builds Capgo Integrations zur Produktworkflow in Capgo Integrations CI/CD-Integration zur Implementierungsdetail in CI/CD-Integration, und GitHub Actions-Integration zur Implementierungsdetail in GitHub Actions-Integration.