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. Tips1:用 Export Package选项来分享你的成果

    如果你不是一个人工作,你可能需要和其他人共享一个工程文件,Unity工程文件中的一些关键元素默认是隐藏的,因此通过复制Assets文件夹的方法并不完善.Unity自带的UnityPackage格式的文 ...

  2. Understanding CMS GC Logs--转载

    原文地址:https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs Understanding CMS GC Logs By Po ...

  3. Click Models for Web Search(1) - Basic Click Models

    这篇文章主要是介绍一些基本的click model,这些不同的click model对用户与搜索结果页的交互行为进行不同的假设. 为了定义一个model,我们需要描述出observed variabl ...

  4. easyui-treegrid节点选择

    easyui-treegrid本身不能实现选中父节点子节点全选,必须通过另外的方法来实现,这里说下如何通过修改节点样式添加checkbox来实现级联选择效果 首先需要格式化节点的样式 formatte ...

  5. 在Winform开发框架中实现对数据库的加密支持

    在很多情况下,我们需要对数据库进行加密,特别是Access数据库.Sqlite数据库,这些直接部署在客户端的数据,因为数据也是客户的资产,数据库总是存在很多相关的秘密或者重要的业务数据,所以一般来说, ...

  6. C# 修改电脑DNS和IP方法

    /// <summary> /// 将IP,DNS设置为自动获取 /// </summary> private void setDHCP() { string _doscmd ...

  7. Android开发总是难以入门

    发现自己很难入门,是真的太难,还是自己主观拒绝.

  8. T-SQL的回车和换行符(SQL)

    T-SQL的回车和换行符(SQL) sql server中的回车换行字符是  char(13)+char(10) 回车:char(13) 换行:char(10) 实例1: DECLARE @c NVA ...

  9. Windows程序控件升级==>>构建布局良好的Windows程序

    01.菜单栏(MenuStrip) 01.看看这就是menuStrip的魅力: 02.除了一些常用的属性(name.text..)外还有: 03.有人会问:上图的快捷键: 方法: 方式一:1.设置菜单 ...

  10. Web网站数据”实时”更新设计

    请注意这个实时打上了双引号,没有绝对的实时,只是时间的颗粒不一样罢了(1ms,1s,1m). 服务器数据有更新可以快速通知客户端.Web 基于取得模式,而服务器建立大量的和客户端连接来提供数据实时更新 ...