iOS-Jenkins + fir.im 持续集成实践

解决问题: push代码-> 测试or 客户 那边就可以获得二维码扫码下载安装

持续集成毫无疑问加快了我们整个产品的效率,代码只需要push到git就会自动打包,让我们更加关注Coding。本文主要讲解 Jenkins + fir.im 方案实践, 从代码到 自动打包为ipa文件。遇到的坑都会一一提到。

基本流程

Jenkins 与 fir.im 作用概要

  • Jenkins的作用是在内部搭建一个服务器, 通过网页web端去配置(和通常的终端去config文件相比更加方便了), 我们可以在其中创建工程, 绑定git仓库(GitLab等都支持的), 就可以实现自动打包的过程。
  • fir.im的作用是上传.ipa文件 自动创建二维码。供测试,客户等下载安装。

把他们的功能结合就是 iOS-Jenkins + fir.im 持续集成实践。当然fir.im也有一个 fir.ci(自动打包), 缺点就是你要暴露自己的代码了。 jenkins的优点是我们可以在内网把源码打包成ipa文件, 二维码过程放到fir.im中。使用fir.im优点是外网可以下载安装, 方便客户等人员的使用。

下面主要介绍安装的步骤

1.安装Jenkins

  • 方式1: 安装Jenkins可以到 jenkins官网 下载pkg文件安装, 缺点是很多的问题, 所以不建议使用这种安装方式。
  • 方式2: 采用 Homebrew 安装

主要步骤:

  1. 安装
$ brew install jenkins
  1. 启动 终端输入 jenkins 服务器就跑起来

看到这一段, 记事本保存密钥备用

Please use the following password to proceed to installation:

cd77621f2db841af9e44e5477915179b(密钥)

2.账户配置

浏览器访问 http://localhost:8080 输入密钥

然后进入选择安装插件页面, 选择安装通用插件(suggetsted plugins)。

进入主操作页面


系统管理中有插件管理可以安装需要的插件 安装 ,两个方式都可以安装管理插件



  • Git Plugin
  • Xcode integration
  • GitHub plugin

3.项目配置-工程名

完成后 新建 -> 自由风格项目

填写项目名字, 最好和git名一致方便对应。
git仓库中的项目配置好证书, 记得添加测试人员的UDID

https://github.com/yuankaigou/TestJenkins.git

<font color=#0099ff size=5 face="黑体">4.项目配置-源码管理</font>

根据需要的选择, 这里我使用的是git,选用git.写入仓库地址就可以了

<font color=#0099ff size=5 face="黑体">5.项目配置-构建触发器</font>

这里就是告诉jenkins什么时候自动构建,这里我同时设置了每周一到周五在每天的8点到9点之间执行一次,当然也可以不设置。

6.项目配置-添加构建步骤

  1. 这里Target请于Xcode项目中Target的名字对应
  2. Clean before build设置为YES
  3. Configuration我选择了Release(在Release的时候Archive)
  4. .ipa filename pattern 随便起个.ipa的名字
  5. Output directory为.ipa的输出路径,我这里设置为 gouyuankai/build/

这个输出路径重要, 一会上传的时候 必须和产出的路径一致, 否则找不到ipa包

7.项目配置-再添加一个构建步骤 -> Xcode证书信息

我这里是在上传至Git的项目里已经配置过证书和Provisioning Profiles。我们电脑中都有钥匙串(keychain)不用去创建这个文件。

  1. 打开Unlock Keychain
  2. Keychain path 设置为 ${HOME}/Library/Keychains/login.keychain
  3. Keychain password 为你钥匙串的密码(就是你钥匙串访问密码=电脑密码)

8.项目配置-构建后操作-执行脚本 -> Xcode证书信息

选择Execute shell 在脚本框command 中输入

fir p ${WORKSPACE}/build/Release-iphoneos/build/gouyuankai/build/TestJenkins.ipa -T #API Token#

其中${WORKSPACE}/build/为4.5中.ipa的输出路径,#API Token#为fir.im的API Token, 一个账户只有一个 官网点击头像就可以获得。新版fir.im获取方式见下面。

请注意,在使用该命令前请先确认安装fir-cli,安装命令如下。

sudo gem install fir-cli --no-ri --no-rdoc

如果安装有ERROR,尝试 sudo gem install -n fir-cli --no-ri --no-rdoc , 或update Ruby版本

上面的命令来自 fir.im 的工具 fir-cli,这是他们的官方使用说明 官方工具 fir-cli 使用说明

保存后点击 立即构建 这个相当于是我们手动构建版本

可以点击小圆点 查看详情, 红色为失败。

9.前往fir.im平台

前往平台, 看看测试应用吧。

可能Bug:关于xcode8.3 Bug解决

xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH

原因: xcode 8.3 没有了PackageApplication文件。但是低版本xcode是有的, 所有找一个低版本的文件考过来就好

PackageApplication: 下载地址

https://pan.baidu.com/s/1jHJF2Lo

放到下面这个目录:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/

然后执行命令

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/

权限修改

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

推荐阅读更多精彩内容