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

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

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

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

基本流程

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

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 输入密钥

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

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

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

进入主操作页面

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

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

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

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

  • Git Plugin
  • Xcode integration
  • GitHub plugin

3.项目配置-工程名

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

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

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

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

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

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

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

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

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

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

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/

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

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

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

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

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

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

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平台

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

《iOS-Jenkins + 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
    原文作者:YKDog
    原文地址: https://www.jianshu.com/p/4add1b6cfe63
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞