Il y a 2 Des chiffres !
Le numéro de communiqué de marketing est pour les clients, appelé numéro de version . Il commence par 1.0 et passe aux mises à jour majeures pour 2.0 , 3.0 pour des mises à jour mineures de 1.1 , 1.2 et pour les corrections de bogues dans 1.0.1 , 1.0.2 . Ce numéro est orienté sur les sorties et les nouvelles fonctionnalités. Il ne doit pas s'arrêter à 9, 1.11.23 est un numéro de version raisonnable.
Le site numéro de fabrication est surtout le nombre interne de constructions qui ont été faites jusqu'alors. Mais certains utilisent d'autres chiffres comme le numéro de branche du dépôt ou son numéro de commit. Ce numéro devrait être unique pour distinguer les différents builds, qui n'ont que des changements incrémentaux mineurs.
Pour obtenir le version numéro :
Objective-C :
NSString * appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
Swift < 3.0 :
let appVersionString: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
Swift 3.0+ (testé avec 5.0) :
let appVersionString: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
Pour obtenir le construire numéro :
Objective-C :
NSString * appBuildString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
Swift < 3.0 :
let buildNumber: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String
Swift 3.0+ (testé jusqu'à 5.0) :
let buildNumber: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
Si vous voulez les deux en un :
Utilisez d'abord les lignes ci-dessus, puis la suivante.
Objective-C :
NSString * versionBuildString = [NSString stringWithFormat:@"Version: %@ (%@)", appVersionString, appBuildString];
Swift (testé jusqu'à 5.0) :
let versionAndBuildNumber: String = "\(appVersionString) (\(buildNumber))"
Notes :
Les valeurs dans le paquet principal ne sont pas toujours présentes, par exemple dans une application en ligne de commande il n'y a pas de CFBundleShortVersionString
ou CFBundleVersion
donc les méthodes retourneront nil
et il se plantera parce que dans le code il fait un downcast incorrect. Mais dans les applications Cocoa iOS et Mac normales, ces valeurs sont définies et ne seront pas supprimées.
Ceci est testé avec Xcode Version 7.3 (7D175) . Le numéro de construction est souvent écrit entre parenthèses / accolades. Le numéro de build est en hexadécimal ou en décimal.
Sur Xcode vous pouvez auto-incrémenter le numéro de fabrication en tant que nombre décimal en plaçant les éléments suivants dans le Run script
phase de construction dans les paramètres du projet
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
Pour hexadécimal numéro de construction utiliser ce script
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$((0x$buildNumber))
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
Pour Xcode
faites ce qui suit :
Étape 1
Étape 2
Étape 3