Cambiamenti Rilevanti
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Questa documentazione spiega come gestire le modifiche di versione nel tuo'applicazione utilizzando i canali versionati. Questa approccio consente di mantenere diverse versioni dell'applicazione, garantendo che gli utenti ricevano aggiornamenti compatibili.
Scenario di esempio
Sottosezione intitolata “Scenario di esempio”Immagina di avere:
- L'applicazione versione 1.2.3 (vecchia versione) - utilizza il canale di produzione
- L'applicazione versione 2.0.0 (nuova versione con modifiche di versione) - utilizza il canale v2
- Aggiornamento in tempo reale 1.2.4 (compatibile con 1.2.3)
- Aggiornamento in tempo reale 2.0.1 (compatibile con 2.0.0)
Strategia: Utilizza sempre defaultChannel per le versioni maggiori
Sottosezione intitolata “Strategia: Utilizza sempre defaultChannel per le versioni maggiori”Approccio consigliato: Imposta un defaultChannel per ogni versione maggiore. Ciò garantisce che possa sempre inviare aggiornamenti a specifiche fasce di utenti senza dover 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 canale per nuova versione
Sezione intitolata “1. Crea canale per nuova versione”# Create channel for version 2.xnpx @capgo/cli channel create v22. Aggiorna Capacitor Config per Versione 2.0.0
Sezione intitolata “2. Aggiorna Capacitor Config per Versione 2.0.0”Aggiorna il tuo Capacitor config prima di costruire 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 Separate Code Branch
Sottosezione intitolata “3. Gestisci Separate Code Branch”Creare rami 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: Never push JavaScript bundles to older apps that expect native code/APIs they don’t have. Always build updates from the appropriate branch:
- Branca di manutenzione v1: Per gli aggiornamenti per le app 1.x (canale di produzione)
- Branca principale: Per gli aggiornamenti per le app 2.x (canale v2)
4. Carica i bundle nei canali rispettivi
Sezione intitolata “4. Carica i bundle nei canali rispettivi”# 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 l'assegnazione auto
Sezione intitolata “5. Abilita l'assegnazione auto”# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Pubblica su App Store
Sezione intitolata “6. Pubblica su App Store”Costruisci e pubblica la versione 2.0.0 su App Store. Tutti gli utenti che scaricano questa versione (siano nuovi utenti o utenti esistenti che aggiornano) utilizzeranno automaticamente il canale v2 perché configurato nel bundle dell'applicazione.
Scalabilità alle versioni future
Sezione intitolata “Scalabilità alle versioni future”Quando rilasciate la versione 3.0.0 con più modifiche di rottura:
# 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 } }};Ora potete inviare aggiornamenti a qualsiasi versione:
productioncanale → Utenti della versione 1.xv2canale → Utenti della versione 2.xv3canale → Utenti della versione 3.x
7. Pulizia (Dopo la migrazione)
Sezione intitolata “7. Pulizia (Dopo la migrazione)”Una volta che tutti gli utenti si saranno migrati alla versione 2.x (conteggio 3-4 mesi):
- Elimina
defaultChannelda tuo Capacitor config - Elimina il canale v2:
npx @capgo/cli channel delete v2- Elimina la branca v1-maintenance:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceTesta sempre gli aggiornamenti attentamente in ogni canale prima della distribuzione
Aggiornamento delle versioni 1.x
Sezione intitolata “Aggiornamento delle versioni 1.x”Per inviare aggiornamenti compatibili con la versione 1.x:
- Passa al ramo v1-maintenance:
git checkout v1-maintenance- Fai le tue modifiche e commit:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Costruisci e carica nel canale di produzione:
npx @capgo/cli bundle upload --channel production