Saltare al contenuto

Cambiamenti Rilevanti

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.

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 releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'
Finestra del terminale
# Create channel for version 2.x
npx @capgo/cli channel create v2

Aggiorna il tuo Capacitor config prima di costruire la versione 2.0.0 per l'app store:

capacitor.config.ts
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;

Creare rami Git separati per mantenere la compatibilità tra le versioni dell'app:

Fermata dei comandi
# Create and maintain a branch for version 1.x updates
git checkout -b v1-maintenance
git push origin v1-maintenance
# Your main branch continues with version 2.x development
git checkout main

Critico: 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)
Finestra del terminale
# For 1.x updates: Build from v1-maintenance branch
git checkout v1-maintenance
# Make your 1.x compatible changes here
npx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branch
git checkout main
# Make your 2.x changes here
npx @capgo/cli bundle upload --channel v2
Finestra del terminale
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

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.

Quando rilasciate la versione 3.0.0 con più modifiche di rottura:

Finestra del terminale
# Create channel for version 3.x
npx @capgo/cli channel create v3
// capacitor.config.ts for version 3.0.0
const config: CapacitorConfig = {
// ...
plugins: {
CapacitorUpdater: {
defaultChannel: 'v3' // Version 3.x users
}
}
};

Ora potete inviare aggiornamenti a qualsiasi versione:

  • production canale → Utenti della versione 1.x
  • v2 canale → Utenti della versione 2.x
  • v3 canale → Utenti della versione 3.x

Una volta che tutti gli utenti si saranno migrati alla versione 2.x (conteggio 3-4 mesi):

  1. Elimina defaultChannel da tuo Capacitor config
  2. Elimina il canale v2:
Finestra del terminale
npx @capgo/cli channel delete v2
  1. Elimina la branca v1-maintenance:
Finestra del terminale
git branch -d v1-maintenance
git push origin --delete v1-maintenance

Testa sempre gli aggiornamenti attentamente in ogni canale prima della distribuzione

Per inviare aggiornamenti compatibili con la versione 1.x:

  1. Passa al ramo v1-maintenance:
Finestra del terminale
git checkout v1-maintenance
  1. Fai le tue modifiche e commit:
Finestra del terminale
# Make 1.x compatible changes
git add .
git commit -m "Fix for v1.x"
git push origin v1-maintenance
  1. Costruisci e carica nel canale di produzione:
Finestra del terminale
npx @capgo/cli bundle upload --channel production