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

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

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


当前回答

斯威夫特5:

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

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

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

其他回答

您可以在plist.info中指定CFBundleShortVersionString字符串,并使用提供的API以编程方式读取该字符串。

// Syncs with App Store and Xcode Project Settings Input
NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

如果你需要version和build num的组合,这里有一个使用Swift 3的简单方法:

let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"]!
let buildNum = Bundle.main.infoDictionary!["CFBundleVersion"]!
let versionInfo = "\(appVersion) (build \(buildNum))"
// versionInfo is now something like "2.3.0 (build 17)"

加一个a !String到appVersion或buildNum行的末尾,以仅获取该部分作为String对象。如果你想要完整的versionInfo,就不需要这样做了。

我希望这能有所帮助!

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

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

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

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

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