Breaking Changes
Ein Setup-Prompt mit den Installations-Schritten 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 Folgendes annehmen:
- App-Version 1.2.3 (alte Version) - verwendet den Produktionskanal
- App-Version 2.0.0 (neue Version mit Änderungen, die den Code beeinflussen) - verwendet den Kanal v2
- Live-Update 1.2.4 (kompatibel mit 1.2.3)
- Live-Update 2.0.1 (kompatibel mit 2.0.0)
Strategie: Immer Default-Channel für Hauptversionen verwenden
Abschnitt mit dem Titel „Strategie: Immer Default-Channel für Hauptversionen verwenden“Empfohlener Ansatz: Einen defaultChannel für jede Hauptversion einrichten. So können Sie immer Updates an bestimmte Benutzergruppen pushen, ohne auf dynamische Kanalzuweisung angewiesen zu sein.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Erstellen Sie einen Kanal für die neue Version
Abschnitt mit dem Titel “1. Erstellen Sie einen Kanal für die neue Version”# Create channel for version 2.xnpx @capgo/cli channel create v22. Aktualisieren Sie Capacitor-Konfiguration für Version 2.0.0
Abschnitt mit dem Titel “2. Aktualisieren Sie Capacitor-Konfiguration für Version 2.0.0”Aktualisieren Sie Ihre Capacitor-Konfiguration, bevor Sie die 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;Abschnitt mit dem Titel „3. Separate Code Branchen verwalten“
Section titled “3. Manage Separate Code Branches”Create separate git branches to maintain compatibility between app versions:
# 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: Pushen Sie JavaScript-Bundles niemals an ältere Apps, die native code/APIs nicht unterstützen. Bauen Sie immer Updates von der entsprechenden Branch ab:
- Branch für Updates von 1.x-Apps (Produktionskanal)Branch für Updates von 2.x-Apps (v2-Kanal)
- 4. Hochladen von Bundles in die entsprechenden KanäleAbschnitt mit dem Titel „4. Hochladen von Bundles in die entsprechenden Kanäle“
Terminalfenster
Auf die Zwischenablage kopieren# 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 dem Titel “5. Selbstzuweisung aktivieren”# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. In den App Store deployen
Abschnitt mit dem Titel “6. In den 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-Kanäle verwenden, da dies im App-Bundle konfiguriert ist.
Zukunftssicherung für zukünftige Versionen
Abschnitt mit dem Titel “Zukunftssicherung für zukünftige Versionen”Wenn Sie die Version 3.0.0 mit mehreren Ä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 bereitstellen:
productionKanal → Benutzer von Version 1.xv2Kanal → Benutzer von Version 2.xv3Kanal → Benutzer von Version 3.x
7. Reinigung (Nach der Migration)
Abschnitt mit dem Titel “7. Reinigung (Nach der Migration)”Sobald alle Benutzer auf Version 2.x migriert sind (ca. 3-4 Monate):
- Entfernen
defaultChannelaus Ihrer Capacitor-Konfiguration - Löschen Sie den v2-Kanal:
npx @capgo/cli channel delete v2- Löschen Sie den v1-Maintenance-Zweig:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceJede Aktualisierung gründlich in jedem Kanal vor der Bereitstellung testen
Aktualisierungen für Version 1.x aufrechterhalten
Abschnitt mit dem Titel „Aktualisierungen für Version 1.x aufrechterhalten“Um Updates abzugeben, die mit Version 1.x kompatibel sind:
- Zum v1-maintenance-Zweig 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 die Produktionskanal:
npx @capgo/cli bundle upload --channel productionWeitermachen von Breaking Changes
Abschnitt mit dem Titel “Weitermachen von Breaking Changes”Wenn Sie Breaking Changes zur Planung von Kanalrouting und staged Rollout verwenden, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in Versionziel-Lösung.