Jenkins配合FastLane完成打包
我们将两者组合起来.
首先说一下,ios打包用的xcbuild命令,所以必须是macos环境,这个不用多解释.
所以....Jenkins所在宿主机得是mac系统的(如果有大神知道别的方式,麻烦指点一下),因为没有多余的mac机子,我就搭在了我自己的机子上.
接下来我们说说怎么搞
启动Jenkins
首先,启动终端,输入
Jenkins
启动Jenkins,打开地址(没改过端口就是8080了)http://localhost:8080
新建任务
新建item
啥也不用勾,写个描述差不多了
源代码管理需要写一下
最后就是这个Execute shell了
Jenkins从git上拉完代码,会执行这里面的shell
shell脚本的编写就需要各位去学习一下了
下图是我的shell脚本,我给大家讲解一下我每一行的作用
#Jenkins部署在我本机,我本机作为宿主机,拉下来的代码也在我本机,所以我想看一下代码拉下来以后的路径,因此在这里打印一下
echo "获取当前项目路径"
echo $(pwd)
#------------react-native的三方库操作 start--------------#
#做一次yarn操作,因为我的项目是react-native项目,且node_modules不上传git,因此从git上拉下来的代码是不包含node_modules的,我需要做一次yarn操作.
#同理,你的ios项目如果是使用pod管理,你可以做一次pod install,把需要的三方库拉下来
echo "执行yarn操作"
yarn
#替换需要修改的文件,这个install2是我在项目里写的脚本,做我需要的一些事,可以忽略
npm run install2
#------------react-native的三方库操作 end--------------#
#上述动作执行完毕以后执行下面的操作
echo "执行完毕,cd到ios下做打包工作"
#cd到ios目录下,当然,如果你本身就是ios纯原生项目,你就不要cd了
cd ./ios
echo "开始打包"
#执行你写的FastLane的action,可以见文章开头的FastLane的使用
fastlane test_ad
echo "打包完毕"
#------------打包完毕,下面是我自定义的一些操作--------------#
#因为我打完包需要给测试做内测分发,自己搭建了一个内测分发的压面,下面是我自定义的一些操作,这里就省略了
#....
点击保存,就这样,打包脚本的编写就完成了
测试一下
直接上图把,看图比较直观
所有的log信息都在这里看,报错了也可以在这里看到底什么地方报错了,针对性解决对应错误.如下图
最后的结果如下图
Jenkins拉下来的项目,成功打出ipa包和dsym文件.
同时,你有打出来的包文件的路径,你是想上传蒲公英或者别的平台或公司内部有分发,都是可以直接拿着产物为所欲为的.例如:我将它放到了我们自己的服务器上进行分发.见下面这篇文章