11. Breaking Changes
Kopieren Sie eine Einrichtungsanweisung mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin.
Diese Dokumentation erklärt, wie Sie bei Änderungen in Ihrer App mit Hilfe von versionierten Kanälen vorgehen. Diese Methode 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 annehmen, dass Sie haben:
- App-Version 1.2.3 (alte Version) - verwendet Produktionskanal
- App-Version 2.0.0 (neue Version mit Änderungen, die das Update beeinträchtigen) - 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 den Standardkanal für Hauptversionen
Abschnitt mit dem Titel ‘Strategie: Verwenden Sie immer den Standardkanal für Hauptversionen’Empfohlener Ansatz: Einstellung für jede Hauptversion festlegen. So 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'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. Capacitor-Konfiguration für Version 2.0.0 aktualisieren’Stellen Sie die Capacitor-Konfiguration vor der Erstellung von Version 2.0.0 für den App Store aktualisieren:
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. Manage Separate Code Branches
Section titled “3. Manage Separate Code Branches”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: Never push JavaScript bundles to older apps that expect native code/APIs they don’t have. Always build updates from the appropriate branch:
- APIs erwarten, die sie nicht haben. Bauen Sie immer Updates von dem entsprechenden Branch aus:Branch für Updates von 1.x-Anwendungen (Produktionskanal)
- Hauptzweig: Für Updates für 2.x-Anwendungen (Kanal v2)
4. Bundles an die jeweiligen Kanäle hochladen
Abschnitt mit dem Titel „4. Bundles an die jeweiligen Kanäle 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 bereitstellen
Abschnitt mit dem Titel „6. Auf App Store bereitstellen“Die Version 2.0.0 im App Store bereitstellen. Alle Benutzer, die diese Version herunterladen (neue oder bestehende Benutzer, die aktualisieren), verwenden automatisch den Kanal v2, da dieser 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 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 Kanal v2:
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 vor der Bereitstellung
Erhaltung von Version 1.x-Updates
Abschnitt mit dem Titel „Erhaltung von Version 1.x-Updates“Um Updates zu senden, die mit Version 1.x kompatibel sind:
- Wechseln Sie auf die 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 auf den Produktionskanal:
npx @capgo/cli bundle upload --channel productionWeiter von Breaking Changes
Abschnitt mit dem Titel “Weiter von Breaking Changes”Wenn Sie Breaking Changes verwenden Breaking Changes um die Kanalsteuerung und die geplante Rollout zu planen, verbinden Sie es mit Kanäle Kanäle für die Implementierungsdetails in Kanäle Kanäle für die Implementierungsdetails in Kanäle Kanäle Beta-Testlösung für das Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für das Produktworkflow in Versionziel-Lösung.