繁体   English   中英

从Info.plist中读取版本

[英]Read version from Info.plist

我想从Info.plist中读取捆绑版本信息到我的代码中,最好是作为字符串。 我怎样才能做到这一点?

您可以将Info.plist作为字典阅读

[[NSBundle mainBundle] infoDictionary]

您可以通过这种方式轻松获得CFBundleVersion密钥的版本。

最后,你可以获得版本

NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* version = [infoDict objectForKey:@"CFBundleVersion"];

对于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 但现在,在app store中提交任何应用程序都是必需的plist字段。 并且比较kCFBundleVersionKey载每个新构建,其必须按递增顺序。 特别适用于TestFlight构建。 我是这样做的,

NSString * version = nil;
    version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
    if (!version) {
        version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
    }

斯威夫特3:

let appBuildNumber = Bundle.main.infoDictionary!["CFBundleVersion"] as! String
let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM