Breaking Changes
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Diese Dokumentation erklärt, wie Sie Breaking Changes in Ihrer App mit versionierten Channels handhaben. Dieser Ansatz ermöglicht es Ihnen, verschiedene Versionen Ihrer App zu pflegen, während Sie sicherstellen, dass Nutzer kompatible Updates erhalten.
Beispielszenario
Abschnitt mit dem Titel „Beispielszenario“Angenommen, Sie haben:
- App-Version 1.2.3 (alte Version) – verwendet den production-Channel
- App-Version 2.0.0 (neue Version mit Breaking Changes) – verwendet den v2-Channel
- Live update 1.2.4 (kompatibel mit 1.2.3)
- Live update 2.0.1 (kompatibel mit 2.0.0)
Strategie: defaultChannel immer für Major-Versionen nutzen
Abschnitt mit dem Titel „Strategie: defaultChannel immer für Major-Versionen nutzen“Empfohlener Ansatz: Lege einen defaultChannel für jede Major-Version. So kannst du Updates gezielt an bestimmte Nutzergruppen pushen, ohne auf dynamische Channel-Zuweisung angewiesen zu sein.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Channel für neue Version erstellen
Abschnitt: „1. Channel für neue Version erstellen“# Create channel for version 2.xnpx @capgo/cli channel add v22. Capacitor Config für Version 2.0.0 anpassen
Abschnitt: „2. Capacitor Config für Version 2.0.0 aktualisieren“Aktualisiere deine Capacitor-Konfiguration, bevor du Version 2.0.0 für den App Store baust:
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. Separate Code Branches verwalten
Abschnitt mit dem Titel „3. Separate Code-Branches verwalten“Erstelle separate Git-Branches, um die Kompatibilität zwischen App-Versionen zu erhalten:
# 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: Schiebt niemals JavaScript-Bundles auf ältere Apps, die native code/APIs erwarten, die sie nicht besitzen. Baut Updates immer vom passenden Branch:
- v1-maintenance-Branch: Für Updates auf 1.x-Apps (Produktionskanal)
- main-Branch: Für Updates auf 2.x-Apps (v2-Kanal)
4. Bundles in die jeweiligen Channels hochladen
Abschnitt mit dem Titel „4. Bundles in die jeweiligen Channels 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. Self-Assignment aktivieren
Abschnitt mit dem Titel „5. Self-Assignment aktivieren“# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Im App Store bereitstellen
Abschnitt mit dem Titel „6. Im App Store bereitstellen“Version 2.0.0 bauen und im App Store bereitstellen. Alle Nutzer, die diese Version herunterladen (egal ob neue Nutzer oder bestehende, die upgraden), nutzen automatisch den v2-Channel, da er im App-Bundle konfiguriert ist.
Skalierung für zukünftige Versionen
Abschnitt mit dem Titel „Skalierung auf zukünftige Versionen“Wenn Sie Version 3.0.0 mit weiteren Breaking Changes veröffentlichen:
# Create channel for version 3.xnpx @capgo/cli channel add v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};Jetzt kannst du Updates an jede Version senden:
productionchannel → Nutzer von Version 1.xv2channel → Nutzer von Version 2.xv3channel → Nutzer von Version 3.x
7. Cleanup (nach der Migration)
Abschnitt: „7. Cleanup (nach der Migration)“Sobald alle Nutzer auf Version 2.x migriert sind (rechne mit 3–4 Monaten):
- Entfernen
defaultChannelaus deiner Capacitor Konfiguration - Lösche den v2-Channel:
npx @capgo/cli channel delete v2- Lösche den v1-maintenance-Branch:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceTeste Updates vor dem Deployment immer gründlich in jedem Channel
Version-1.x-Updates weiter pflegen
Abschnitt: „Wartung von Version 1.x-Updates“Um Updates zu senden, die mit Version 1.x kompatibel sind:
- Wechsle in den Branch v1-maintenance:
git checkout v1-maintenance- Nimm deine Änderungen vor und committe:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Build erstellen und in den Production-Channel hochladen:
npx @capgo/cli bundle upload --channel productionNach Breaking Changes weitermachen
Abschnitt mit dem Titel „Weitermachen bei Breaking Changes“Wenn du es nutzt Breaking Changes um Channel-Routing und Staged Rollout zu planen, verbinde es mit Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Beta-Testing-Lösung für den Produkt-Workflow in der Beta-Testing-Lösung, und Version-Targeting-Lösung für den Produkt-Workflow in der Version-Targeting-Lösung.