Je veux lire les informations de version du bundle depuis Info.plist dans mon code, de préférence sous forme de chaîne. Comment puis-je le faire ?
Réponses
Trop de publicités?Vous pouvez lire votre Info.plist comme un dictionnaire avec
[[NSBundle mainBundle] infoDictionary]
Et vous pouvez facilement obtenir la version à la CFBundleVersion
clé de cette façon.
Enfin, vous pouvez obtenir la version avec
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* version = [infoDict objectForKey:@"CFBundleVersion"];
Pour les utilisateurs de Swift :
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") {
print("version is : \(version)")
}
pour les utilisateurs de Swift3 :
if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") {
print("version is : \(version)")
}
Maintenant, dans iOS 8, les deux champs sont nécessaires. Auparavant, cela fonctionnait sans le CFBundleShortVersionString
. Mais maintenant, c'est un champ obligatoire pour soumettre une application dans l'App Store. Et kCFBundleVersionKey
est comparé pour le téléchargement de chaque nouvelle build, qui doit être dans un ordre incrémental. Spécialement pour les builds de TestFlight. Je le fais de cette façon,
NSString * version = nil;
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
if (!version) {
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
}