Changements incompatibles
Cette page explique comment gérer les changements incompatibles (breaking changes) avec Capgo en utilisant des canaux par version majeure.
Scénario type
Section titled “Scénario type”Vous avez:
- Application 1.2.3 (ancienne génération) sur le canal
production - Application 2.0.0 (nouvelle génération) sur le canal
v2 - Mise à jour OTA 1.2.4 compatible 1.x
- Mise à jour OTA 2.0.1 compatible 2.x
Stratégie recommandée
Section titled “Stratégie recommandée”Définissez un defaultChannel par version majeure. Cela vous permet de contrôler précisément quels utilisateurs reçoivent quelles mises à jour.
// Releases 1.xdefaultChannel: 'v1'
// Releases 2.xdefaultChannel: 'v2'
// Releases 3.xdefaultChannel: 'v3'1. Créer un canal pour la nouvelle version
Section titled “1. Créer un canal pour la nouvelle version”# Create channel for version 2.xnpx @capgo/cli channel create v22. Mettre à jour la config Capacitor pour 2.0.0
Section titled “2. Mettre à jour la config Capacitor pour 2.0.0”Avant de publier la version store 2.0.0:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { defaultChannel: 'v2' } }};
export default config;3. Maintenir des branches code séparées
Section titled “3. Maintenir des branches code séparées”Gardez une branche par génération native incompatible.
# Create and maintain a branch for version 1.x updatesgit checkout -b v1-maintenancegit push origin v1-maintenance
# Main branch for 2.xgit checkout main4. Uploader vers le bon canal
Section titled “4. Uploader vers le bon canal”# Updates for 1.x appsgit checkout v1-maintenancenpx @capgo/cli bundle upload --channel production
# Updates for 2.x appsgit checkout mainnpx @capgo/cli bundle upload --channel v25. Autoriser l’auto-assignment si nécessaire
Section titled “5. Autoriser l’auto-assignment si nécessaire”npx @capgo/cli channel set v2 --self-assign6. Publier la version store
Section titled “6. Publier la version store”Publiez la version 2.0.0. Les utilisateurs qui installent cette version basculent automatiquement sur v2 grâce à defaultChannel.
Passage aux versions suivantes
Section titled “Passage aux versions suivantes”Pour 3.0.0:
# 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' } }};Vous obtenez alors un routage clair:
production-> utilisateurs 1.xv2-> utilisateurs 2.xv3-> utilisateurs 3.x
7. Nettoyage après migration
Section titled “7. Nettoyage après migration”Quand la base utilisateur 1.x est négligeable:
- retirez
defaultChanneldes futurs binaires si nécessaire - supprimez les canaux/branches obsolètes
npx @capgo/cli channel delete v2git branch -d v1-maintenancegit push origin --delete v1-maintenanceMaintenir les mises à jour 1.x
Section titled “Maintenir les mises à jour 1.x”Pour continuer à corriger la 1.x:
- basculez sur
v1-maintenance - appliquez des changements compatibles 1.x
- uploadez sur
production
git checkout v1-maintenancegit add .git commit -m "Fix for v1.x"git push origin v1-maintenancenpx @capgo/cli bundle upload --channel production