利用Jenkins持续集成iOS项目

2017-09-25  本文已影响0人  星星点灯0_0

简介

一般的小公司可能测试要求没那么严格,打包也不会那么严格,但是对于大公司,并且测试人员众多,打包频繁的话,打包测试就成了一件很耗费时间的事,而且打包环境可能会有测试,预生产,生产等环境,打包的时候如果再去配置这些环境的话也很容易出错,所以部署自动化会为我们节省很多时间,也能减少一些不必要的问题出现.

过程

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.28.04.png

启动完以后出现如下界面

屏幕快照 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.png

Private 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”
然后再进行证书的配置

62B317F1C7D2B755EFA8EF4EA7A95E81.png C8EAA000-3BD8-487F-BECA-F23215A56273.png
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.png
Appfile:用于存储应用程序标识符和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

上一篇下一篇

猜你喜欢

热点阅读