Saltare al contenuto

Cambiamenti di Versione

Questa documentazione spiega come gestire le modifiche di versione nell'applicazione utilizzando canali versionati. Questo approccio consente di mantenere diverse versioni dell'applicazione, garantendo che gli utenti ricevano aggiornamenti compatibili.

Supponiamo di avere:

  • Versione dell'app 1.2.3 (versione vecchia) - utilizza il canale di produzione
  • Versione dell'app 2.0.0 (nuova versione con modifiche di compatibilità) - 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

Sezione intitolata “Strategia: Utilizza sempre defaultChannel per le versioni maggiori”

Approccio consigliato: Imposta un defaultChannel per ogni versione maggiore. Ciò garantisce che possiate sempre inviare aggiornamenti a specifiche gruppi di utenti senza dover dipendere dall'assegnazione dinamica del canale.

// 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

2. Aggiorna la configurazione Capacitor per la versione 2.0.0

Sezione intitolata “2. Aggiorna la configurazione Capacitor per la versione 2.0.0”

Aggiorna la tua configurazione Capacitor prima di costruire la versione 2.0.0 per la store dell'app:

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 separati Git per mantenere la compatibilità tra versioni dell'applicazione:

Fermata di comando
# 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

Importante: Non inviare mai pacchetti JavaScript alle vecchie app che aspettano API native code che non hanno. Costruisci sempre gli aggiornamenti dal ramo appropriato:

  • ramo di manutenzione v1: Per gli aggiornamenti per le app 1.x (canale di produzione)
  • ramo principale: Per gli aggiornamenti per le app 2.x (canale v2)
Fenestra 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
Fenestra del terminale
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

Pubblica la versione 2.0.0 sull'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 pacchetto dell'app.

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 → Versione 1.x utenti
  • v2 canale → Utenti della versione 2.x
  • v3 canale → Utenti della versione 3.x

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

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

Testare sempre le notifiche di aggiornamento attentamente in ogni canale prima della distribuzione

Manutenzione delle Aggiornamenti della Versione 1.x

Sezione intitolata “Manutenzione delle Aggiornamenti della Versione 1.x”

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 committa:
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 sul canale di produzione:
Finestra del terminale
npx @capgo/cli bundle upload --channel production

Se stai utilizzando Cambiamenti di Rilascio per pianificare la routing dei canali e la distribuzione in fasi, connettilo con Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Soluzione di Test Beta per il flusso di lavoro del prodotto in Soluzione di Test Beta, e Soluzione di Targeting della Versione per il flusso di lavoro del prodotto in Soluzione di Targeting della Versione.