iOS自动化-Jenkins编译工程
介绍
Jenkins环境已搭建好,现在我们来开始愉快的为iOS打包吧~
从这个文章中你将要实现以下功能:
- 在Jenkins创建工程
- build出ipa
- 将ipa上传至fir
- 钉钉机器人群通知
- 将dsym上传至bugly
脚本环境安装
这里大多数操作都是用脚本来进行的,不为别的,就为自由和以后~
fastlane
此处主要用来编译、打包。
安装方法:
1 | $ brew cask install fastlane |
此神器除了上述功能,还提供很多很多很多很多功能,包括自定义神马的都支持。需要的可以去文档里面翻翻。
在Xcode9 我使用的版本2.14.1打包出问题了。。具体在这里详见Xcode9编译失败。于是呼采用了xcodebuild
进行打包
fir.im-cli
安装方法:
1 | $ gem install fir-cli |
此工具也提供打包ipa、apk、上传符号表至BugHD、等功能。但是我们在这里选择了fastlane gym
上传加速:
1 | $ sh -c "$(curl -sSL https://gist.githubusercontent.com/trawor/5dda140dee86836b8e60/raw/turbo-qiniu.sh)" |
上传加速代码已经开源至此。
BugHD: 已停止线上免费服务,开始卖私有部署了。
另外,fir 也有Jenkins插件,但是这里选择脚本方式。
插件安装
所有的插件可以在系统管理 -> 插件管理
中进行安装、卸载、降级、更新、等操作。
确保以下插件已经被安装:
- 源代码管理:Git Plugin
- 编译脚本环境变量:Tool Environment Plugin
嗯,开始创建工程,然后配置打包吧!
工程相关配置
左侧的新建(New Item)
我就不说了吧~,点击输入项目名字,然后选择第一个构建一个自由风格的软件项目
就行啦~~
此处项目名字暂且成为test
。这里只说一些比较重要的,没有活不成的那种配置。别的自己研究一下或者点击右侧❓就能看到介绍。
源码管理
此处点击Git
,展开之后输入Repository URL
即可。
Repository URL
输入完毕之后点击别处,Jenkins的Git插件会自动校验该URL是否能够clone下来代码。出现红色就自己根据错误修改一下咯。。
另外此处支持ssh
的方式,大致样式为:ssh://sunjigang@github.com:29418/projects/aaa
。
Branches to build
写上你的构建分支~,根据自己需求来,master
一般为仓库的默认分支。
构建触发器
此处表示该项目的构建触发条件。(可选)
我们这里说一下Poll SCM
:
定时检查源码变更。条件是 一定要配置Git
这样的源码管理。
例子:
H/15 * * * *
:每15分钟构建一次0 2 * * *
: 每天2:00构建一次
构建
此处为构建的核心😂。当然,我们为了自由,此处全部使用shell
脚本。
1 | # 工程名 |
至此 已经完成了打包、上传fir、钉钉机器人通知。
上述脚本只是配置的例子,可以根据自己需求,自己编写和配置。特别是
.xcworkspace
的位置,要找清楚呀scheme
无法找到是因为你在提交代码的时候没有将其设置为sharedfastlane gym
支持很多参数,是对xcodebuild
的封装,源码及文档在此
上传dSYM至Bugly
这个还是有点点复杂的,因为bugly并未提供完整的cli工具链,需要手动跑jar包。不过都是可以完成的。
为了隔离开打包和上传,这里在Jenkins上新建一个项目用来上传dSYM
其中需要衔接的地方就是上面的输出要作为这个的输出。所以需要前后对应位置。
1 | # 路径主要用来提取Info.plist以及dsym文件 |
值得说的是,如果上面的报错,那么检查一下是不是路径什么的写错了。。。
如果还有问题,可以在关于中找到我。