Der beste Live-Update ist das, das Ihre Benutzer kaum bemerken.
Das bedeutet in der Regel drei Dinge:
- Die Herunterladung ist klein.
- Die Ausrollung 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 Rollobacks, Zielgruppen für Versionen, und optional End-to-End-Verschlüsselung.
Wenn Sie sie gemeinsam verwenden, erhalten Sie kleinere Payloads, schnellere Installationen und viel weniger operativen Aufruhr.
Lean 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.
Daher 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ückgerollten Releases
- Kleinere Auswirkungen bei der Testung oder Staging eines Releases
Lean-Updates sind wirklich über Geschwindigkeit, Sicherheit und operative Disziplin.
1. Standardmäßig auf Delta-Updates umstellen
Wenn Sie nur eines tun, tun Sie dies.
Capgo’s Delta-Updates Senden Sie nur die Dateien, die sich zwischen den Versionen geändert haben, anstatt das vollständige Web-Bundle erneut herunterzuladen. Das ist der größte einzelne Gewinn für die Routine-OTA-Leistung.
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 Produktionsflekt Delta-Updates unterstützt. Bei gemischten Plugin-Versionen werden ältere Geräte, die Manifest-basierte Delta-Lieferung nicht unterstützen, nicht in der Lage sein, das Update herunterzuladen.
Das ist besonders wichtig, 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, wo sich OTA-Bundles leise aufblähen.
Einige praktische Regeln:
- Vermeide es, große Bilder oder Medien direkt in JavaScript einzubinden, wenn ein normales Asset-File ausreicht.
- Halten Sie häufig wechselnde Inhalte auf Ihrem eigenen CDN oder API auf, wenn sie nicht innerhalb des gelieferten App-Bundles leben müssen.
- Seien Sie vorsichtig mit Marketing-Bildern, Onboarding-Videos und einmaligen Kampagnen-Inhalten, die bei jedem Release ersetzt werden.
- Lassen Sie stabile Assets stabil. Mit Delta-Updates werden unveränderte Dateien stattdessen als verbleibend verwendet.
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 auf.
Capgo aktualisiert die Web-Schicht: HTML, CSS, JavaScript und Assets, die bei der Ausführung geladen werden.
Es ist nicht der richtige Kanal für:
- neue native Plugins
- Änderungen der Berechtigungen
capacitor.config.tsÄnderungen- alles, was den Zustand eines iOS- oder Android-Native-Projekts ändert.
Diese Zeile ist auch für die Leistung wichtig. Wenn Sie immer wieder große strukturelle Änderungen in den OTA-Lane schieben, wird Ihre Updatestrategie mit der Zeit schwerer und riskanter.
Verwenden Sie zwei Release-Lane absichtlich:
Native Lane
Für Änderungen an Plugins, Berechtigungen und der native Konfiguration:
bun run build
bunx cap sync
Dann veröffentlichen Sie ein normales Store-Release.
Capgo Lane
Für sichere Web-Schicht-Iteration:
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Ändern Sie auch regelmäßig Ihre native Basis, wenn Sie kürzlich viele langfristige Assets hinzugefügt haben. Ein frischer Store-Build enthält diese neue Basis, was zukünftige Capgo-Diffs 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 die Update erhalten, bevor Sie wissen, dass es gut ist.
Capgo's Kanalsystem ist der sauberste Weg, um das zu steuern:
stagingfür QAbetafür eingeladene Testerproductionfür allehotfixfür Notfall-Wiederherstellung
Ein einfacher Workflow sieht so aus:
- Hochladen auf
staging. - Validierung auf echten Geräten.
- Schrittweise ausrollen, ob über kontrollierte Kanäle oder auf Basis von Prozentzahlen.
- Rückgängig machen sofort, wenn die Gesundheit sinkt.
Wenn Ihre App mehrere native Baseline im Feld hat, paaren Sie Kanäle mit VersionszielDadurch werden inkompatible oder unnötig schwere Pakete von älteren Binären ferngehalten.
Für Teams, die noch enge Überprüfungszyklen wollen, funktioniert Capgo auch gut für Vorschau auf Pull-RequestsDamit können Produkt, QA und Stakeholder JavaScript-Änderungen ohne Wartezeit auf neue TestFlight- oder Play-internal Builds testen.
5. Wenn Sie direkte Updates aktivieren, optimieren Sie die Startzeit
Je schneller Sie ein Update anwenden möchten, desto disziplinierter muss Ihre Startzeit sein.
Capgo’s aktualisierungsverhalten Die Dokumentation empfiehlt es ausdrücklich, __CAPGO_KEEP_0__ directUpdate mit Delta-Updates zu kombinieren. Das ist die richtige Standard-Einstellung.
Der zweite Schutzzaun ist notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Wenn Ihre App innerhalb der Standardzeit von 10 Sekunden nicht bereitmeldet oder nicht innerhalb der Zeit, die Sie in Ihrer __CAPGO_KEEP_0__-Konfiguration festgelegt haben, __CAPGO_KEEP_1__ kann diese Bundle als ungültig markieren und die vorherige gute Version wiederherstellen. Diese Rollover-Vorgehensweise ist in der Produktion erwünscht, bedeutet aber auch, dass Sie den Startvorgang sauber halten sollten: notifyAppReady() Wenn Ihre App innerhalb der Standardzeit von 10 Sekunden nicht bereitmeldet oder nicht innerhalb der Zeit, die Sie in Ihrer __CAPGO_KEEP_0__-Konfiguration festgelegt haben, __CAPGO_KEEP_1__ kann diese Bundle als ungültig markieren und die vorherige gute Version wiederherstellen. Diese Rollover-Vorgehensweise ist in der Produktion erwünscht, bedeutet aber auch, dass Sie den Startvorgang sauber halten sollten: 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:
- Vermeiden Sie in der kritischen Pfad langsamere Startzeitvorgänge
notifyAppReady()Sparen und wiederherstellen Sie den Anwendungsstatus sorgfältig, wenn Sie sofort neu laden - Testen Sie Szenarien mit schlechter Netzwerkverbindung und geringer Leistung auf Endgeräten vor einer breiten Veröffentlichung
- Wenn Sie es nicht kürzlich gelesen haben, lohnt sich die Überprüfung des Leitfadens für die Benachrichtigung über die Bereitschaft der App
- 6. Verwenden Sie interne Updatekanäle anstatt unnötiger nativer Rebuilds
notifyAppReady guide Call in the right place
Avoid slow boot-time work in the critical path
Aufgrund vieler Zeitverschwendung durch mobile Teams beim Erstellen von Binärdateien für Änderungen, die offensichtlich nur auf Web-Seiten stattfinden.
Wenn die Änderung:
- Kopieren
- Benutzerschnittstellen-Polish
- Einrichtungsprozess
- Preisbildschirmlogik
- Analytik-Verkabelung
- Funktionsschalter
- Anfrage oder API Antwort-Rendering
Dann ist ein Capgo Update oft das schnellere Review-Artikel.
Dies bedeutet weniger native Rebuilds, weniger TestFlight-Churn und eine enge Rückkopplung 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 die native/Web-Grenze zu überschreiten.
Unsere Anleitung zu Staging mit einem mobilen App-ID beschreibt eine praktische Methode, dies im Laufe der Zeit sauber zu halten.
7. Halten Sie Lean separat von geheimen Informationen.
Kleine Pakete und sichere Pakete lösen unterschiedliche Probleme.
Kanäle bestimmen die Berechtigung. Sie machen ein Paket selbst nicht vertraulich.
Wenn Sie stärkere Liefergarantien benötigen:
- Aktivieren Sie Live-Update-Verschlüsselung,
- Verwenden Sie Benutzerdefinierte Speicherung oder selbst gehostete Lieferung,
- Halten Sie private Schlüssel nur in CI oder sichergestellten Operator-Workflows.
Das bedeutet nicht, dass die Update-Größ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 die Kontrolle der Ausrollung
- Rückgängigmachen für die Wiederherstellung
Ein praktisches "schnelles 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 vorherproduction. - Beobachten Aktualisierungsstatistiken und -protokolle nach der Bereitstellung und nicht nur vorher. Wandeln Sie Pull-Anforderungen in installierbare Vorschauversionen um, wenn eine native Build nicht erforderlich ist.
- Halten Sie große, häufig wechselnde Medien möglichst aus dem Bundle heraus.
- Aktualisieren Sie die native Basislinie nach bedeutenden Asset-Wachstum oder native Änderungen.
- Behandeln Sie
- 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 "Jeder Upload, was geändert wurde"-Ansatz.
Abschließender Gedanke
Für __CAPGO_KEEP_0__-Teams ist "lean and fast" nicht nur ein Problem der Bundle-Größe.
For Capgo teams, “lean and fast” is not just a bundle-size problem.
Schließen Sie die großen, häufig wechselnden Medien aus dem Bundle aus, wo immer möglich.
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.
Weiterlesen von Wie Sie Capgo-Updates schlank und schnell halten
Wenn Sie verwenden Wie Sie Capgo-Updates schlank und schnell halten um Kanalrouten und rollende Veröffentlichungen zu planen, verbinden Sie es mit Kanälen für die Implementierungsdetails in Kanälen für die Implementierungsdetails in Kanälen für die Implementierungsdetails in Kanälen für die Implementierungsdetails in Kanälen Beta-Testlösung Beta-Testlösung für das Produktworkflow in der Beta-Testlösung und Version-Zielsystemlösung für das Produktworkflow in der Version-Zielsystemlösung.