请参阅打造码号或版本号(Refer to build number or version numbe

2019-06-23 09:40发布

这很容易在Xcode手动设置构建和版本号,我学会了如何与在构建时宏递增它们。 但我怎么引用代码他们的价值观?

Answer 1:

当然,你可以问你的主束的信息目录,其中包括您的info.plist的所有键和值,包括版本号:

NSDictionary *info = [[NSBundle mainBundle] infoDictionary];
NSString *version = [info objectForKey:@"CFBundleShortVersionString"];


Answer 2:

NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"]; // example: 1.0.0
NSString *buildNumber = [infoDict objectForKey:@"CFBundleVersion"]; // example: 42 


Answer 3:

@robo我没有按照有关如何自动增量内部版本号写了(不是版本号,但是这是非常相似),但现在我找不到它。 我会尽力解释我做了什么。 我希望这是足够清晰可循。

在Xcode 4的外观在导航窗格中,这是对的Xcode屏幕的左侧窗格。 它在顶部7个图标。 选择最左边的图标(看起来像一个文件夹),以获得项目导航窗格。

现在点击该窗格,这是项目本身的第一个项目。 打开与窄列它的左边中心的大窗口。

窄列有2个部分:“工程”和“目标”。 “目标”部分中,点击您的项目名称。 现在中心窗格中具有沿顶5个标签:“摘要”,“信息”,“构建设置”,“构建阶段”和“建设规则”。

点击“构建阶段”选项卡上。 如果你的配置是一样的矿,你现在可以看到在主窗口4个部分:“目标相关性”,“复制包资源”,“编译源代码”和“链接...”。 点击“添加构建阶段”(在右下角),然后选择“添加运行脚本”。 第5部分现在出现在标题为“运行脚本”中心窗格中。 “运行脚本”节上来拖动所以它是从顶部的第二部分,仅低于“目标相关性”。

现在点击三角形的运行脚本部分。 打开一个窗口,你可以把一个脚本。 复制并粘贴下面的脚本到该窗口。

#!/bin/bash    
bN=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
bN=$((0x$bN)) 
bN=$(($bN + 1)) 
bN=$(printf "%X" $bN)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $bN" "$INFOPLIST_FILE"

确保“仅安装运行脚本时,”未选中。

而已! 现在你的版本号自动递增,每次你建立你的项目时间。

这个脚本假设你在你的Info.plist文件中一个普通的十六进制版本号,并增加其十六进制。 我不知道它做什么,如果版本号丢失。 但它很容易进入一个初始值 - 只要进入“摘要”选项卡在同一中心窗格中,上述使用,输入“1”(或任何价值你喜欢)到“生成”对话框(而不是格式化串比如1.0)。


我认为六角剧本我给第一无效提交到App Store。 下面是使用十进制算法相同的脚本。

#!/bin/bash    
bN=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
((bN += 1))
bN=$(printf "%d" $bN)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $bN" "$INFOPLIST_FILE"


Answer 4:

NSBundle *bundle = [NSBundle mainBundle];   
NSString *appVersion = [bundle objectForInfoDictionaryKey:(NSString *)@"CFBundleShortVersionString"];
NSString *appBuildNumber = [bundle objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];


Answer 5:

你可以得到的info.plist值与这段代码(更换CFBundleShortVersionString用的info.plist的关键你要参考推荐的Info.plist键 )

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


Answer 6:

由于这些值存储在应用程序的Info.plist ,您可以通过设在方法读取,然后NSBundle

NSString * version = [[NSBundle mainBundle] objectForInfoDictionaryKey: CFBundleShortVersionString];

见访问包内容为从你的Info.plist文件并获取数据最权威的参考Core Foundation的键可用的Info.plist键。



Answer 7:

在斯威夫特:

let version = NSBundle.mainBundle().infoDictionary?["CFBundleShortVersionString"] as? String


文章来源: Refer to build number or version number in code