Jenkins配合FastLane完成打包
FastLane的使用
Jenkins的安装
我们将两者组合起来.
首先说一下,ios打包用的xcbuild命令,所以必须是macos环境,这个不用多解释.
所以….Jenkins所在宿主机得是mac系统的(如果有大神知道别的方式,麻烦指点一下),因为没有多余的mac机子,我就搭在了我自己的机子上.
接下来我们说说怎么搞
启动Jenkins
首先,启动终端,输入
启动Jenkins,打开地址(没改过端口就是8080了)http://localhost:8080
新建任务
新建item


啥也不用勾,写个描述差不多了

源代码管理需要写一下


最后就是这个Execute shell了
Jenkins从git上拉完代码,会执行这里面的shell
shell脚本的编写就需要各位去学习一下了
下图是我的shell脚本,我给大家讲解一下我每一行的作用

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #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文件.
同时,你有打出来的包文件的路径,你是想上传蒲公英或者别的平台或公司内部有分发,都是可以直接拿着产物为所欲为的.例如:我将它放到了我们自己的服务器上进行分发.见下面这篇文章
ios内测分发(企业/非企业分发)
Jenkins打完包以后公司内部服务器分发(还没写,挖坑待填)