iOS项目持续集成:jenkins+Github+蒲公英

what is CI(Continuous integration)?

      持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

what are the advantages?

      减少风险

      减少重复工作

      任何时间、地点生成可部署的软件

—-Baidu

let’s do it

      持续集成工具很多,我用的是jenkins,成熟稳定,由于公司使用的Gitlab托管代码,过几天考虑将Gitlab升级后,使用它的持续集成,据同事说简单友好,当然等我偷来同事的研究成果,再来与大家分享。。。

step0:安装JDK

jenkins是需要JDK环境的,下载JDK,直接安装即可
官网下载
iOS项目持续集成:jenkins+Github+蒲公英_第1张图片

step1:安装jenkins

官网下载war包
下载时注意,点击箭头所示的按钮即可,不需要下载Mac OS X的安装文件,否则下载的不是war包,而是pkg安装文件。
iOS项目持续集成:jenkins+Github+蒲公英_第2张图片

下载完成后,打开终端,cd到war包所在目录,执行:

java -jar jenkins.war --httpPort=8888

iOS项目持续集成:jenkins+Github+蒲公英_第3张图片
当终端执行完毕,出现上图所示时,jenkins已经启动了,在浏览器输入下面地址打开jenkins:

http://localhost:8888

httpPort是端口号,可以自己设置,注意不要与其他冲突,例如8080,很多应用的默认端口号就是8080,像charles

step2:配置jenkins

选择“系统管理”->”管理插件”,在“可选插件”中选择安装以下插件:

1、GitLab Plugin

2、Gitlab Hook Plugin

3、Xcode integration

4、Credentials Plugin

5、Keychains and Provisioning Profiles Management

6、Publish over FTP

7、Post-Build Script Plug-in

有些可能已经安装了,就不需要选择了,然后点击“直接安装”,并在之后的进度页面,选择“安装完成后重启jenkins(空闲时)”,当一切搞定,并重启jenkins之后,配置就成功了。

这里需要注意,插件有可能安装不成功,一般安装不成功有如下几种情况:

Error 1:墙的问题,log提示下载失败:

解决方式:、或者 “系统管理”—”管理插件”—”高级”—”升级站点”里面更改源

Error 2:依赖包问题,log如下:

Pipeline: Stage View Plugin version 2.10
momentjs v1.1 is missing. To fix, install v1.1 or later.
jquery-detached v1.2.1 is missing. To fix, install v1.2.1 or later.
handlebars v1.1 is missing. To fix, install v1.1 or later.
workflow-job v2.0 is missing. To fix, install v2.0 or later.
pipeline-rest-api v2.10 is missing. To fix, install v2.10 or later.
解决方式:安装顺序将log中所需的依赖先安装上

Error 3:未知问题,log如下:

Failed to install Upload to pgyer java.io.IOException:
Downloaded file /Users/zhangxiaoqiang/.jenkins/plugins/upload-pgyer.jpi.tmp does not match expected SHA-1, expected ‘2KMbwAAAPOYEX7/KON5uJcSk+2M=’, actual ‘2jmj7l5rSw0yVb/vlWAYkK/YBwk=’
目前的解决方式是 手动安装插件,插件下载地址https://plugins.jenkins.io
将下载的插件手动导入”系统管理”—”管理插件”—”高级”—”上传插件”

step3:开始自动化构建

iOS项目持续集成:jenkins+Github+蒲公英_第4张图片
点击“OK”,进入配置界面,具体配置有图为证:
第一处:基本信息(每一处配置完,“保存”一下
iOS项目持续集成:jenkins+Github+蒲公英_第5张图片
第二处:源码管理
iOS项目持续集成:jenkins+Github+蒲公英_第6张图片
我填写的是自己Github上的一个示例的地址
第三处:构建环境

iOS打包需要签名文件和证书,所以这部分我们勾选“Keychains and Code Signing Identities”和“Mobile Provisioning Profiles”

这里我们又需要用到Jenkins的插件,在”系统管理”页面,选择“Keychains and Provisioning Profiles Management”。

点击“浏览”按钮,上传keychain和项目用的打包证书.mobileprovision。

签名文件好找。keychain的路径在如下路径中:

/Users/<USERNAME>/Library/Keychains/login.keychain

将login.keychain复制到任意文件夹下上传即可

注意:Mac 10.12之后,找不到login.keychain,同文件夹下会有个login.keychain-db,拷贝出来改名为login.keychain即可

上传成功后,先写password(mac当前账户的登录密码),然后为keychain指明签名文件的名称。点击“Add Code Signing Identity”。

再为Provisioning Profiles配置签名文件所在的路径,一般路径为:

/Users/<USERNAME>/Library/MobileDevice/Provisioning Profiles

最后添加成功后如下图所示

iOS项目持续集成:jenkins+Github+蒲公英_第7张图片

证书和签名文件配置到jenkins中了,接下来需要配置到jenkins中新建的项目中,在项目的“配置”中:
iOS项目持续集成:jenkins+Github+蒲公英_第8张图片

Variables这一项其实不可编辑,所以填完上面几项,不用管,保存即可,之后构建过后,这里会自动填上的

第四处:Xcode配置

点击“增加构建步骤”,选择“Xcode”,继续配置:

Target:指的是你github中项目的target
这里写图片描述

点击“Settings…”

iOS项目持续集成:jenkins+Github+蒲公英_第9张图片

点击“Advanced build settings…”

iOS项目持续集成:jenkins+Github+蒲公英_第10张图片
另外像有些选项,比如Xcode Workspace File只要当项目中使用了cocoa pods,存在.xcworkspace时需要填的,这些需要自己定夺。

第五处:上传蒲公英和发送邮件通知

点击“增加构建后操作步骤”,选择“Execute a set of scripts”

iOS项目持续集成:jenkins+Github+蒲公英_第11张图片

结语:

      OK,现在点击jenkins中对于项目的“立即构建”,我们可以看到进度,点击右侧的三角,选择“console output”,可以看控制台的信息,如果报错,可以根据打印,做出调整。我在构建的时候也出现不少错误,没有写到文章中,如果大家出现问题,,欢迎提问。

相关的python脚本地址

关于持续集成后续还会写相关文章,敬请关注!!!

你可能感兴趣的:(iOS,CI,自动化,持续集成,jenkins,蒲公英)