Breaking changes
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Cette documentation explique comment gérer les breaking changes dans votre application à l'aide de canaux versionnés. Cette approche vous permet de maintenir différentes versions de votre application tout en garantissant que les utilisateurs reçoivent des mises à jour compatibles.
Exemple de scénario
Section intitulée « Exemple de scénario »Supposons que vous ayez :
- Version de l'app 1.2.3 (ancienne version) – utilise le canal production
- Version de l'app 2.0.0 (nouvelle version avec breaking changes) – utilise le canal v2
- Live update 1.2.4 (compatible avec 1.2.3)
- Live update 2.0.1 (compatible avec 2.0.0)
Stratégie : utilisez toujours defaultChannel pour les versions majeures
Section intitulée « Stratégie : toujours utiliser defaultChannel pour les versions majeures »Approche recommandée : Définissez un defaultChannel pour chaque version majeure. Cela vous permet de toujours envoyer des mises à jour à des groupes d’utilisateurs spécifiques, sans dépendre de l’attribution dynamique des canaux.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Créer un canal pour la nouvelle version
Section intitulée « 1. Créer un canal pour la nouvelle version »# Create channel for version 2.xnpx @capgo/cli channel add v22. Mettre à jour la config Capacitor pour la version 2.0.0
Section intitulée « 2. Config de Capacitor pour la version 2.0.0 »Mettez à jour votre configuration Capacitor avant de compiler la version 2.0.0 pour le 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. Gérer des branches Code distinctes
Section intitulée « 3. Gérer des branches Code séparées »Créez des branches git distinctes pour maintenir la compatibilité entre les versions de l'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 mainCritique : N'envoyez jamais de bundles JavaScript vers des apps plus anciennes qui attendent des code/API natives qu'elles n'ont pas. Buildez toujours vos mises à jour depuis la branche appropriée :
- branche v1-maintenance: Pour les mises à jour des apps 1.x (canal production)
- branche main: Pour les mises à jour des apps 2.x (canal v2)
4. Envoyer les bundles vers les canaux respectifs
Section intitulée « 4. Envoyer les bundles vers les canaux respectifs »# 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. Activer l'auto-assignation
Section intitulée « 5. Activer l'auto-assignation »# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Déployer sur l'App Store
Section intitulée « 6. Déployer sur l'App Store »Compilez et déployez la version 2.0.0 sur le store. Tous les utilisateurs qui téléchargent cette version (nouveaux utilisateurs ou utilisateurs existants qui mettent à jour) utiliseront automatiquement le canal v2, car il est configuré dans le bundle de l'app.
Évoluer vers les versions futures
Section intitulée « Mise à l’échelle pour les versions futures »Lorsque vous publiez la version 3.0.0 avec plus de breaking changes :
# Create channel for version 3.xnpx @capgo/cli channel add v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};Now you can push updates to any version:
productioncanal → utilisateurs de la version 1.xv2canal → utilisateurs de la version 2.xv3canal → utilisateurs de la version 3.x
7. Nettoyage (après la migration)
Section intitulée « 7. Nettoyage (après la migration) »Une fois que tous les utilisateurs ont migré vers la version 2.x (comptez 3 à 4 mois) :
- Supprimer
defaultChannelde votre config Capacitor - Supprimez le canal v2 :
npx @capgo/cli channel delete v2- Supprimez la branche v1-maintenance :
git branch -d v1-maintenancegit push origin --delete v1-maintenanceTestez toujours minutieusement les mises à jour dans chaque canal avant le déploiement
Maintenir les mises à jour de la version 1.x
Section intitulée « Maintenir les mises à jour de la version 1.x »Pour envoyer des mises à jour compatibles avec la version 1.x :
- Basculez sur la branche v1-maintenance :
git checkout v1-maintenance- Faites vos modifications et commitez :
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Compiler et envoyer vers le canal de production :
npx @capgo/cli bundle upload --channel productionContinuer après les breaking changes
Section intitulée « Continuer après les breaking changes »Si vous utilisez Breaking changes pour planifier le routage des canaux et le déploiement progressif, connectez-l’avec Canaux pour les détails d'implémentation des canaux, Canaux pour les détails d'implémentation des canaux, Canaux pour les détails d'implémentation des canaux, Solution de bêta-test pour le workflow produit de la Solution de bêta-test, et Solution de ciblage de version pour le workflow produit de la Solution de ciblage de version.