使用shell脚本自动修改Xcode工程编译版本号

背景

公司的项目开发中,肯定是需要打包的,目前已经建立起了一套gitlab+fastlane的持续集成方案。但是在项目开发周期的测试阶段以及上线之前,项目打包的频次会升高不少。所以在一个团队开发中,尤其是测试人员如何区分哪次的打包,是一个很常见的问题。

要区分不同的包也很简单,通过build号来区分。Xcode工程的build号可以随便填的,但是如果每次打包都要手动填写肯定也是一个麻烦的事情,所以我们的解决思路肯定是让工程自动变更build号

解决方案

·方法1 让fastlane每次打包前,把build号处理。具体详情请戳本人之前的一篇文章 Fastlane自动打包工具build号自增处理配置方法

·方法2 通过给Xcode添加shell脚本实现build号处理,具体方法如下: 1.在工程target中,选择Build Phases点击左上角加号,新建script脚本

2.在代码区加入以下脚本,让build号为编译的时间。

# Update build number with buldTime
buildNumber=$(date +%Y%m%d%H%M%S)
echo "Updating build number to $buildNumber"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM/Contents/Info.plist"

复制代码

3.把Run script only when installing勾选上,不然debug会报错。

加入这段脚本之后,就可以实现build号自动处理,是不是So Easy?

方法对比

两种方法都能实现对工程build号的修改,究其本质是修改了项目的info.plist。不同之处在于方法1是用fastlane打包工具中的increment_build_number方法来修改,而方法2是直接在Xcode工程里面加入了一段shell脚本,所以不需要借助任何工具,很简单快捷。

个人推荐方法2来实现build自动处理,因为不需要第三方的依赖。文中如有不足之处还望批评指正~

转载于:https://juejin.im/post/5a321d056fb9a0450671a42f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值