ios jenkins配置_蒲公英 - 文档中心 - 使用 Jenkins 实现持续集成 (iOS)

本文将教会你:

利用 Jenkins 和 fastlane 实现 iOS 项目的自动构建

自动打包 iOS 的 ipa 文件并自动上传到蒲公英

注:本文的操作环境在 Mac OS 10.12 中进行。Jenkins 的版本是 2.19.1,fastlane 的版本是 2.28.2

安装 fastlane

fastlane 是一个快速将 iOS 项目打包成 ipa 文件的工具。要安装 fastlane,请参考 fastlane 在 Github 上的的官方文档,这里我们不再赘述。

安装 Jenkins

在 Mac 环境下,我们需要先安装 JDK,然后在 Jenkins 的官网 下载最新的 war 包。下载完成后,打开终端,进入到 war 包所在目录,执行以下命令:

java -jar jenkins.war --httpPort=8080

待Jenkins启动后,在浏览器页面输入以下地址:

http://localhost:8080

这样就打开Jenkins管理页面了。

注意:使用其他方式安装的 Jenkins 可能导致后续步骤失败,请确认使用我们推荐的方式来安装 Jenkins。

自动化构建设置

在 Jenkins 中,所有的任务都是以“item”为单位的。接下来我们就新建一个 iOS 的项目来开始自动化构建。点击“新建”,输入 item 的名称,选择“构建一个自由风格的软件项目”,然后点击“OK”。

然后按下图设置构建信息:

源码管理:

这里主要是设置源码的仓库,以便让 Jenkins 知道我们的 iOS 项目的代码在哪里。因为我的代码放在自己搭建的 GitLab 仓库中(如果你用 Github 等其他仓库也是类似),所以要先告诉 Jenkins 如何获取代码。首先,我们需要配置 SSH,我们可以在 Jenkins 的证书管理中添加 SSH。在 Jenkins 管理页面,选择“Credentials”,然后选择“Global credentials (unrestricted)”,点击“Add Credentials”,如下图所示,我们填写自己的 SSH 信息,然后点击“Save”,这样就把 SSH 添加到 Jenkins 的全局域中去了。

接下来,我们再回到刚刚新建的任务中,在源码管理中,选择 Git,按下图填好相关信息。注意:Credentials 不需要选择。

构建触发器设置

因为此教程不涉及自动测试这块的流程,所以不需要设置触发器。

构建环境设置

这里我们是直接用 fastlane 这个工具,所以这里不需要特别设置。fastlane 会自动读取本地 iOS 项目中设置的签名等信息,所以需要保证本地 iOS 工程已经设置好了正确的签名信息和 Provisioning Profiles 等文件,并在 keychain 中已经加入了正确的证书。否则后续的操作中可能会出现错误。如果这里没有设置好,请用 Xcode 打包工程进行相关设置即可。

脚本设置

这一步主要用来打包 ipa 并上传到蒲公英。我们点击“增加构建步骤”,选择 "Execute Shell"。输入下列脚本:

IPANAME="jinkens-myapp"

fastlane gym --export_method ad-hoc --output_name ${IPANAME}

curl -F "file=@${IPANAME}.ipa" -F "uKey=USER_KEY" -F "_api_key=API_KEY" https://qiniu-storage.pgyer.com/apiv1/app/upload

注意:

其中,USER_KEY 和 API_KEY 可以在蒲公英的「账户设置」中找到,之后进行相应替换。

export_method 可以根据打包类型进行相应设置。可选的值有:app-store、ad-hoc、development、enterprise。对于 Xcode 8.3 以下的版本,则不需要设置 export_method。

设置好之后,类似界面如下所示:

最后点击最下面的 Save 按钮来保存所有设置。这样我们就简单的实现了自动打包,并上传到蒲公英的所有配置了。

接下来,我们可以测试一下。点击项目页面左侧的 Build Now,我们可以看到项目已经开始构建。在 Console Output 中,我们可以看到项目已经成功构建,并自动上传到了蒲公英。

Started by user root

Building in workspace /Users/rexshi/.jenkins/workspace/monitor

> git rev-parse --is-inside-work-tree # timeout=10

Fetching changes from the remote Git repository

> git config remote.origin.url http://git.xxx.com/root/monitor.git # timeout=10

.......

[15:03:28]: $ xcodebuild -list -project ./monitor.xcodeproj

[15:03:30]: $ xcodebuild clean -showBuildSettings -scheme monitor -project ./monitor.xcodeproj

[15:03:32]: Building monitor/monitor [Release]

[15:03:32]: Check Dependencies

[15:03:32]: Compiling AppDelegate.m

[15:03:33]: Compiling main.m

[15:03:38]: Touching monitor.app

......

[15:03:41]: Successfully exported and compressed dSYM file

[15:03:41]: Successfully exported and signed the ipa file:

[15:03:41]: /Users/rexshi/.jenkins/workspace/monitor/jinkens-myapp.ipa

+ curl -F file=@jinkens-myapp.ipa -F uKey=4a5bc52e6763795e18b69bd82dd23xxx -F _api_key=7f158b3d9063c73cd68f0ee40215xxxx https://qiniu-storage.pgyer.com/apiv1/app/upload

{"code":0,"message":"","data":{"appKey":"602979def164c47b9570f17656a4fxxxx","userKey":"4a5bc52e6763795e18b69bd82dd23xxx","appType":"1","appIsLastest":"1"

......

Finished: SUCCESS

使用 jenkins 插件上传 apk 到蒲公英点击查看使用方法

进阶用法

如果你只是想满足基本都持续集成,那么看到这里就可以了。但是,如果你想有一些更丰富的定制化功能,可以继续往下看。

上传到蒲公英时设置更新说明、访问密码

这里,假如我们想让 ipa 文件上传到蒲公英后,将 git 上最后一次提交的注释设置为蒲公英的更新说明,并且设置访问密码为 123456,那么可以将上面最后一步时的 shell 程序改成这样:

IPANAME="jinkens-myapp"

fastlane gym --export_method ad-hoc --output_name ${IPANAME}

MSG=`git log -1 --pretty=%B`

PASSWORD=123456

curl -F "file=@${IPANAME}.ipa" -F "uKey=USER_KEY" -F "_api_key=API_KEY" -F "updateDescription=${MSG}" -F "password=${PASSWORD}" https://qiniu-storage.pgyer.com/apiv1/app/upload

ipa 文件上传到蒲公英后通知其他人

如果开发者想让 jenkins 打包并上传 ipa 文件到蒲公英后,自动通知其他人(常用于通知 App 相关的测试者),那么可以利用蒲公英的通知功能。蒲公英本身已经支持了邮件通知、短信通知、微信通知。具体设置方法可以点击这里查看:接收应用更新通知

常见问题

出现 fastlane: command not found 怎么办?

解决方法一:这个情况一般是由于 jenkins 没有设置正确的 $PATH 环境变量导致的。正确设置的方法为:

在命令行下执行 echo $PATH,记录下输出的结果

在 jenkins 中系统管理-系统设置中,找到 环境变量(Environment variables)

在 key 中填写 PATH,在 value 中填写第一步中输出的结果

保存即可。

解决方法二:请确认您安装 Jenkins 的方式和我们在本文里推荐的方式一致。使用其他方式安装的 Jenkins 也经常会出现此问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值