Änderungen in neuen Versionen
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin kopieren.
Dieses Dokument beschreibt, wie Sie bei Änderungen in Ihrer App mit kanalisierten Versionen umgehen. Diese Methode ermöglicht es Ihnen, verschiedene Versionen Ihrer App zu pflegen, während sichergestellt wird, dass Benutzer kompatible Updates erhalten.
Beispiel-Szenario
Sektion 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 Code brechen) - 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 Standardkanal für Hauptversionen verwenden
Sektion mit dem Titel “Strategie: Immer den Standardkanal für Hauptversionen verwenden”Empfohlene Vorgehensweise: Set ein defaultChannel für jede Hauptversion. Dies sichert Ihnen, 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 add 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 Ihre Capacitor-Konfiguration vor der Erstellung von Version 2.0.0 für den App Store an:
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 Branchen
Sektion 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 mainCritical: Vermeiden Sie es, JavaScript-Bundles an ältere Apps zu pushen, die native code/APIs nicht unterstützen. Bauen Sie immer Updates von der entsprechenden Zweig ab:
- v1-Wartungszweig: Für Updates an 1.x-Apps (Produktionskanal)
- Hauptzweig: Für Updates an 2.x-Apps (v2-Kanal)
4. Hochladen von Bundles in die jeweiligen Kanäle
Abschnitt "4. Hochladen von Bundles in die jeweiligen Kanäle"# 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 die App Store deployen
Abschnitt mit Titel „6. In die App Store deployen“Die 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.
Skalierung für zukünftige Versionen
Abschnitt mit Titel „Skalierung 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 add 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. Säubern (Nach Migration)
Abschnitt 7. Säubern (Nach Migration)Sobald alle Benutzer auf Version 2.x migriert sind (ca. 3-4 Monate):
- Löschen
defaultChannelaus Ihrer Capacitor-Konfiguration - Löschen Sie den Kanal v2:
npx @capgo/cli channel delete v2- Löschen Sie den Zweig v1-maintenance:
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
Sektion mit dem Titel “Erhaltung von Version 1.x-Updates”Um Updates abzusenden, 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 Sie Ihre Änderungen und committen Sie sie:
npx @capgo/cli bundle upload --channel productionFortsetzen von Breaking Changes
Abschnitt: Fortsetzen von Breaking ChangesWenn Sie verwenden Änderungen mit Auswirkungen um Kanalrouting und staged Rollout zu planen, verbinden Sie es mit Kanäle zur Implementierungsdetail in Kanäle, Kanäle Für die Implementierungsdetails in den Kanälen, Kanäle Für die Implementierungsdetails in den Kanälen, kontinuierliche Beta-Testlösung Für die Produktworkflow in der kontinuierlichen Beta-Testlösung, und Version Targeting Solution Für die Produktworkflow in der Versionziel-Lösung.