When vous sortez une version majeure
La gestion des versions peut être difficile, vous souhaitez généralement envoyer une mise à jour majeure lorsque des changements majeurs apparaissent pour les utilisateurs.
Mais la versionnement n'est pas fait pour cela, la version de l'application de l'app store est différente de la version native.
La version native est conçue pour gérer les changements de rupture dans le code
Par exemple, sur IOS, iOS 16 est la store version of Apple, but the code version is 20A5283p __CAPGO_KEEP_0__
(ils ne semblent pas utiliser SemVer là-bas)
Maintenant, il est clair que nous ne les mélangeons pas et les utilisons pour ce qu'elles sont faites !
In your Capacitor app, a major release is necessary when a breaking change happens. For example, a new IOS target (15 to 16), or a new version of Capacitor (3 to 4), or a plugin (1.2 to 2.0) you use have been updated to a major version.
Dans votre application de type __CAPGO_KEEP_0__ , une mise à jour majeure est nécessaire lorsque se produit un changement de rupture. Par exemple, une nouvelle cible IOS (15 à 16), ou une nouvelle version de __CAPGO_KEEP_1__ (3 à 4), ou un plugin (1.2 à 2.0) que vous utilisez a été mise à jour à une version majeure.
C'est pourquoi Capgo suit ce système.
Ainsi, si vous publiez une nouvelle version majeure, Capgo ne l'envoie pas à un utilisateur qui ne l'a pas installé depuis la boutique.
Ce comportement peut être personnalisé. Vous pouvez en savoir plus sur cela ici
Versions
Où Capgo trouve la version à comparer
IOS
Serait utilisé par Capgo pour comparer la version JavaScript et trouver une mise à niveau majeure
Dans IOS, la variable est définie dans votre projet ici ios/App/App/Info.plist sous la cléCFBundleShortVersionString ou ios/App/App.xcodeproj/project.pbxproj sous la clé MARKETING_VERSION si MARKETING_VERSION a été défini dans votre Info.plist fichier.
Vous pouvez contourner ce comportement en définissant la clé version dans
capacitor.config.jsonfichier docs ici
Android
sera utilisé par Capgo pour comparer à la version JavaScript et trouver une mise à niveau majeure
en Android, la variable est définie dans votre projet ici android/app/build.gradle sous la clé defaultConfig.versionName
Vous pouvez contourner ce comportement en définissant la clé version dans
capacitor.config.jsonfichier docs ici
JavaScript
Serait utilisé par Capgo pour comparer à la version Native et trouver une mise à niveau majeure
en JavaScript, la variable est définie dans votre projet ici package.json sous la clé version
Exemple
Votre application Ionic est actuellement publiée avec la version 1.2.3 avec Capacitor 3
Vous effectuez l'upgrade à capacitor 4.
Vous devez mettre à jour votre numéro de version à 2.2.3, puis toutes vos packages incluent Capgo avec un avertissement de ce grand changement.
Lorsque vous publiez cette version sur Capgo et l'App Store.
Tous les prochains mises à jour en direct sur Capgo 2.2.4 ne sera jamais envoyé à l'utilisateur avec 1.2.3 seulement avec 2.2.3 version.
Si vous suivez ce modèle, il n'y a plus besoin de vous inquiéter, tout est bien géré.
Si je ne suis pas en train de suivre ce
Dans ce cas, cela signifie que vous devez envoyer votre nouvelle application avec Capacitor 4 chez Apple et Google, mais pas chez Capgo.
Ensuite, vous devez attendre que 100% de vos utilisateurs aient l'application ou au moins 90%, ce qui prendra des mois, probablement.
Durant ce temps, vous ne pouvez pas envoyer d'actualisation avec Capgo, puisque les anciens utilisateurs ne peuvent pas obtenir la nouvelle version. Vous n'avez pas la possibilité de sélectionner uniquement certains utilisateurs pour recevoir l'actualisation.
Continuez de la même manière que pour la mise à jour majeure de capgo
Si vous utilisez Comment mettre à jour une version majeure de capgo pour planifier le retrait et le contrôle de version, connectez-l’avec Rollbacks pour les détails d'implémentation dans Rollbacks, Version Cible context pour les détails d'implémentation dans Version Cible, Mise à Jour Mise à Jour bundle Capgo Live Updates Capgo Mises à Jour en Temps Réel