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

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

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


当前回答

获取X.Y.Z格式版本字符串的简单方法是:

[NSBundle mainBundle].infoDictionary[@"CFBundleVersion"]

或者,对于X.Y:

[NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]

这两个代码段都返回字符串,您可以将其分配给标签对象的文本属性,例如。

myLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];

其他回答

斯威夫特5:

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

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

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

正如我在这里描述的,我使用一个脚本来用我当前的Subversion版本号重写头文件。修订号存储在kRevisionNumber常量中。然后,我可以使用类似于下面的东西访问版本和修订号:

[NSString stringWithFormat:@"Version %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"], kRevisionNumber]

这将创建一个格式为“Version 1.0(51)”的字符串。

这就是我在申请中所做的

NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

希望这个简单的答案能帮助到一些人……

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

你可以使用infoDictionary从info中获取版本细节。这段代码适用于swift 3。只需调用此方法并在任何首选的UI元素中显示版本。

Swift-3  

func getVersion() -> String {
    let dictionary = Bundle.main.infoDictionary!
    let version = dictionary["CFBundleShortVersionString"] as! String
    let build = dictionary["CFBundleVersion"] as! String
    return "v\(version).\(build)"
}