利用Jenkins持续集成iOS项目
简介
一般的小公司可能测试要求没那么严格,打包也不会那么严格,但是对于大公司,并且测试人员众多,打包频繁的话,打包测试就成了一件很耗费时间的事,而且打包环境可能会有测试,预生产,生产等环境,打包的时候如果再去配置这些环境的话也很容易出错,所以部署自动化会为我们节省很多时间,也能减少一些不必要的问题出现.
过程
1.Jenkins下载安装 https://jenkins.io/
下载安装完以后发现界面是这样的(浏览器访问地址:http://localhost:8080)
屏幕快照 2017-09-05 上午10.10.50.png因为Jenkins依赖于Java运行环境,因此需要首先安装Java的SDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装完以后再访问http://localhost:8080就能访问Jenkins了
启动完以后出现如下界面
屏幕快照 2017-09-05 上午10.30.13.png意思就是让你去该路径复制密码填入输入框
/Users/Shared/Jenkins/Home/secrets/initialAdminPassword
访问的时候没有权限的话修改权限为读与写
302189FE-9993-43D3-A84B-554F0295A203.png输入完密码之后跟着它的步骤走就可以设置用户名和密码
接着就进入Jenkins主页面了,点击创建一个新任务->构建一个自由风格的软件项目
接着就进入项目的配置页面,如下:
28673C8D-C166-4606-881A-A68F32BC1DCC.png
点击add,到一个授权的页面,填写格式如下,不在红框的可以不填
195EACF9-0E4F-4E69-8A9B-12CBBF154167.pngPrivate Key 为私钥在电脑的~/.ssh目录下,同时要把公钥添加到仓库网站上,如果没有公私钥,则要先生成公私钥.
屏幕快照 2017-09-05 下午4.52.15.png
接下来我们继续配置信息
195EACF9-0E4F-4E69-8A9B-12CBBF154167.png如果我们要做自动定时打包就需要配置上图中的构建触发器了
Build periodically:周期进行构建
例如:H 19 * * * (每天晚上7点必须构建一次源码)
Poll SCM:有更新就build
例如:*/3 * * * * (每3分钟检查一次源码变化,如果有更新才build)
继续配置下面的信息
屏幕快照 2017-09-06 上午10.36.00.png构建环境
需要配置证书和描述文件
回到主页,在系统管理页面添加插件,选择“Keychains and Provisioning Profiles Management”
然后再进行证书的配置
Keychain路径:/Users/管理员用户名/Library/keychains/login.keychain
把keychain拖拽到按钮位置处即可上传,注意后缀要为keychain,不然会报错
接下来是shell脚本的配置,这里我们需要先安装fastlane
fastlane 安装
sudo gem install -n /usr/local/bin fastlane 安装
fastlane --version 查看版本
fastlane init 进入项目目录进行初始化,会创建一个fastlane的文件夹
项目目录如下:
屏幕快照 2017-09-25 上午11.37.17.pngAppfile:用于存储应用程序标识符和Apple ID 等信息
Fastfile:配置管理 lane 我们打包主要是配置这个文件
Deliverfile:配置应用在 iTunes Connect 中的各种信息,和 ICC 中的数据是一一对应的
metadata:包含应用在 iTunes Connect 中的各种信息
screenshots:包含截图数据
脚本编写
接下来就是相关脚本的编写,我们主要的命令是集中在Fastfile中
首先我们需要创建两个仓库,一个是用来放证书的,一个是用来放代码的
在工程目录下
fastlane match init //会创建一个Matchfile
相关配置如下:
屏幕快照 2017-09-25 下午12.36.38.png
Fastfile脚本命令编写:
匹配证书
屏幕快照 2017-09-25 下午12.41.04.png
如果开发者网站上添加了新的设备,则匹配的时候需要添加force_for_new_devices参数,置为true,就能更新到包含所有UDID的证书
上传测试包到蒲公英
fastlane add_plugin pgyer
fastlane 命令如下图
4743F29C-803B-4839-A2A2-D5300B527BED.png
api_key和user_key需登录蒲公英官网获取,这里如果做的好点,可以弄一套环境把相关变量进行隐藏,后续补上
我们先自己用fastlane打包试一下,看能否正常匹配证书,打包上传,没问题的话,就去Jenkins上配置一下脚本,然后进行构建
脚本命令如下:
//电脑钥匙串解锁,123456为电脑密码
security unlock-keychain -p 123456 login.keychain
//安装项目依赖的所有gem包
bundle install
// 执行fastlane中的develop命令
fastlane develop
参考资料:
https://github.com/fastlane/fastlane
https://www.pgyer.com/doc/view/jenkins_ios
http://www.jianshu.com/p/8e3921416071?utm_source=desktop&utm_medium=timeline