Apple a en quelque sorte réarrangé/réutilisé les champs.
À l'avenir, si vous regardez dans l'onglet Info de votre cible d'application, vous devez utiliser "Bundle versions string, short" comme version (par exemple, 3.4.0) et "Bundle version" comme build (par exemple, 500 ou 1A500). Si vous ne voyez pas les deux, vous pouvez les ajouter. Ils correspondront aux zones de texte Version et Build de l'onglet Résumé ; ce sont les mêmes valeurs.
Lorsque vous consultez l'onglet Info, si vous cliquez avec le bouton droit de la souris et sélectionnez Afficher les clés/valeurs brutes vous verrez que les noms réels sont CFBundleShortVersionString
(Version) et CFBundleVersion
(Construire).
La version est généralement utilisée comme vous semblez l'avoir fait avec Xcode 3. Je ne suis pas sûr du niveau auquel vous posez la question de la différence Version/Build, je vais donc vous répondre de manière philosophique.
Il existe toutes sortes de stratagèmes, mais l'un d'entre eux est populaire :
{MajorVersion}.{MinorVersion}.{Revision}
-
Version majeure - Changements majeurs, refontes et fonctionnalités changements
-
Version mineure - Améliorations mineures, ajouts de fonctionnalités
-
Révision - Un numéro de patch pour les corrections de bogues
Ensuite, le terme Build est utilisé séparément pour indiquer le nombre total de builds pour une version ou pour toute la durée de vie du produit.
De nombreux développeurs commencent le numéro de Build à 0, et à chaque fois qu'ils construisent, ils augmentent le numéro d'une unité, en l'augmentant indéfiniment. Dans mes projets, j'ai un script qui augmente automatiquement le numéro de build à chaque fois que je construis. Voir les instructions pour cela ci-dessous.
- La version 1.0.0 pourrait être la build 542. Il a fallu 542 builds pour arriver à une une version 1.0.0.
- La version 1.0.1 pourrait être la build 578.
- La version 1.1.0 pourrait être la version 694.
- La version 2.0.0 pourrait être la construction 949.
D'autres développeurs, dont Apple, utilisent un numéro de build composé d'une version majeure + une version mineure + un nombre de builds pour la version. Il s'agit des numéros de version réels des logiciels, par opposition aux valeurs utilisées pour le marketing.
Si vous allez à Xcode menu > À propos de Xcode vous verrez les numéros de version et de construction. Si vous cliquez sur le bouton Plus d'informations... vous verrez un tas de versions différentes. Comme le Plus d'informations... a été supprimé dans Xcode 5, cette information est également disponible à partir de la page d'accueil. Logiciels > Développeur de la section Informations sur le système disponible en ouvrant Apple menu > À propos de ce Mac > Rapport du système... .
Par exemple, Xcode 4.2 (4C139). La version marketing 4.2 correspond à la version majeure Build 4, la version mineure Build C et le numéro de Build 139. La prochaine version (probablement la 4.3) sera probablement la version Build 4D, et le numéro Build commencera à 0 et sera incrémenté à partir de là.
Les numéros de version/bâtiment de l'iPhone Simulator sont les mêmes, tout comme les iPhones, les Macs, etc.
- 3.2 : (7W367a)
- 4.0 : (8A400)
- 4.1 : (8B117)
- 4.2 : (8C134)
- 4.3 : (8H7)
Mise à jour : Sur demande, voici les étapes pour créer un script qui s'exécute à chaque fois que vous construisez votre application dans Xcode pour lire le numéro de Build, l'incrémenter et le réécrire dans le fichier de l'application. {App}-Info.plist
fichier. Il y a des étapes supplémentaires facultatives si vous voulez écrire vos numéros de version/build dans le fichier Settings.bundle/Root*.plist
fichier(s).
Voici un extrait de l'article sur le mode d'emploi ici .
Dans Xcode 4.2 - 5.0 :
-
Chargez votre projet Xcode.
-
Dans le volet de gauche, cliquez sur votre projet, tout en haut de la hiérarchie. Ceci chargera l'éditeur de paramètres du projet.
-
Dans la partie gauche du volet central de la fenêtre, cliquez sur votre application sous l'onglet "Applications". TARGETS tête. Vous devrez configurer cette configuration pour chaque cible du projet.
-
Sélectionnez le Phases de construction onglet.
-
- Dans Xcode 4, en bas à droite, cliquez sur le bouton Ajouter la phase de construction et sélectionnez Ajouter Exécuter script .
- Dans Xcode 5, sélectionnez Rédacteur en chef menu > Ajouter la phase de construction > Ajouter l'exécution du script Phase de construction .
-
Faites glisser et déposez le nouveau Exécuter script pour le déplacer juste avant la phase Ressources pour le faisceau de copies (lorsque le fichier app-info.plist sera joint à votre application).
-
Dans la nouvelle Exécuter script phase, mettre Shell : /bin/bash
.
-
Copiez et collez ce qui suit dans la zone script pour les numéros de construction entiers :
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
Comme @Bdebeez l'a fait remarquer, la Outil générique de gestion des versions d'Apple ( agvtool
) est également disponible. Si vous préférez l'utiliser à la place, il faut d'abord modifier quelques éléments :
- Sélectionnez le Paramètres de construction onglet.
- En vertu de la Versioning de la section, définissez le Version actuelle du projet au numéro de construction initial que vous voulez utiliser, par exemple, 1 .
- Retour sur le Phases de construction l'onglet, faites glisser et déposez votre Exécuter script après la phase de Ressources pour le faisceau de copies pour éviter une situation de course lorsqu'on essaie à la fois de construire et de mettre à jour le fichier source qui contient votre numéro de construction.
Notez qu'avec le agvtool
vous pouvez toujours obtenir périodiquement des constructions échouées/annulées sans erreur. Pour cette raison, je ne recommande pas l'utilisation de la méthode agvtool
avec ce script.
Néanmoins, dans votre Exécuter script vous pouvez utiliser le script suivant :
"${DEVELOPER_BIN_DIR}/agvtool" next-version -all
Le site next-version
incrémente le numéro de build ( bump
est également un alias pour la même chose), et -all
mises à jour Info.plist
avec le nouveau numéro de construction.
-
Et si vous avez un bundle Settings où vous montrez la Version et la Build, vous pouvez ajouter ce qui suit à la fin du script pour mettre à jour la version et la build. Note : Changez le PreferenceSpecifiers
pour correspondre à vos paramètres. PreferenceSpecifiers:2
signifie qu'il faut regarder l'élément à l'indice 2 sous la rubrique PreferenceSpecifiers
dans votre fichier plist, donc pour un index basé sur 0, c'est le troisième paramètre de préférence dans le tableau.
productVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
Si vous utilisez agvtool
au lieu de lire le Info.plist
directement, vous pouvez ajouter ce qui suit à votre script à la place :
buildNumber=$("${DEVELOPER_BIN_DIR}/agvtool" what-version -terse)
productVersion=$("${DEVELOPER_BIN_DIR}/agvtool" what-marketing-version -terse1)
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
-
Et si vous avez une application universelle pour l'iPad et l'iPhone, vous pouvez également définir les paramètres pour le fichier iPhone :
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root~iphone.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root~iphone.plist
0 votes
D'une part, je pense que c'est le numéro de build qui apparaît dans la liste des archives de Xcode Organizer. A part cela, je ne sais pas trop à quoi il sert.