Я хочу прочитать информацию о версии пакета из Info.plist в свой код, желательно в виде строки. Как я могу это сделать?
iphone
objective-c
cocoa-touch
xcode
info.plist
Джон Смит
источник
источник
objectForInfoDictionaryKey:
вместо этого, поскольку он возвращает локализованное значение, если оно доступно:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]
CFBundleVersion
был перепрофилирован на сборку и версиюCFBundleShortVersionString
.NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
self.versionLabel.text = [NSString stringWithFormat:@"%@.%@", version, build];
для пользователей Swift:
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") { print("version is : \(version)") }
для пользователей Swift3:
if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") { print("version is : \(version)") }
источник
Я знаю, что прошло какое-то время с момента квеста и ответа.
С iOS8 принятый ответ может не сработать.
Это новый способ сделать это сейчас:
NSString *version = (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
источник
Теперь в iOS 8 необходимы оба поля. Раньше он работал без
CFBundleShortVersionString
. Но теперь это обязательное поле plist для отправки любого приложения в магазин приложений. ИkCFBundleVersionKey
сравнивается для загрузки каждой новой сборки, которая должна выполняться в возрастающем порядке. Специально для сборок TestFlight. Я так делаю,NSString * version = nil; version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; if (!version) { version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; }
источник
Swift 3:
let appBuildNumber = Bundle.main.infoDictionary!["CFBundleVersion"] as! String let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
источник