Veränderungen, die den Code brechen
Kopieren Sie einen Einrichtungsbefehl mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin.
Diese Dokumentation erklärt, wie Sie bei Änderungen in Ihrer App mit kanalverteilten Versionen umgehen können. Diese Methode ermöglicht es Ihnen, verschiedene Versionen Ihrer App zu pflegen, während sichergestellt wird, dass Benutzer kompatible Updates erhalten.
Beispiel-Szenario
Beispiel-SzenarioStellen Sie sich vor, 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 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
Empfohlener Ansatz:Setzen Sie ein für jede Hauptversion. So können Sie Updates für bestimmte Benutzergruppen immer pushen, ohne auf dynamische Kanalzuweisung angewiesen zu sein. defaultChannel Auf die Zwischenablage kopieren
// 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. Kanal erstellen für neue Version”# 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”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
Abschnitt 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: Stellen Sie sicher, dass Sie niemals JavaScript-Bundles an ältere Apps pushen, die native code/APIs erwarten, die sie nicht haben. Bauen Sie immer Updates von dem entsprechenden Zweig aus:
- v1-WartungszweigFür Updates an 1.x-Apps (Produktionskanal)
- Hauptzweig: Für Updates für 2.x-Anwendungen (Kanal v2)
4. Bundles auf die jeweiligen Kanäle hochladen
Abschnitt mit dem Titel „4. Bundles auf 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“Build and deploy version 2.0.0 to the App Store. Alle Benutzer, die diese Version herunterladen (ob neue Benutzer oder bestehende Benutzer, die aktualisieren), werden automatisch die v2-Kanal verwenden, da es in der App-Bundle konfiguriert ist.
Abschnitt mit dem Titel „Skalierung für zukünftige Versionen“
Wenn Sie Version 3.0.0 mit mehreren Bruchänderungen veröffentlichen:Terminal-Fenster
# 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)”Nachdem alle Benutzer auf Version 2.x migriert sind (ca. 3-4 Monate):
- Löschen
defaultChannelaus Ihrem Capacitor-Konfiguration - Löschen Sie den v2-Kanal:
npx @capgo/cli channel delete v2- Löschen Sie die v1-Maintenance-Zweig:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceTesten Sie Updates immer gründlich in jedem Kanal vor der Bereitstellung
Wartung von Version 1.x-Updates
Abschnitt mit dem Titel „Wartung von Version 1.x-Updates“Um Aktualisierungen für die Version 1.x zu senden:
- 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 den Produktionskanal:
npx @capgo/cli bundle upload --channel production