Der beste Live-Update ist der, den die Benutzer kaum bemerken.
Das bedeutet normalerweise drei Dinge:
- Der Download ist klein.
- Die Veröffentlichung ist kontrolliert.
- Die Wiederherstellung ist sofort, wenn etwas schief geht.
The same “keep OTA lean” advice that works in React Native land also applies to Capgo. The difference is that Capgo gives Capacitor teams a few extra levers: Delta-Updates, Kanäle, automatische Rückschritte, Version-Zielsetzung, und optional Wenn Sie diese zusammen verwenden, erhalten Sie kleinere Payloads, schnellere Installationen und viel weniger operativen Aufruhr..
Lean ist wichtig, auch wenn sich die MAU nicht ändert
Ein nützliches __CAPGO_KEEP_0__-spezifisches Detail: __CAPGO_KEEP_1__ MAU ist effektiv die Anzahl der monatlich aktiven Geräte, die das Update-Service in den letzten 30 Tagen kontaktiert haben.
One useful Capgo-specific detail: Capgo MAU is effectively the number of monthly active devices that contacted the update service in the last 30 days.
Schnellere Downloads über Mobilfunk oder schwachen Wi-Fi
- Bessere Erfahrung mit
- Bessere Erfahrung beim direkte Aktualisierungen
- Kleinerer Ausfallbereich bei fehlgeschlagenen oder zurückgezogenen Releases
- Kleinerer Ausfallbereich bei der Testung oder Staging eines Releases
Lean Aktualisierungen sind wirklich um Geschwindigkeit, Sicherheit und Betriebsdisziplin bemüht.
1. Standardmäßig Delta-Aktualisierungen verwenden
Wenn du nur eines tust, dann das.
Capgo’s Delta-Aktualisierungen senden nur Dateien, die zwischen den Versionen geändert wurden, anstatt das vollständige Web-Bundle neu herunterzuladen.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Wenn Ihre QA-Überprüfung abgeschlossen ist:
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 Sie --delta-only wenn Ihr Produktionspool Delta-Updates unterstützt. Bei gemischten Plugin-Versionen können ältere Geräte, die Manifest-basierte Delta-Lieferung nicht unterstützen, nicht auf das Update zugreifen.
Dies ist besonders wichtig, wenn Sie directUpdate, da die Zeit zwischen „Update gefunden“ und „App neu geladen“ für den Benutzer sichtbar wird.
2. Behandeln Sie Assets wie Assets, nicht als JavaScript-Beutel
Große Assets sind der stillschweigende Ort, an dem sich OTA-Bundles 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.
- Keep frequently changing content on your own CDN or API if it does not need to live inside the shipped app bundle.
- Lassen Sie stabile Assets stabil. Mit Delta-Updates werden unveränderte Dateien wieder verwendet und nicht erneut heruntergeladen.
- Dies ist eine der einfachsten Möglichkeiten, __CAPGO_KEEP_0__ 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.
Capgo
3. Bewahren Sie native Releases für echte native Änderungen auf
Capgo aktualisiert die Web-Schicht: HTML, CSS, JavaScript und Assets, die bei Laufzeit geladen werden.
Es ist nicht der richtige Kanal für:
- neue native Plugins,
- Änderungen der Berechtigungen,
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 immer wieder große strukturelle Änderungen in die OTA-Lane schieben, wird Ihre Updatestrategie mit der Zeit schwerer und riskanter.
Verwenden Sie zwei Release-Lane absichtlich:
Native Lane
Für Plugin-Änderungen, Berechtigungsänderungen und native Konfiguration:
bun run build
bunx cap sync
Dann versenden Sie ein normales Store-Release.
Capgo Spurstrack
Für eine 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 geht auch darum, wie viele Geräte das Update erhalten, bevor Sie wissen, dass es gut ist.
Capgo’s Kanal-System ist der sauberste Weg, um das zu kontrollieren:
stagingfür QAbetafür eingeladene Testerproductionfür allehotfixfür Notfall-Wiederherstellung
Ein einfacher Workflow sieht so aus:
- Hochladen auf
staging. - Validieren auf echten Geräten.
- Warten Sie, bis Sie langsam durch kontrollierte Kanäle oder eine prozentuale Verteilung ausrollen.
- Wenn die Gesundheit sinkt, sollten Sie sofort zurückrollen.
Wenn Ihre App mehrere native Baselines im Feld hat, funktioniert die Pairing von Kanälen mit Versionen . Das hält inkompatible oder unnötig schwere Pakete von älteren Binären fern.
Für Teams, die noch engere Review-Schleifen wollen, funktioniert Capgo auch gut für Vorschau auf Pull-Requests . Das ermöglicht es Produkt, QA und Stakeholdern, JS-Änderungen ohne auf neue TestFlight- oder Play-Internetaufbauten zu warten.
5. Wenn Sie direkte Updates aktivieren, optimieren Sie die Startzeit
Je schneller Sie eine Aktualisierung anwenden möchten, desto disziplinierter muss Ihre Startsequenz sein.
Capgo’s __CAPGO_KEEP_0__’s Aktualisierungsverhalten Die Dokumentation empfiehlt ausdrücklich die Kombination mit Delta-Updates. Das ist die richtige Standardkonfiguration. directUpdate Die zweite Sicherheitsbarriere ist
Wenn Ihre App innerhalb der Standardzeit von 10 Sekunden oder innerhalb der Zeit, die Sie in Ihrer __CAPGO_KEEP_0__-Konfiguration festgelegt haben, nicht bereit meldet, 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 Startsequenz sauber halten sollten: notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Aufrufen Sie notifyAppReady() am richtigen Ort 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:
- __CAPGO_KEEP_1__
notifyAppReady()__CAPGO_KEEP_0__ - __CAPGO_KEEP_1__
- Sparen und den Anwendungsstatus sorgfältig wiederherstellen, wenn Sie sofort neu laden
- Testen Sie die Szenarien "schlechte Netzwerk" und "geringe Endgeräte" vor einer breiten Veröffentlichung
Wenn Sie es kürzlich nicht gelesen haben, ist die "notifyAppReady"-Anleitung wertvoll, wiederzulesen. 6. Verwenden Sie interne Update-Kanäle anstatt unnötiger nativer Rebuilds Einige mobile Teams verbringen viel Zeit damit, Binärdateien für Änderungen zu erstellen, die offensichtlich nur auf der Webseite vorgenommen wurden.
Wenn die Änderung: ist
kopieren
UI-Polish
- Onboarding-Flow
- Preisbild-Logik
- ist
- wird
- Analytik-Kabel
- Funktionsschalter
- Anfrage oder API Antwort-Anzeige
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 einem mobilen App-ID
beschreibt einen praktischen Weg, dies über die Zeit sauber zu halten.
7. Halten Sie Lean separat von geheim
Kleine Pakete und sichere Pakete lösen unterschiedliche Probleme.
Kanäle steuern die Berechtigung. Sie machen ein Paket nicht selbstverständlich durch sich selbst geheim.
- aktivieren Live-Update-Verschlüsselung,
- nutzen benutzerdefinierte Speicherung oder selbst gehostete Lieferung,
- Halten Sie private Schlüssel nur in CI oder sichergestellten Operator-Workflows.
Das bedeutet nicht, dass die Updategröße irrelevant ist. Es bedeutet nur, dass Sie sich für beide Dimensionen optimieren sollten:
- sich für Geschwindigkeit richten
- verschlüsselt für Lieferungskontrolle
- Kanäle für die Kontrolle der Ausrollung
- Rückgängig für die Wiederherstellung.
Ein praktischer „lean Capgo“ Workflow
Wenn Sie ein einfaches Standardbetriebsmodell wollen, verwenden Sie dies:
- Halten Sie native und OTA-Release-Linien getrennt.
- JS-Änderungen hochladen mit
--deltastandardmäßig. - Verwenden Sie
stagingundbetaKanäle vorproduction. - Beobachten Aktualisieren Sie Statistiken und Protokolle nach dem Rollout und nicht nur vorher.
- Wandeln Sie Pull Requests in installierbare Vorabversionen um, wenn eine native Build unnötig ist.
- Halten Sie große, häufig wechselnde Medien möglichst aus dem Bundle heraus.
- Aktualisieren Sie die native Basislinie nach größeren Asset-Wachstum oder native Änderungen.
- Behandeln Sie Upload- und Rollback-Verhalten als Teil der Release-Engineering und nicht als Setup-Trivia.
notifyAppReady()Diese Combination bleibt viel länger schnell als der gängige "Upload einfach alles, was geändert wurde"-Ansatz.
Schlussgedanke
Für __CAPGO_KEEP_0__-Teams ist "schlank und schnell" nicht nur ein Problem der Bundle-Größe.
For Capgo teams, “lean and fast” is not just a bundle-size 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. Sobald Sie sich an OTA so denken, bleiben Ihre Updates schnell, selbst wenn die App, das Team und die Benutzerbasis größer werden.
Fahren Sie weiter von Wie __CAPGO_KEEP_0__ Updates Lean und Fast zu halten
Wenn Sie "Wie Capgo Updates Lean und Fast zu halten" verwenden
um Kanalrouten und rollende Veröffentlichung zu planen, verbinden Sie es mit How to Keep Capgo Updates Lean and Fast Behandeln Sie Upload- 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. für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, Beta-Testlösung für den Produktworkflow in der Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in der Versionziel-Lösung.