11. Breaking Changes
Kopieren Sie eine Einrichtungsbefehlszeile mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Diese Dokumentation erklärt, wie Sie bei Änderungen in Ihrer App mit kanalisierten 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”Lasst man sagen, Sie haben:
- App-Version 1.2.3 (alte Version) - verwendet Produktionskanal
- App-Version 2.0.0 (neue Version mit Änderungen, die das Programm brechen) - verwendet v2-Kanal
- Live-Update 1.2.4 (kompatibel mit 1.2.3)
- Live-Update 2.0.1 (kompatibel mit 2.0.0)
Strategie: Verwenden Sie immer defaultChannel für Hauptversionen
Abschnitt mit dem Titel „Strategie: Verwenden Sie immer defaultChannel für Hauptversionen“Empfehlte Vorgehensweise: Einstellung für jede Hauptversion. Dadurch können Sie immer Updates an bestimmte Benutzergruppen pushen, ohne auf dynamische Kanalzuweisung angewiesen zu sein. defaultChannel Zwischenablage kopieren
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'Abschnitt mit dem Titel „1. Kanal erstellen für neue Version“
Benefits of this approach:# 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 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
Sektion mit dem Titel „3. Verwalten Sie separate Code Zweige“Erstellen Sie separate Git-Zweige, 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: Pushen Sie niemals JavaScript-Bundles an ältere Apps, die native code/APIs erwarten, die sie nicht haben. Bauen Sie immer Updates von dem entsprechenden Zweig aus:
- Zweig v1-maintenance: Für Updates an 1.x-Apps (Produktionskanal)
- Hauptzweig: Für Updates auf 2.x Apps (Kanal v2)
4. Bundles in den jeweiligen Kanälen hochladen
Abschnitt mit dem Titel „4. Bundles in den jeweiligen Kanälen hochladen“# 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. Auf App Store deployen
Abschnitt mit dem Titel „6. Auf App Store deployen“Version 2.0.0 in den App Store bereitstellen. Alle Benutzer, die diese Version herunterladen (ob neue Benutzer oder bestehende Benutzer, die aktualisieren), verwenden automatisch den Kanal v2, da dies im App-Bundle konfiguriert ist.
Skalierung für zukünftige Versionen
Abschnitt mit dem Titel „Skalierung für zukünftige Versionen“Wenn Sie Version 3.0.0 mit weiteren Ä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 → Benutzer der Version 1.xv2Kanal → Benutzer der Version 2.xv3Kanal → Benutzer der 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-maintenanceTesten Sie Updates immer gründlich in jedem Kanal, bevor Sie sie bereitstellen
Erhaltung von Version 1.x-Updates
Abschnitt mit dem Titel ‘Erhaltung von Version 1.x-Updates’Um Updates zu versenden, die mit Version 1.x kompatibel sind:
- Wechseln Sie zur v1-maintenance-Branche:
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- Bauen 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" verwenden, um Kanalrouten und die Stufenrollout zu planen, verbinden Sie es mit Breaking Changes zum Planen von Kanalrouten und der Stufenrollout Channels zur Implementierungsdetail in Channels Channels zur Implementierungsdetail in Channels Channels zur Implementierungsdetail in Channels Beta-Testlösung für das Produktworkflow in Beta-Testlösung und Versionziel-Lösung für das Produktworkflow in Versionziel-Lösung.