我正在写一个iPhone应用程序。它已经发布,但我想添加一个功能,其版本号显示。

我不希望对我发布的每个版本都手动执行此操作……

objective-C中有办法找出我的应用的版本吗?


当前回答

Swift版本分别为:

斯威夫特3

let versionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String

斯威夫特2

let versionNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
let buildNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String

它包括在这个回购,检查一下:

https://github.com/goktugyil/EZSwiftExtensions

其他回答

func getAppVersion() -> String {
    let dictionary = Bundle.main.infoDictionary!
    let versionValue = dictionary["CFBundleShortVersionString"] ?? "0"
    let buildValue = dictionary["CFBundleVersion"] ?? "0"
    return "\(versionValue) (build \(buildValue))"
}

基于@rajat chauhan的回答,没有强制转换为字符串。

阅读信息。你的应用程序的plist文件,并获得值的关键CFBundleShortVersionString。阅读信息。plist会给你一个NSDictionary对象

Swift版本分别为:

斯威夫特3

let versionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String

斯威夫特2

let versionNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
let buildNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String

它包括在这个回购,检查一下:

https://github.com/goktugyil/EZSwiftExtensions

有两件事——构建版本和应用版本。

获取App版本: NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 获取构建版本: NSString *buildVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

斯威夫特5:

有两件事——应用版本和构建版本

获取App版本: if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as?字符串{ //当前appVersion } 获取构建版本: if let buildVersion = Bundle.main.infoDictionary?["CFBundleVersion"] as?字符串{ //当前buildVersion }

非常感谢布拉德·拉森(brad Larson)