iOS项目中的version和build
2015-10-29 20:24
423 查看
Version在plist文件中的key是“CFBundleShortVersionString”,标识应用程序的发布版本号,和AppStore上的版本号保持一致。该版本的版本号是三个分隔的整数组成的字符串。第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特点。第三个整数代表维护版本
Build在plist文件中的key是“CFBundleVersion”,标示(发布或者未发布)的内部版本号。这是一个单调增加的字符串,包括一个或者多个分割的整数。
以上两个版本号可以通过以下方式获得:
编写脚本使Archive后自动增长build版本号
如果我们想在Archive后build号自动增长,就可以使用到Xcode的run script来实现,步骤是
选中项目的target,点击“Build Phases“
点击右下角的”Add Build Phrase“,选择”Add run script“,会产生一个新的Run Script项
拖拽新生成的Run Script项到最上面
点开该项,copy下面的shell代码进去,代码,如下图所示
这段shell脚本的意思就是说,如果当前的配置是Release(Archive时该值为Release,直接在模拟器上运行是Debug),就设置build值为当前build值+1, 否则什么都不干。
这样在build的时候就会看到build号会自动加1的,想看build时输出的信息,可以通过”View -> Navigators -> Log”来查看最新的build时产生的log。
Build在plist文件中的key是“CFBundleVersion”,标示(发布或者未发布)的内部版本号。这是一个单调增加的字符串,包括一个或者多个分割的整数。
以上两个版本号可以通过以下方式获得:
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; // app版本 NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"]; // app build版本 NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];
编写脚本使Archive后自动增长build版本号
如果我们想在Archive后build号自动增长,就可以使用到Xcode的run script来实现,步骤是
选中项目的target,点击“Build Phases“
点击右下角的”Add Build Phrase“,选择”Add run script“,会产生一个新的Run Script项
拖拽新生成的Run Script项到最上面
点开该项,copy下面的shell代码进去,代码,如下图所示
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
这段shell脚本的意思就是说,如果当前的配置是Release(Archive时该值为Release,直接在模拟器上运行是Debug),就设置build值为当前build值+1, 否则什么都不干。
这样在build的时候就会看到build号会自动加1的,想看build时输出的信息,可以通过”View -> Navigators -> Log”来查看最新的build时产生的log。
相关文章推荐
- Android 如何在自定义界面上启用输入法 (How to enable inputmethod for the custom UI)
- 【Android测试】【第十二节】Uiautomator——API详解
- 1041. Be Unique
- WeUI—微信官方UI库
- 十六进制颜色转换为iOS可以用的UIColor
- MySQL Row size too large (> 8126) 以及ROW_FORMAT=COMPRESSED requires innodb_file_format > Antel 的解决办法
- LeetCode Unique Binary Search Trees (DP)
- UIDevice
- 翻译:Fast Exact Shortest-Path Distance Queries on LargeNetworks by Pruned Landmark Labeling
- Warning: Attempt to present <UIImagePickerController: 0x292b400> on xxx which is already presenti
- [转]Android UI 自动化测试
- android-消息传递机制Message、MessageQueue、Handler、Looper
- hdu 5504 GT and sequence
- 关于UIInterfaceOritation 和 UIDeviceOritation
- 关于mysql的错误 - no query specified
- Android - Get Bluetooth UUID for this device
- iOS UI设计: 在Autolayout的布局上用constraint实现动画
- iOS流布局UICollectionView系列七——三维中的球型布局
- Requests高级用法
- Java - String vs StringBuffer vs StringBuilder