Breaking Changes
Eine Setup-Vorlage mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Diese Dokumentation erklärt, wie Sie bei Änderungen in Ihrer App mit kanalverteilten Versionen umgehen können. Diese Vorgehensweise ermöglicht es Ihnen, verschiedene Versionen Ihrer App zu pflegen, während sichergestellt wird, dass Benutzer kompatible Updates erhalten.
Beispiel-Szenario
Abschnitt mit dem Titel „Beispiel-Szenario“Lassen Sie uns sagen, Sie haben:
- App-Version 1.2.3 (alte Version) - verwendet Produktionskanal
- App-Version 2.0.0 (neue Version mit Änderungen, die den Kompatibilität gefährden) - verwendet Kanal v2
- Live update 1.2.4 (kompatibel mit 1.2.3)
- Live update 2.0.1 (kompatibel mit 2.0.0)
Strategie: Immer den defaultChannel für Hauptversionen verwenden
Sektion: Strategie: Immer den defaultChannel für Hauptversionen verwendenEmpfehlung: Einen defaultChannel pro jede Hauptversion. Dies stellt sicher, dass Sie immer Updates an bestimmte Benutzergruppen pushen können, ohne sich auf die dynamische Kanalzuweisung zu verlassen.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Kanal für neue Version erstellen
Abschnitt mit dem Titel „1. Kanal für neue Version erstellen“# Create channel for version 2.xnpx @capgo/cli channel create v22. Capacitor-Konfiguration für Version 2.0.0 aktualisieren
Abschnitt mit dem Titel „2. Aktualisieren Sie Capacitor-Konfiguration für Version 2.0.0“Aktualisieren Sie Ihre Capacitor-Konfiguration, bevor Sie Version 2.0.0 für den App Store erstellen:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { // ... other options defaultChannel: 'v2' // All 2.0.0 users will use v2 channel } }};
export default config;3. Verwalten Sie separate Code-Zweige
Abschnitt mit dem Titel “3. Verwalten Sie separate Code Branchen”Erstellen Sie separate Git-Branches, um die Kompatibilität zwischen Anwendungsversionen aufrechtzuerhalten:
# Create and maintain a branch for version 1.x updatesgit checkout -b v1-maintenancegit push origin v1-maintenance
# Your main branch continues with version 2.x developmentgit checkout mainWichtig: Nie JavaScript-Bundles an ältere Apps pushen, die native code/APIs erwarten, die sie nicht haben. Bauen Sie immer Updates von dem entsprechenden Branch ab:
- Branch für Updates von 1.x-Anwendungen (Produktionskanal)Branch für Updates von 2.x-Anwendungen (v2-Kanal)
- 4. Hochladen von Bundles in den entsprechenden KanälenAbschnitt mit dem Titel “4. Hochladen von Bundles in den entsprechenden Kanälen”
4. Upload Bundles to Respective Channels
Section titled “4. Upload Bundles to Respective Channels”# For 1.x updates: Build from v1-maintenance branchgit checkout v1-maintenance# Make your 1.x compatible changes herenpx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branchgit checkout main# Make your 2.x changes herenpx @capgo/cli bundle upload --channel v25. Selbstzuweisung aktivieren
Abschnitt mit der Überschrift „5. Selbstzuweisung aktivieren“# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Auf App Store deployen
Abschnitt mit der Überschrift „6. Auf App Store deployen“Version 2.0.0 zum App Store bereitstellen. Alle Benutzer, die diese Version herunterladen (ob neue Benutzer oder bestehende Benutzer, die aktualisieren), werden automatisch die v2-Kanal verwenden, da dies im App-Bundle konfiguriert ist.
Zu zukünftigen Versionen skalieren
Abschnitt mit dem Titel “Zu zukünftigen Versionen skalieren”Wenn Sie Version 3.0.0 mit mehreren Bruchänderungen veröffentlichen:
# Create channel for version 3.xnpx @capgo/cli channel create v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};Jetzt können Sie Updates für jede Version pushen:
productionKanal → Version 1.x-Benutzerv2Kanal → Version 2.x-Benutzerv3Kanal → Version 3.x-Benutzer
7. Säubern (Nach der Migration)
Sektion mit dem Titel “7. Säubern (Nach der Migration)”Nachdem alle Benutzer auf Version 2.x migriert sind (ca. 3-4 Monate):
- Löschen
defaultChannelaus Ihrem Capacitor-Konfiguration - Löschen des v2-Kanals:
npx @capgo/cli channel delete v2- Löschen des v1-Maintenance-Zweigs:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceJedes Update sollte sorgfältig in jedem Kanal getestet werden, bevor es veröffentlicht wird
Wartung von Updates für Version 1.x
Abschnitt mit dem Titel “Wartung von Updates für Version 1.x”Um Updates zu versenden, die mit Version 1.x kompatibel sind:
- Zum v1-Wartungsbranch wechseln:
git checkout v1-maintenance- Machen Sie Ihre Änderungen und committen Sie:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Erstellen und hochladen Sie in den Produktionskanal:
npx @capgo/cli bundle upload --channel productionWeitergehen von Breaking Changes
Abschnitt mit dem Titel “Weitergehen von Breaking Changes”Wenn Sie Breaking Changes um das Kanalrouting und die rollierende Veröffentlichung zu planen, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanälen, Kanäle für die Implementierungsdetails in Kanälen, Kanäle für die Implementierungsdetails in Kanälen, 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.