Breaking changes
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Questa documentazione spiega come gestire i breaking changes nella tua app tramite i canali versionati. Questo approccio ti permette di mantenere diverse versioni della tua app garantendo aggiornamenti compatibili agli utenti.
Scenario di esempio
Sezione intitolata “Scenario di esempio”Supponiamo che tu abbia:
- Versione app 1.2.3 (vecchia versione) - usa il canale production
- Versione app 2.0.0 (nuova versione con breaking changes) - usa il canale v2
- Live update 1.2.4 (compatibile con 1.2.3)
- Live update 2.0.1 (compatibile con 2.0.0)
Strategia: usa sempre defaultChannel per le versioni major
Sezione: “Strategia: usa sempre defaultChannel per le Major Version”Approccio consigliato: Imposta un defaultChannel per ogni major version. Questo ti permette di inviare aggiornamenti a gruppi di utenti specifici senza dipendere dall'assegnazione dinamica dei canali.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Crea un canale per la nuova versione
Sezione intitolata “1. Crea un canale per la nuova versione”# Create channel for version 2.xnpx @capgo/cli channel add v22. Aggiorna la config di Capacitor per la versione 2.0.0
Sezione intitolata “2. Aggiorna la config di Capacitor per la versione 2.0.0”Aggiorna la configurazione di Capacitor prima di buildare la versione 2.0.0 per l'app store:
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. Gestisci branch Code separati
Sezione intitolata “3. Gestisci branch Code separati”Crea branch git separati per mantenere la compatibilità tra le versioni dell'app:
# 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 mainCritico: Non pushare mai bundle JavaScript su app più vecchie che si aspettano code/API native non presenti. Genera sempre gli update dal branch corretto:
- branch v1-maintenance: Per gli update alle app 1.x (production channel)
- branch main: Per gli update alle app 2.x (v2 channel)
4. Upload dei bundle sui rispettivi canali
Sezione intitolata “4. Upload Bundles to Respective Channels”# 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. Abilita il Self-Assignment
Sezione: “5. Abilitare l'auto-assegnazione”# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Deploy su App Store
Sezione: “6. Deploy su App Store”Builda e deploya la versione 2.0.0 sull'app store. Tutti gli utenti che scaricheranno questa versione (nuovi utenti o utenti esistenti che effettuano l'upgrade) useranno automaticamente il canale v2, poiché è configurato nell'app bundle.
Scalare verso le versioni future
Sezione intitolata “Scalare verso le versioni future”Quando rilasci la versione 3.0.0 con ulteriori breaking change:
# 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 } }};Ora puoi inviare update a qualsiasi versione:
productionchannel → utenti versione 1.xv2channel → utenti versione 2.xv3channel → utenti versione 3.x
7. Pulizia (dopo la migrazione)
Sezione: “7. Cleanup (Dopo la migrazione)”Una volta che tutti gli utenti sono migrati alla versione 2.x (circa 3-4 mesi):
- Rimuovi
defaultChanneldalla tua configurazione Capacitor - Elimina il canale v2:
npx @capgo/cli channel delete v2- Elimina il branch v1-maintenance:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceTesta sempre accuratamente gli aggiornamenti in ogni canale prima del deployment
Gestione degli update per la versione 1.x
Sezione: “Gestione degli aggiornamenti per la versione 1.x”Per inviare aggiornamenti compatibili con la versione 1.x:
- Passa al branch v1-maintenance:
git checkout v1-maintenance- Applica le modifiche e fai il commit:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Build e upload sul canale di produzione:
npx @capgo/cli bundle upload --channel productionContinua da Breaking Changes
Sezione intitolata “Continua da Breaking Changes”Se stai usando Breaking changes per pianificare il routing dei canali e il rollout graduale, connettilo a Canali per i dettagli di implementazione nei Channels, Canali per i dettagli di implementazione nei Channels, Canali per i dettagli di implementazione nei Channels, Soluzione Beta Testing per il workflow di prodotto nella Soluzione Beta Testing, e Soluzione Version Targeting per il workflow di prodotto nella Soluzione Version Targeting.