Der beste Live-Update ist der, den die Benutzer kaum bemerken.
Das bedeutet normalerweise drei Dinge:
- Die Herunterladung ist klein.
- Die Ausrollung ist kontrolliert.
- Die Wiederherstellung ist sofort, wenn etwas schief geht.
Das gleiche "Halt OTA lean"-Rat, das in der React Native-Welt funktioniert, gilt auch für Capgo. Die Differenz ist, dass Capgo Capacitor-Teams ein paar zusätzliche Hebel gibt: Delta-Updates, Kanäle, Automatische Rollover, Zielgerichtete Versionenund optional End-to-End-Verschlüsselung.
Wenn Sie diese zusammen verwenden, erhalten Sie kleinere Payloads, schnellere Installationen und viel weniger operativen Aufruhr.
Lean ist auch dann wichtig, wenn die MAU gleich bleibt
Ein nützliches Capgo-spezifisches Detail: Capgo MAU ist effektiv die Anzahl der monatlich aktiven Geräte, die das Update-Service in den letzten 30 Tagen kontaktiert haben.
Also ist die Verkleinerung einer Bundle nicht hauptsächlich ein Trick, um die MAU-Zählung zu reduzieren. Es ist wichtig, weil es die Teile verbessert, die Benutzer und Teams tatsächlich spüren:
- Schnellere Downloads über Mobilfunk oder schwache Wi-Fi
- Bessere Erfahrung mit direkten Updates
- Weniger verschwendete Bandbreite bei fehlgeschlagenen oder zurückgezogenen Releases
- Kleinere Auswirkungen bei der Testung oder Staging eines Releases
Lean Updates sind wirklich über Geschwindigkeit, Sicherheit und operative Disziplin.
1. Standardmäßig Delta-Updates verwenden
Wenn du nur eines tust, tu dies.
Capgo’s Delta-Updates senden nur Dateien, die zwischen den Versionen geändert wurden, anstatt das vollständige Web-Bundle erneut herunterzuladen.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Das ist der größte einzelne Gewinn für die Routine-OTA-Leistung.
bunx @capgo/cli@latest bundle upload --channel production --delta
If Sie möchten, dass CI streng bleibt, verwenden Sie --delta-only damit niemand versehentlich auf volle Uploads zurückfällt:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Nur verwenden Sie --delta-only wenn Ihr Produktionspool Delta-Updates unterstützt. Bei gemischten Plugin-Versionen werden ältere Geräte, die Manifest-basierte Delta-Lieferungen nicht unterstützen, nicht in der Lage sein, das Update herunterzuladen.
Dies ist noch wichtiger, wenn Sie directUpdate, weil die Zeit zwischen „Update gefunden“ und „App neu geladen“ für den Benutzer sichtbar wird.
2. Behandeln Sie Assets wie Assets, nicht wie JavaScript-Beutel
Große Assets sind der Ort, an dem sich OTA-Bundles leise aufblähen.
Einige praktische Regeln:
- Große Bilder oder Medien nicht in JavaScript inline, wenn ein normales Asset-File getan werden kann.
- Häufig wechselnde Inhalte auf Ihrem eigenen CDN oder API speichern, wenn sie nicht im bereitgestellten App-Bundle leben müssen.
- Bei Marketing-Bildern, Onboarding-Videos und einmaligen Kampagnen-Inhalten, die jede Release ersetzt werden, vorsichtig sein.
- Lassen Sie stabile Assets stabil bleiben. Mit Delta-Updates werden unveränderte Dateien wieder verwendet und nicht erneut heruntergeladen.
Dies ist eine der einfachsten Möglichkeiten, Capgo schnell zu halten, während sich Ihre App entwickelt. Das schlimmste Muster ist ein kleiner UI-Fix, der Benutzern eine Menge unabhängiger Medien zum Herunterladen zwingt.
3. Halten Sie native Releases für echte native Änderungen bereit
Capgo aktualisiert die Web-Schicht: HTML, CSS, JavaScript und Assets, die bei Laufzeit geladen werden.
Dies ist nicht der richtige Kanal für:
- neue native Plugins
- Zustimmungsänderungen
capacitor.config.tsÄnderungen- jedes, was den Zustand des iOS- oder Android-Native-Projekts ändert.
Diese Zeile ist auch für die Leistung wichtig. Wenn Sie weiterhin wichtige strukturelle Änderungen in den OTA-Kanal schieben, wird Ihre Updatestrategie schwerer und riskanter.
Verwenden Sie zwei Release-Linien absichtlich:
Native-Linie
Für Änderungen von Plugins, Berechtigungen und nativen Konfigurationen:
bun run build
bunx cap sync
Dann veröffentlichen Sie eine normale Store-Version.
Capgo-Spur
Für eine sichere Iteration des Web-Schichtens:
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Regelmäßig aktualisieren Sie auch Ihre native Basis, wenn Sie kürzlich viele lang lebende Assets hinzugefügt haben. Ein frischer Store-Build enthält diese neue Basis, die zukünftige Capgo-Differenzen kleiner hält.
4. Verwenden Sie Kanäle, um die Update-Größe klein zu halten
Ein 'schlanker' Update geht nicht nur um Megabyte. Es geht auch darum, wie viele Geräte das Update erhalten, bevor Sie wissen, dass es gut ist.
Capgo- Das Kanal-System von ist die sauberste Möglichkeit, das zu kontrollieren:
stagingfür QAbetafür eingeladene Testerproductionfür jedenhotfixfür Notfall-Wiederherstellung
Ein einfacher Workflow sieht so aus:
- Hochladen auf
staging. - Validieren auf echten Geräten.
- Wickeln Sie sukzessive aus, sei es über kontrollierte Kanäle oder eine prozentuale Verteilung.
- Rollen Sie sofort zurück, wenn die Gesundheit abnimmt.
Wenn Ihre App mehrere native Baseline-Versionen im Feld hat, funktioniert das Paaren von Kanälen mit VersionenzielDas hält unverträgliche oder unnötig schwere Pakete von älteren Binären fern.
Für Teams, die noch enge Review-Schleifen wollen, funktioniert Capgo auch gut für PR-Vorschauen. Das ermöglicht es Produktions-, QA- und Stakeholder-Teams, JS-Änderungen ohne Wartezeit auf neue TestFlight- oder Play-internal-Builds zu testen.
5. Wenn Sie direkte Updates aktivieren, optimieren Sie die Startzeit.
Je schneller Sie ein Update anwenden möchten, desto disziplinierter muss Ihre Startzeitpfad sein.
Capgo’s Aktualisierungsverhalten Die Dokumentation empfiehlt ausdrücklich die Kombination directUpdate mit Delta-Updates. Das ist die richtige Standard-Einstellung.
Die zweite Sicherheitsvorkehrung ist notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Wenn Ihr App nicht innerhalb der Standardzeit von 10 Sekunden notifyAppReady() oder innerhalb der Zeit, die Sie in Ihrer __CAPGO_KEEP_0__-Konfiguration appReadyTimeout you set in your Capacitor config, Capgo can mark that bundle invalid and restore the previous good version. That rollback behavior is what you want in production, but it also means you should keep startup clean:
- Aufruf
notifyAppReady()an der richtigen Stelle - Vermeide langsame Startzeit-Arbeiten im kritischen Pfad
- Speichere und restauriere den Anwendungsstatus sorgfältig, wenn du sofort neu ladest
- Testiere Szenarien mit schlechter Netzwerkverbindung und geringer Endgeräteleistung vor einer breiten Veröffentlichung
Wenn du es nicht kürzlich gelesen hast, ist die "notifyAppReady"-Anleitung wertvoll. Die Anleitung ist wertvoll, wenn du sie nicht kürzlich gelesen hast. 6. Verwende interne Update-Kanäle anstatt unnötiger nativer Rebuilds
Viele mobile Teams verbringen viel Zeit damit, Binärdateien für Änderungen zu erstellen, die offensichtlich nur auf Web-Seiten stattfinden.
Wenn die Änderung ist:
Kopieren
- UI-Polish
- copy
- Einbindung des Onboarding-Flusses
- Logik für die Preissicht
- Anbindung der Analysen
- Funktionsschalter
- Anzeige von API oder einer Aufforderung zur Eingabe
Dann ist eine Capgo-Aktualisierung oft das schnellere Review-Artikel.
That means fewer native rebuilds, less TestFlight churn, and a tighter feedback loop for the team. It is one of the most underused benefits of Capgo: you can move more review and QA work into the OTA lane without breaking the native/web boundary.
Es ist einer der wenig genutzten Vorteile von __CAPGO_KEEP_0__: Sie können mehr Review- und QA-Arbeit in die OTA-Spur ohne die native/Web-Grenze zu überschreiten. Unser Leitfaden zu Staging mit einer mobilen App-ID
beschreibt einen praktischen Weg, dies im Laufe der Zeit sauber zu halten.
7. Halten Sie Lean getrennt von geheimen Informationen
Kanäle steuern die Zulässigkeit. Sie machen einen Paketverlauf nicht vertraulich allein durch sich selbst.
Wenn Sie stärkere Liefergarantien benötigen:
- aktivieren Live-Update-Verschlüsselung,
- benutzen benutzerdefinierte Speicherung oder selbst gehostete Lieferung,
- __CAPGO_KEEP_0__
Das bedeutet nicht, dass die Updategröße irrelevant ist. Es bedeutet nur, dass Sie sich auf beide Dimensionen optimieren sollten:
- schnell für Geschwindigkeit
- verschlüsselt für Lieferkontrolle
- Kanäle für Rollout-Kontrolle
- Rückgängigmachen für Wiederherstellung
Ein praktischer "lean Capgo" Workflow
Wenn Sie ein einfaches Standardbetriebsmodell wollen, verwenden Sie dies:
- Halten Sie native und OTA-Release-Linien getrennt.
- Laden Sie JS-Änderungen mit
--deltastandardmäßig. - Verwenden Sie
stagingundbetaKanäle vorproduction. - Beobachten Sie Aktualisieren Sie Statistiken und Protokolle nach der Rollout und nicht nur vorher.
- Wandeln Sie Pull Requests in installierbare Vorabversionen, wenn eine native Build nicht notwendig ist.
- Lassen Sie große, häufig wechselnde Medien, soweit möglich, aus dem Bundle ausschließen.
- Aktualisieren Sie die native Basislinie nach schweren Asset-Wachstum oder native Änderungen.
- Behandeln Sie
notifyAppReady()und Rollback-Verhalten als Teil der Release-Engineering und nicht als Setup-Trivia.
Diese Combination bleibt viel länger schnell als der gängige "Jedweder Upload, was sich geändert hat"-Ansatz.
Schlussgedanke
Für Capgo-Teams ist "lean and fast" nicht nur ein Problem der Bundle-Größe.
Es ist ein Release-Design-Problem.
Verwenden Sie Delta-Updates für die Payload-Größe, Kanäle für die Rollout-Größe und Rollbacks für die Fehler-Größe.