Passer à la navigation

11. Changements majeurs

Cette documentation explique comment gérer les changements majeurs dans votre application en utilisant des canaux versionnés. Cette approche vous permet de maintenir différentes versions de votre application tout en vous assurant que les utilisateurs reçoivent des mises à jour compatibles.

Supposons que vous ayez :

  • Version de l'application 1.2.3 (ancienne version) - utilise le canal de production
  • Version de l'application 2.0.0 (nouvelle version avec des changements de rupture) - utilise le canal v2
  • Mise à jour en direct 1.2.4 (compatible avec 1.2.3)
  • Mise à jour en direct 2.0.1 (compatible avec 2.0.0)

Stratégie : Utilisez toujours defaultChannel pour les versions majeures

Titre de la section « Stratégie : Utilisez toujours defaultChannel pour les versions majeures »

Approche recommandée : Configurez un defaultChannel pour chaque version majeure. Cela vous permet de pousser toujours des mises à jour vers des groupes d'utilisateurs spécifiques sans dépendre de l'affectation dynamique du canal.

// Version 1.x releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'
Fenêtre de terminal
# Create channel for version 2.x
npx @capgo/cli channel create v2

2. Mettre à jour Capacitor Config pour la version 2.0.0

Section intitulée “2. Mettre à jour Capacitor Config pour la version 2.0.0”

Mettez à jour votre Capacitor config avant de construire la version 2.0.0 pour la boutique d'applications :

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;

3. Gérer des branches séparées Code

Sous-titre « 3. Gérer des branches séparées Code »

Créez des branches Git séparées pour maintenir la compatibilité entre les versions d'applications :

Fenêtre de terminal
# 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

Important : Ne poussez jamais les bundles JavaScript vers les anciennes applications qui attendent des APIs natives code qu'elles ne possèdent pas. Construisez toujours les mises à jour à partir de la branche appropriée :

  • Branch de maintenance v1-maintenance: Pour les mises à jour des applications 1.x (canal de production)
  • branch principale: Pour les mises à jour des applications 2.x (canal v2)

4. Télécharger les Bundles dans les Canaux Respectifs

Section intitulée « 4. Télécharger les Bundles dans les Canaux Respectifs »
Fenêtre de terminal
# 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
Fenêtre de terminal
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

Construire et déployer la version 2.0.0 sur la boutique d'applications. Tous les utilisateurs qui téléchargent cette version (que ce soit de nouveaux utilisateurs ou des utilisateurs existants qui mettent à niveau) utiliseront automatiquement le canal v2 car il est configuré dans le bundle de l'application.

Lorsque vous publiez la version 3.0.0 avec plus de modifications de rupture :

Fenêtre de terminal
# 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
}
}
};

Vous pouvez maintenant envoyer des mises à jour vers n'importe quelle version :

  • production canal → Utilisateurs de la version 1.x
  • v2 canal → Utilisateurs de la version 2.x
  • v3 canal → Utilisateurs de la version 3.x

Une fois que tous les utilisateurs ont migré vers la version 2.x (durée de 3-4 mois) :

  1. Supprimer defaultChannel de votre Capacitor config
  2. Supprimer le canal v2 :
Fenêtre de terminal
npx @capgo/cli channel delete v2
  1. Supprimer la branche de maintenance v1 :
Fenêtre de terminal
git branch -d v1-maintenance
git push origin --delete v1-maintenance

Testez toujours les mises à jour soigneusement dans chaque canal avant la mise en production

Pour envoyer des mises à jour compatibles avec la version 1.x :

  1. Passer à la branche v1-maintenance :
Fenêtre de terminal
git checkout v1-maintenance
  1. Apporter vos modifications et commitez :
Fenêtre de terminal
# Make 1.x compatible changes
git add .
git commit -m "Fix for v1.x"
git push origin v1-maintenance
  1. Construire et télécharger dans le canal de production :
Fenêtre de terminal
npx @capgo/cli bundle upload --channel production

Si vous utilisez Changements de rupture pour planifier la routage des canaux et la mise en production étape par étape, connectez-l’à Canal contexte : nom de fonctionnalité de canaux de mise en production de Capgo. Page/zone : page de marketing de solutions de Capgo. Rôle : étiquette de navigation ou élément UI court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour les détails d'implémentation dans Canal, Canal contexte : nom de fonctionnalité de canaux de mise en production de Capgo. Page/zone : page de marketing de solutions de Capgo. Rôle : étiquette de navigation ou élément UI court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour les détails d'implémentation dans Canal, Solution de Test Beta pour le flux de workflow du produit dans Solution de Test Beta, et Solution de Ciblage de Version pour le flux de workflow du produit dans Solution de Ciblage de Version.