一、概念阐述:Build与Version的区别
在iOS中有两种“版本号”,也就是所谓的version号与build号,如下图所示:
我们用最简洁的语言来区分这两个版本号的区别以及用途如下:
Version号:也称为Bundle versions string, sthort. appstore以及itune中产品介绍所用的版本号,多面向用户,多为两段式或者三段式,1.0.1,1.2等,通常作为版本升级的主要依据
Build号:也称为Bundle version. 开发者团队内部使用,方便追查bug,多用于内测过程中区分出不同产品。也就是相同Version下,Build号可以不同
二者在plist中也分别用不同的字段来表示
对于开发者而言,我们往往更关注Build号,也就是Bundle version。因此,本文旨在介绍一种方法,实现Bundle version自动标记,用以区分不同的内测产品。
二、Bundle version自动增加
Bundle version的表示方法用很多种,大致如下:时间表示法(e.g. 20150715)、字母表示法、纯数字表示法。本文采用最后的纯数字表示法,并且采用xcode对代码的编译次数作为bundle version。可以预见,这样的bundle version将呈现出递增趋势。但需要每次编译后都去修改xcode的工程设置以及plist吗?答案是否定的。APPLE已经提供了工具帮我们实现bundle version的自动递增。
具体设置步骤参加下图(图片转载自此处):
其中的脚本代码为:
1xcrun agvtool next-version -all
三、More
如果是多人开发,会存在每个人开发的分支多次编译导致Build版本不准的情况,但不影响开发进程。对于开发我们需要注意的是每次测试测试前的Build版本。确保它增加,就,可以了!至于是否要release时增加,是否需要手动修改,这个可以根据实际情况调整。毕竟,Build版本号只是一个辅助的参数。