2011-10-31 59 views
35

我想知道在将代码放入xCode中的“摘要”选项卡后,是否有办法在代码中获取您自己的应用程序版本。一种方法似乎是搜索Info.plist的关键,但有没有其他更简单,更方便的方法?如何从xcode获取自己的应用程序版本?

+0

[我的iPhone应用程序如何检测自己的版本号?]的可能重复?(http://stackoverflow.com/questions/458632/how-can-my-iphone-app-detect-its-own-version-number) –

回答

113

您可以在主包中找到它。我认为这是这样的:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 
+0

是的,我刚刚发现了一个博客(http://pigtailsoft.com/blog/?p=35)。不管怎么说,还是要谢谢你!将在6分钟内接受答案:) –

+11

谢谢,但'@“CFBundleVersion”'返回版本不是版本。你应该得到这个对象:'@“CFBundleShortVersionString”' – IgniteCoders

12
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; 
27

我通常使用的内部版本号(CFBundleVersion)来跟踪的,那么,数量构建,以及在市场推广的版本号(CFBundleShortVersionString)。我使用运行脚本来自动增加内部版本号,并在每次发布新版本之前手动更新版本号。所以,如果你想在你的代码的实际版本号,而不是内部版本号,使用:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; 

下面是递增的内部版本号为任何有兴趣的运行脚本:

#!/bin/bash 

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}" 
2

对于斯威夫特:

Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") 
相关问题