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. Uvaoj 11248 Frequency Hopping(Dinic求最小割)

    题意:1到n节点(节点之间有一定的容量),需要流过C的流量,问是否可以?如果可以输出possible, 否则如果可以扩大任意一条边的容量 可以达到目的,那么输出possible option:接着输出 ...

  2. ruby -- 进阶学习(九)定制错误跳转404和500

    在开发阶段,如果发生错误时,都会出现错误提示页面,比如:RecordNotFound之类的,虽然这些错误方便开发进行debug,但是等产品上线时,如果还是出现这些页面,对于用户来说是很不友好的. 所以 ...

  3. php -- php读取sqlserver2005的数据实现分页查询

    --php5.2 --sqlserver2005 php读取sqlserver多条数据时,有时因为数据太多,需要进行分页查询. 例如,按价格的顺序,读取同一类型的产品的第30到第48条记录 $star ...

  4. Only top uni produces good ppt.

    重要的事说三遍: 学技术,我只相信那几所top高校 学技术,我只相信那几所top高校 学技术,我只相信那几所top高校 <Good Habits you must own> Wake up ...

  5. bootstrap精简教程

    bootstrap 的学习非常简单,并且它所提供的样式又非常精美.只要稍微简单的学习就可以制作出漂亮的页面. bootstrap中文网:http://v3.bootcss.com/ bootstrap ...

  6. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  7. 分析SIX锁和锁分区导致的死锁

    什么是SIX锁? 官方文档锁模式中说到: 意向排他共享 (SIX):保护针对层次结构中某些(而并非所有)低层资源请求或获取的共享锁以及针对某些(而并非所有)低层资源请求或获取的意向排他锁. 顶级资源允 ...

  8. servlet、filter、listener、interceptor之间的区别和联系

    一.概念 1.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层. 2.filter: ...

  9. 数论 - 组合数学 + 素数分解 --- hdu 2284 : Solve the puzzle, Save the world!

    Solve the puzzle, Save the world! Problem Description In the popular TV series Heroes, there is a ta ...

  10. office2016 软件全集 官方下载免费完整版(含破解文件)不含垃圾软件 win10完美激活

    office2016官方下载免费完整版是新一代办公软件,office2016官方下载免费完整版已经分享到下面,office2016官方下载免费完整版包括了Word.Excel.PowerPoint.O ...