La documentation d'Apple aurait pu être plus claire sur la façon de soumettre une version de mise à jour.
Comme demandé dans le titre, quelle est la différence entre
- numéro de version dans iTunes Connect (que vous devez fournir lorsque vous soumettez une mise à jour)
- version du bundle dans xcode
- bundle versions chaîne, courte
Sont-ils liés d'une manière ou d'une autre?
Réponses:
Oui, ils sont liés. Ils font tous référence à la version de votre application.
iTunes Connect
Il s'agit du numéro de version affiché dans l'App Store; Il doit s'agir d'un numéro de version pur comme
1.2.3
Version du bundle (CFBundleVersion)
Cela n'a pas besoin d'être un numéro de version pur. Cela peut être quelque chose comme
12345
ou1.2.3 (Build 12345AB)
. Ceci est affiché dans la fenêtre À propos des applications Mac OS X par exemple et est souvent plus un «numéro de version» qu'un «numéro de version».Chaîne de version du bundle (CFBundleShortVersionString) Cette valeur est utilisée comme numéro de version "réel". Il doit s'agir de la même chaîne que celle utilisée pour la version d' iTunes Connect .
Mise à jour:
comme l'a souligné @snlehton, CFBundleVersion doit être un numéro de version pur, comme
1.2.3
lorsque vous souhaitez télécharger votre application sur l'App Store (iOS).la source
1.2.3
, puis incrémentez la version du bundle pour chaque build.Oui, ils sont liés mais leur définition dépend de la manière dont ils sont utilisés.
Il doit toujours s'agir d'un numéro de version, par exemple 1.0
Mode d'utilisation 1 - Seul CFBundleVersion est défini
Doit être un numéro de version, par exemple 1.0. Doit correspondre à la version iTunes Connect.
Mode d'utilisation 2 - CFBundleVersion et CFBundleShortVersionString sont définis
Doit être un numéro de build, par exemple un seul entier comme 435163.
Doit être un numéro de version, par exemple 1.0. Doit correspondre à la version iTunes Connect.
Le mode d'utilisation 2 est la meilleure solution. Voici quelques exemples de numéros pour le chemin de mise à niveau d'une application:
Une note supplémentaire sur les numéros de version: si vous soumettez une mise à jour mineure (par exemple, correction de bogue) à votre application, vous ne devez jamais manquer de périodes dans le numéro de version, par exemple, utilisez toujours 1.0.1 et JAMAIS 1.01 ou vous risquez de ne pas pouvoir utiliser certains numéros de version dans le futur car il ne sera pas possible de les incrémenter.
la source
Oui, ils sont tous liés.
Le numéro de version dans itunesconnect est le numéro de version que vous devez fournir. Par exemple, 2.1.1 ou 3.1.2, etc. Cela devrait également être égal à CFBundleShortVersionString .
La version du bundle dans Xcode ( CFBundleVersion ) représente uniquement le numéro de build qui identifie une itération (publiée ou non) de l'application.
Chaîne de versions de bundle , courte ( CFBundleShortVersionString ) est un nombre composé de trois entiers séparés par des points. Le premier représente toutes les mises à jour majeures de l'application, telles que les mises à jour qui implémentent de nouvelles fonctionnalités ou des changements majeurs. Le deuxième entier désigne les révisions qui implémentent des fonctionnalités moins importantes. Le troisième entier représente les versions de maintenance.
la source
Faites attention à CFBundleVersion . Ce n'est pas seulement un numéro de version de production. Cette valeur est vérifiée par Apple pendant le processus de téléchargement binaire et peut échouer.
Assurez-vous de définir CFBundleVersion avec la valeur CFBundleShortVersionString lorsque vous créez votre version pour la soumission.
Voir cet article à ce sujet
la source
CFBundleVersion
ne doit pas correspondreCFBundleShortVersionString
. Par exemple, si vous regardez le fichier .ipa actuel pour Chrome (dans l'App Store maintenant), ils ont "34.0.1847.18" pourCFBundleVersion
et "34.1847.18" pourCFBundleShortVersionString
.La réponse acceptée est la voie à suivre - en ajoutant simplement ceci à titre d'exemple.
Pour notre dernière version, le "Bundle Version String, short" était requis, et je l'ai mis en correspondance avec le numéro de version du Bundle (1.2.8 pour notre application).
J'ai ensuite activé Testflight et mis la version en attente d'examen Apple (1.2.8) à la disposition de nos testeurs internes. Un testeur a cependant trouvé un problème qui nécessitait une correction, et nous avons supprimé le binaire en place. Lors du téléchargement d'une nouvelle version, nous avons obtenu une erreur indiquant que la version de la version était déjà téléchargée.
Après avoir lu quelques liens SO et des documents Apple, j'ai compris que je devais créer la version du bundle: 1.2.8.001, tout en maintenant le bundle-version-short tel qu'il était. Si une nouvelle version est requise, nous incrémentons la version du bundle à 1.2.8.002.
Remarque: le téléchargement a été accepté et la compilation apparaît sous la forme "1.2.8.001" sous la pré-version. Le numéro de version reste 1.2.8.
la source
La réponse acceptée de ce lien contient de bons détails: Quelle version / numéro de version de l'application iOS DOIT être incrémentée lors de la sortie de l'App Store?
À partir de la documentation Apple
CFBundleVersion (version Bundle)
CFBundleVersion (String - iOS, OS X) spécifie le numéro de version de build du bundle, qui identifie une itération (publiée ou non) du bundle. Le numéro de version de build doit être une chaîne composée de trois entiers non négatifs séparés par des points, le premier entier étant supérieur à zéro. La chaîne ne doit contenir que des caractères numériques (0-9) et point (.). Les zéros non significatifs sont tronqués à partir de chaque entier et seront ignorés (c'est-à-dire que 1.02.3 équivaut à 1.2.3). Cette clé n'est pas localisable.
CFBundleShortVersionString (chaîne de versions de , courte)
CFBundleShortVersionString (String - iOS, OS X) spécifie le numéro de version de l'édition du bundle, qui identifie une itération publiée de l'application. Le numéro de version de la version est une chaîne composée de trois entiers séparés par des points. Le premier entier représente les révisions majeures de l'application, telles que les révisions qui implémentent de nouvelles fonctionnalités ou des changements majeurs. Le deuxième entier désigne les révisions qui implémentent des fonctionnalités moins importantes. Le troisième entier représente les versions de maintenance.
La valeur de cette clé diffère de la valeur de CFBundleVersion, qui identifie une itération (publiée ou non) de l'application. Cette clé peut être localisée en l'incluant dans vos fichiers InfoPlist.strings.
la source