您的位置:首页 > 编程语言

如何自动增加和从代码读取Xcode项目的版本号

2015-12-08 21:22 302 查看

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)



Xcode项目和版本号相关的有2个地方Version和Build:



如果需要自动更新版本号有2种方法,都需要写脚本.

一种是用Xcode帮你做好的工具,脚本如下:

xcrun agvtool next-version -all


希望进一步了解详情的童鞋可以移步到以下2个地址中查看细节:

使用agvtool 自动化操作version and Build Numbers 的步骤

设置iOS项目BuildVersion自动增加

这里介绍一下第二种方法,首先还是添加脚本:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
shortVersion=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")

echo $buildNumber
echo $shortVersion

#if [ $buildNumber -ge 2 ];then
if [ $buildNumber -gt 2 ];then
shortVersion=`echo "$shortVersion+0.1"|bc|awk '{printf "%.1f",$0}'`
buildNumber=1
else
buildNumber=$(($buildNumber+1))
fi

#date_v=`date +"%m%d"`

#buildNumber=`echo "scale=5;$buildNumber+0.01"|bc`
#buildNumber="$shortVersion.$buildNumber"

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $shortVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}"


代码首先显示原来的版本,然后分别更新Version号和Builder号,最后将新的版本号写入项目中.

我们通常还需要在程序代码中读取当前项目中的版本号,也很简单,代码如下:

-(NSString*)getAppVersion{
NSString *ver = [[[NSBundle mainBundle] infoDictionary]
objectForKey:@"CFBundleShortVersionString"];
NSString *build = [[[NSBundle mainBundle] infoDictionary]
objectForKey:@"CFBundleVersion"];
return [NSString stringWithFormat:@"Version %@.%@",ver,build];
}


注意以上代码只能读取值,但不能写入值,至少本猫没有试验成功,如果哪位童鞋知道如何通过代码写入版本号,请参与后面的讨论.

有了版本自动更新机制和读取机制,我们就可以在App的启动画面中轻而易举的显示当前版本号了:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: