如何自动增加和从代码读取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的启动画面中轻而易举的显示当前版本号了:
相关文章推荐
- c语言中位数的求法 防止越界
- linkbutton的点击事件,在asp.net后台无法取到百度编辑器的值
- main之前会执行什么代码
- GoEasy在web端推送及接收
- 从头认识java-12.5 代理以及动态代理
- UCI数据集与相关论文和源代码
- 关于C++中的POD型别
- Django 学习笔记<一>
- numpy使用
- JVM虚拟机原理
- JavaBean简介
- php curl_exec optimize
- osgOcean笔记
- Java学习之异常练习
- C++内存管理
- 基于PHP的cURL使用入门
- java 中string filename和file filename 创建文件的区别
- python之C扩展二
- java泛型程序设计——无限定通配符+通配符捕获
- Mybatis中javaType和jdbcType对应和CRUD例子