Der beste Live-Update ist der, den die Benutzer kaum bemerken.
Das bedeutet in der Regel drei Dinge:
- Die Herunterladung ist klein.
- Der Rollout ist kontrolliert.
- Recovery ist sofortlich, wenn etwas schief geht.
Die gleiche 'halten OTA schlank' Ratschläge, die in der React Native Welt funktionieren, gelten auch für Capgo. Die Differenz ist, dass Capgo Capacitor Teams ein paar zusätzliche Hebel gibt: Delta-Updates, Kanäle, automatische Rollbacks, Zielsetzungen für Versionen, und optional End-to-End-Verschlüsselung.
Wenn Sie diese zusammen verwenden, erhalten Sie kleinere Payloads, schnellere Installationen und viel weniger operativen Schmutz.
Schlankheit ist auch dann wichtig, wenn sich die MAU nicht ändert
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 eines Bundles 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 schwachen 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 Betriebsdisziplin.
1. Standardmäßig Delta-Updates verwenden
Wenn Sie nur eines tun, tun Sie 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 Routine-OTA-Leistung.
bunx @capgo/cli@latest bundle upload --channel production --delta
Wenn Sie möchten, dass CI streng bleibt, verwenden Sie --delta-only Damit niemand versehentlich auf volle-Bundle-Uploads zurückfällt:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Nur verwenden --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, dieses Update herunterzuladen.
Dies ist noch wichtiger, wenn Sie directUpdate, weil die Zeit zwischen „Update gefunden“ und „App neu geladen“ dem 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:
- Vermeiden Sie es, große Bilder oder Medien innerhalb von JavaScript einzubinden, wenn ein normales Asset-File getan werden kann.
- Halten Sie häufig wechselnde Inhalte auf Ihrem eigenen CDN oder API, wenn sie nicht innerhalb des verschickten App-Bundles leben müssen.
- Seien Sie vorsichtig mit Marketing-Bildern, Onboarding-Videos und einzigartigen Kampagnen-Inhalten, die jede Release ersetzt werden.
- Lassen Sie stabile Assets stabil bleiben. Mit Delta-Updates werden unveränderte Dateien wieder verwendet anstatt erneut heruntergeladen.
Dies ist eine der einfachsten Möglichkeiten, Capgo schnell zu halten, während Ihr App wächst. 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
Capgo aktualisiert die Web-Schicht: HTML, CSS, JavaScript und Assets, die bei Laufzeit geladen werden.
Das ist nicht der richtige Kanal für:
- neue native Plugins
- Zustimmungsänderungen
capacitor.config.tsÄnderungen- Alles, 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-Lane absichtlich:
Native Lane
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 sichere Web-Schicht-Iteration:
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-Bau integriert diese neue Basis, was zukünftige Capgo-Differenzen kleiner hält.
4. Verwenden Sie Kanäle, um die Update-Größe klein zu halten
Ein 'schlanker' Update ist nicht nur in Bezug auf Megabyte wichtig. Es ist auch darum, wie viele Geräte das Update erhalten, bevor Sie wissen, dass es gut ist.
Capgo- Das Kanal-System von ist der sauberste Weg, um das zu kontrollieren:
stagingfür QAbetafür eingeladene Testerproductionfür jedenhotfixfür die Notfallwiederherstellung
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 Rollout.
- Rollen Sie sofort zurück, wenn die Gesundheit sinkt.
Wenn Ihr App mehrere native Baselines im Feld hat, kombinieren Sie Kanäle mit VersionzielDas 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-Vorschau. Das ermöglicht es, dass Produkt, QA und Stakeholder JS-Änderungen ohne Wartezeit auf neue TestFlight- oder Play-internal-Builds testen können.
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 Standardkonfiguration.
Die zweite Barriere ist notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Wenn Ihr App nicht innerhalb der Standardzeit von 10 Sekunden oder innerhalb der Zeit, die Sie in Ihrer __CAPGO_KEEP_0__-Konfiguration festgelegt haben, bereit ist, kann __CAPGO_KEEP_1__ das Bundle als ungültig markieren und die vorherige gute Version wiederherstellen. Diese Rollover-Verhaltensweise ist in der Produktion erwünscht, bedeutet aber auch, dass Sie die Startzeit sauber halten sollten: notifyAppReady() Aufruf 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:
- protectedTokens
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 Geräteleistung vor einer breiten Veröffentlichung
Wenn du es nicht kürzlich gelesen hast, ist der Leitfaden "notifyAppReady" einen erneuten Lesen wert. 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 der Webseite vorgenommen wurden.
Wenn die Änderung:
Kopieren
UI-Polish
- ist
- ist
- Einbindung des Onboarding-Flusses
- Logik für die Preissicht
- Anbindung der Analytik
- Funktionsschalter
- Anzeige von API oder einer Aufforderung zur Eingabe
Dann ist eine Capgo-Aktualisierung oft das schnellere Review-Artikel.
Das bedeutet weniger native Rebuilds, weniger TestFlight-Churn und ein engeres Feedback-Loop für das Team. Es ist einer der am wenigsten genutzten Vorteile von Capgo: Sie können mehr Review- und QA-Arbeit in die OTA-Spur ohne den native/Web-Grenzen zu durchbrechen.
Unser Leitfaden zu Staging mit einem mobilen App-ID beschreibt einen praktischen Weg, dies im Laufe der Zeit sauber zu halten.
7. Halten Sie Lean getrennt von geheimen Informationen
Kleine Pakete und sichere Pakete lösen unterschiedliche Probleme.
Kanäle bestimmen die Berechtigung. Sie machen ein Paket nicht automatisch vertraulich.
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 für 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 davor.
- Wandeln Sie Pull Requests in installierbare Vorabansichten um, wenn eine native Build nicht notwendig ist.
- Halten Sie große, häufig wechselnde Medien möglichst aus dem Bundle aus.
- Aktualisieren Sie die native Basislinie nach erheblichen 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 „Upload einfach alles, was geändert wurde“ Ansatz.
Abschließende Gedanken
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 Fehlergröße. Sobald Sie sich OTA so denken, bleiben Ihre Updates schnell, selbst wenn sich die App, das Team und die Benutzerbasis vergrößern.