【发布时间】:2011-12-18 22:59:17
【问题描述】:
我想知道是否有一种方法可以在将您自己的应用程序版本放入 xCode 的“摘要”选项卡后,以代码形式获取它。一种方法似乎是在Info.plist 中搜索CFBundleVersion 键,但是还有其他更简单、更方便的方法吗?
【问题讨论】:
我想知道是否有一种方法可以在将您自己的应用程序版本放入 xCode 的“摘要”选项卡后,以代码形式获取它。一种方法似乎是在Info.plist 中搜索CFBundleVersion 键,但是还有其他更简单、更方便的方法吗?
【问题讨论】:
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
【讨论】:
您可以在主包中找到它。我认为是这样的:
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
【讨论】:
@"CFBundleVersion" 返回的是构建而不是版本。你应该得到这个对象:@"CFBundleShortVersionString"
我通常使用内部版本号 (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}"
【讨论】:
对于斯威夫特:
Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")
【讨论】: