Bien gérer les numéros de version d’une app iOS

Choisir un numéro de version peut être un casse tête lorsque l’on publie une application. Ce casse-tête peut se révéler plus compliqué si vous voulez utiliser le numéro de Build proposé par Xcode quand vous compilez vos application avec un server d’intégration continue par exemple.

Aperçu des clés CFBundleShortVersionString et CFBundleVersion pour les applications iOS.

CFBundleShortVersionString est au format X.Y.Z. Il identifie une itération distribuée sur l’App Store.
Le 1er chiffre représente le numéro de version majeur; il change quand l’application évolue significativement. Le second chiffre est le numéro de version mineur, ile change quand de légères évolutions sont apportées à l’application. Le dernier chiffre correspond à une version dite « de maintenance » qui corrige les bugs.

CFBundleShortVersionString correspond au champ « Version » de l’onglet Summary d’une cible dans Xcode.
Note: CFBundleShortVersionString devrait correspondre au numéro de version indiqué dans iTunes Connect pour la nouvelle version de l’application qui sera envoyée. Cette consigne n’est pas obligatoire, mais fortement suggérée pour éviter des erreurs lors de la soumission/validation.

CFBundleVersion est un numéro de version utilisé en interne. Il n’est normalement jamais présenté à l’utilisateur d’une application mobile.
Apple suggère que ce numéro respecte le format X.Y.Z auquel il est possible d’ajouter d’autres chiffres comme le numéro de révision de votre système de versionning (Git, SVN…).
CFBundleVersion correspond au champ « Build » de l’onglet Summary d’une cible dans Xcode.
Note importante : CFBundleVersion doit contenir un numéro de version supérieur à au CFBundleVersion de la version précédemment envoyée à iTunes Connect.

Prenons un exemple avec l’application Google Chrome pour iOS.

Google Chrome
Google Chrome 
v77.0.3865.69 - 64.9 Mo - Gratuit 
Google LLC

Version affichée sur l’App Store : 27.0.1453.10
Versions dans Info.plist :
CFBundleShortVersionString : 27.1453.10
CFBundleVersion : 27.0.1453.10

Si l’on respecte les consignes évoquées précédemment, on trouve une incohérence car le CFBundleShortVersionString ne correspond pas à la version affichée sur l’App Store. En effet, il serait possible de déclarer une version dans iTunes Connect qui serait différente de celle saisie dans CFBundleShortVersionString.

Auteur: Benoit DELDICQUE

Actuellement en poste sur Strasbourg, je suis en charge de la conception et la réalisation d'applications iOS pour iPhone, iPad et iPod touch.

Articles similaires

Commentaires fermés.