解决问题: 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
安装
主要步骤:
- 安装
$ brew install jenkins
- 启动 终端输入 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.项目配置-添加构建步骤
- 这里Target请于Xcode项目中Target的名字对应
-
Clean before build
设置为YES -
Configuration
我选择了Release(在Release的时候Archive) -
.ipa filename pattern
随便起个.ipa的名字 -
Output directory
为.ipa的输出路径,我这里设置为 gouyuankai/build/
这个输出路径重要, 一会上传的时候 必须和产出的路径一致, 否则找不到ipa包
7.项目配置-再添加一个构建步骤 -> Xcode证书信息
我这里是在上传至Git的项目里已经配置过证书和Provisioning Profiles。我们电脑中都有钥匙串(keychain)不用去创建这个文件。
- 打开Unlock Keychain
- Keychain path 设置为 ${HOME}/Library/Keychains/login.keychain
- 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