Build在plist文件中的key是“CFBundleVersion”,标示(发布或者未发布)的内部版本号.通常我们用这个小版本号可以表示每一个不同的版本号,即使我们发布到AppStore上的版本有bug,但同时我们又不愿意修改大版本号(Version)我们可以通过Build来区分不同的版本号

NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];

Build版本获取

NSString *build = [infoDictionary objectForKey:@"CFBundleVersion"];

编写脚本使Archive后自动增加build版本号

如果我们想在Archive后build号自动增长,就可以使用到Xcode的run script来实现,

步骤是:

 
1.选中项目的TARGETS
2.点击“Build Phases“
3.点击左上角的➕
4选择”New run script Phase“
5.会产生一个新的Run Script项,你会看到有一个Shell的黑框框,
6.将代码copy到里面就可以了

这段shell脚本的意思就是说,如果当前的配置是Debug(Archive时该值为Release,直接在模拟器上运行是Debug),就设置build值为当前build值+1.(这里为了测试就用Debug)

在开发中一搬都是Release,直接把Debug 改为Release,这样每次打包发布的时候就会自增1.

代码如下

if [ $CONFIGURATION == Release ]; then

echo "Bumping build number..."

plist=${PROJECT_DIR}/${INFOPLIST_FILE}

#increment the build number (ie 115 to 116)

buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")

if [[ "${buildnum}" == "" ]]; then

echo "No build number in $plist"

exit 2

fi

buildnum=$(expr $buildnum + 1)

/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"

echo "Bumped build number to $buildnum"

else

echo $CONFIGURATION " build - Not bumping build number."

fi

 
7.接下来编译一下就可以自增了
想看build时输出的信息,可以通过”View -> Navigators -> Log”来查看最新的build时产生的log。
 
 
 
 
 
 
 
 
 

自增build ID配置的更多相关文章

  1. TeamCity : Build 基本配置

    前文中我们在 TeamCity 中创建了一个项目 HelloApp,并在这个项目中创建了一个名为 HelloAppDailyBuild 的Build 用来编译 demo 程序.本文我们将详细介绍 Bu ...

  2. r.js合并实践 --项目中用到require.js做生产时模块开发 r.js build.js配置详解

    本文所用源代码已上传,需要的朋友自行下载:点我下载 第一步: 全局安装  npm install -g requirejs 第二步: 1.以下例子主要实现功能, 1)引用jq库获取dom中元素文本, ...

  3. Ant之build.xml配置详解【转】

    原文:https://blog.csdn.net/mevicky/article/details/72828554 前言国内关于build.xml的配置资料太零散了,实在是受不了,故而将自己的笔记整理 ...

  4. 【转】mybatis 自增主键配置

    mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会遇到的就是Oracle Sequece 和 MySQL 自增主键,至 ...

  5. SqlServer中的自增的ID的最后的值:

    SqlServer中的自增的ID的最后的值: SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值.SELECT @@I ...

  6. Android开发之深入理解Android Studio构建文件build.gradle配置

    摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applica ...

  7. [转] Java 插入表记录后得到自增的id (附3种方法代码)

    转自:https://blog.csdn.net/yaerfeng/article/details/7231093 在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作 ...

  8. 在build中配置resources,来防止我们资源导出失败的问题

    <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> < ...

  9. 在build中配置resources, 来防止我们资源导出失败问题

    <!--在build中配置resources, 来防止我们资源导出失败问题--> <build> <resources> <resource> < ...

随机推荐

  1. Web程序员开发App系列 - 申请苹果开发者账号

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  2. 队列的链式存储方式的实现(Java语言描述)

    链队列的结构示意图: 先进先出. QueueInterface.java//操作方法接口 package 队列的实现; public interface QueueInterface { public ...

  3. 自动化运维工具之 Ansible 介绍及安装使用

    一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...

  4. Python文件操作详解

    Python内置了一个open()方法,用于对本地文件进行读写操作.这个功能简单.实用,属于必须掌握的基础知识. 使用open方法操作文件可以分三步走,一是打开文件,二是操作文件,三是关闭文件.下面分 ...

  5. 第一次Sprint总结

    回顾流程      这次我们做(done)的是设计用户登录界面.注册界面.查询功能.链接数据库等,我们成功地把todo变成了done,首先不管我们结果如何,不管我们的付出是否与收获成正比,但我们做到了 ...

  6. C#获取本地或远程磁盘使用信息

    因为公司有多个服务器,要检查磁盘的使用情况确定程序放哪个服务器和清理垃圾,所以写个小程序帮忙检查. 效果图: 后台代码: private void btnCheck_Click(object send ...

  7. 在aspx怎么引用public string getPicurl(string picurl)?

    刚才在论坛上看到一帖: Insus.NET尝试做了一下,直接使用一个Img标签是无法实现.因为函数中返回的即是一个img html标签,因此在aspx页再不能使用Img了. 现在可以回到网友的问题,那 ...

  8. [新手学Java]使用beanUtils控制javabean

    使用BeanUtils设置/读取属性的值以及默认支持的自动转化: @Test //使用BeanUtils设置/读取属性的值以及自动转化 public void test1() throws Illeg ...

  9. 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

    总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...

  10. asp.net学习之Repeater控件

    asp.net学习之Repeater控件 文章摘自:http://www.cnblogs.com/shipfi/archive/2009/10/19/1585703.html Repeater控件和D ...