利用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.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://08643.cn/p/8e3921416071?utm_source=desktop&utm_medium=timeline

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容