英文版企业网站布局设计,推荐网站空间购买,文案短句干净治愈,中国最好的猎头公司排行榜参考 一个叫做Version#xff0c;一个叫做Build#xff0c;#xff08;version是版本号#xff0c;build是打正式包每次Archive时的都增加的值#xff09;这两个值都可以在Xcode中选中target#xff0c;点击“Summary”后看到。 Version在plist文件中的key是“CFBundleSh…参考 一个叫做Version一个叫做Buildversion是版本号build是打正式包每次Archive时的都增加的值这两个值都可以在Xcode中选中target点击“Summary”后看到。 Version在plist文件中的key是“CFBundleShortVersionString”和AppStore上的版本号保持一致Build在plist中的key是“CFBundleVersion”代表build的版本号该值每次build之后都应该增加1。这两个值都可以在程序中通过下面的代码获得
[[[NSBundle mainBundle] infoDictionary] valueForKey:key]Archive后自动增长build号 除此之外如果我们想在Archive后build号自动增长就可以使用到Xcode的run script来实现步骤是
选中项目的target点击“Build Phases“ 点击右下角的”Add Build Phrase“选择”Add run script“会产生一个新的Run Script项 拖拽新生成的Run Script项到最上面 点开该项copy下面的shell代码进去代码来自[这里](http://stackoverflow.com/questions/9855955/xcode-increment- build-number-only-during-archive?answertabactive#tab-top)如下图所示
if [ $CONFIGURATION Release ]; thenecho 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} ]]; thenecho No build number in $plistexit 2fibuildnum$(expr $buildnum 1)/usr/libexec/Plistbuddy -c Set CFBundleVersion $buildnum ${plist}echo Bumped build number to $buildnumelseecho $CONFIGURATION build - Not bumping build number.
fi这段shell脚本的意思就是说如果当前的配置是ReleaseArchive时该值为Release直接在模拟器上运行是Debug就设置build值为当前build值1 否则什么都不干。
这样在build的时候就会看到build号会自动加1的想看build时输出的信息可以通过”View - Navigators - Log”来查看最新的build时产生的log。
参考 一个version一个build都是设置版本的地方有什么区别呢
在ios中(Android等工程中也一样),有两种version一种是 CFBundleVersion (“Bundle Version”)也就是我们看到的version,另一种是CFBundleShortVersionString (“Bundle version string, short”)也就是我们看到的Build。
普通情况下我们只使用version即可设置为1.0, “1.1”, “2.0” , etc但如果你要使用两个版本号时候需要将build设置为1,2,3…等递增的整数有什么用呢
version我们可以通过App Store、itunes或其它软件看到是给用户看的而build是我们在团队开发中内部只用的只有我们自己可以看到。比如团队打算发布1.0版本的时候会发布很多build版本供测试或QA团队进行测试你发布了很多build因为一直在修改着代码因此当你收到一条bug信息时候你怎么知道是那个build引起的问题呢这时候build版本号的有点就可以体现出来了
当前运行版本信息可以通过info.plist文件中的bundle version中获取
NSDictionary *infoDic [[NSBundle mainBundle] infoDictionary];
CFShow(infoDic); 可以自己输出看一下CFShow打印出来的时什么
下面的代码是如果你想在UI上展示给用户看的获取Version的代码对比是否升级也是通过version对比而不是build也是用下面代码
NSString * appVersion [[NSBundle mainBundle]objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; version是app发布时用户看到的版本号。
build的为了方便开发者多次提交binary, 比如被苹果reject后。
例如第一次提交version和build都是1.0.
假如审核没过那么修改代码后新的构建的version还是1.0build改为1.0.1就ok了。