
PS 文章篇幅过长,请各位看官自行精简浏览
照惯例来聊聊缘由吧,不看此处并不会影响文章阅读质量O(∩_∩)O哈哈~
早有耳闻Jenkins大名,只知其是一款可以高度自定义应付任何项目打包的自动化服务器。
因公司习惯直接插手机build安装(我相信大部分小伙伴都是如此-_-!)和xcodebuilder打包,这种方式在项目初期到还没什么,可项目一旦变得庞大起来,各版本的区别、正式站、测试站、开发模式、生产模式、不同机型等等原因导致咋们的小MBP时刻都在高速运转中。且又因xcode打包极其缓慢,会浪费不少时间。于是便抽了点时间尝试了一下Jenkins的方式,可以说真的是相见恨晚,那感觉怎叫一个爽字了得。同时也希望这篇文章能帮各位成功搭建起来,不足之处,还望指正!
一、Jenkins简介
作为可扩展的自动化服务器,Jenkins 可以用作简单的 持续集成(CI)服务器,或者变成任何项目的持续交付(CD)中心。 它的特点如下:
-
简易安装 Jenkins 是一个基于 Java 的独立程序,可以立即运行,包含 Windows、Mac OS X 和其他类 Unix 操作系统。
-
配置简单 Jenkins 可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。
-
插件 通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。
-
扩展 Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。
-
分布式 Jenkins 可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建、测试和部署。
简而言之,对于咋们iOSer来说,Jenkins就是一个安装简单,通过Git源和服务端xcode构建配置,可轻松实现服务器自动化打包的利器,再也不用苦逼等着xcode在那慢慢的转呀转的,如此优雅的打包方式,你值得拥有!
二、安装Jenkins
由于Jenkins 依赖于Java,所以在安装Jenkins前,需要先检查是否已安装Java环境。 在终端输入命令进行检测:
$ java -version

若没有java环境前往官网下载安装即可JAVA传送门

Jenkins安装方式有两种:
-
安装包方式: 前往Jenkins官网下载.pkg安装包进行安装即可。
-
Homebrew命令行方式: 请确保已安装Homebrew,如未安装可去Homebrew官网,复制命令一键安装 Jenkins安装命令:
$ brew install jenkins
过程快慢视个人网络环境而定,本人下载安装大概10分钟左右(PS: 网络不咋滴)
安装结束后,在终端输入命令:
$ jenkins
启动服务,即可在浏览器中输入http://localhost:8080中进行访问,如下图:

2.1. 依照图中描述在终端输入 cat + 密码路径,获取密码复制下一步。
$ cat
密码路径
2.2.选择安装推荐的插件。

2.3.等待插件安装完成。

2.4.配置完管理员账户,就成功安装完成啦。

三、配置插件
OK,成功安装后,接下来要配置xcode构建的所需环境,需要一款插件Keychains and Provisioning Profiles Management用来管理本地的keychain和iOS证书的插件,可以直接点击链接下载.hpi文件本地上传安装,也可稍后采用搜索的方式安装
3.1.选择Manage JenKins

3.2.选择管理插件

3.3.搜索插件安装或本地上传文件安装

3.4.插件安装完成后回到管理页面进行Keychains and Provisioning Profiles Management配置

3.5.这里需要上传2种文件
- 钥匙串(Keychain)文件:
内含有iOS证书信息,文件路径在
~/Library/Keychains,如图:
将此文件拷贝一份出来,并把后缀-db去掉即可上传。

上传成功后在Code Signing Identity填入证书名称(PS:这里可以填写多个证书名称,一般开发和生产2个就够了)。可在钥匙串中找到证书,直接复制名称进行粘贴,如图:

- iOS描述文件( Provisioning Profile File):
这个就不用多介绍了,可自行去苹果开发者后台配置dev、dis、ad-hoc等描述文件下载下来。然后用同样的方式进行上传,会自动填入相关信息,红框里面填写固定路径
/Users/用户名/Library/MobileDevice/Provisioning Profiles如图:

OK,到这里插件就配置完成了。
四、新建任务
4.1 点击 Jenkins首页 > 新建Item。输入任务名称并选中自由风格工程,下一步。

4.2 在通用选项里可进行一些描述信息填写和构建包丢弃计划(非必要设置),如图:

五、配置Git源
5.1 在源码管理中填写项目Git地址、相关密钥信息(https账户密码或ssh密钥)、指定分支名称。这里我用的SSH点击添加,创建SSH密钥信息

5.2 在下图中填写相关信息,ID保证唯一不重复,密钥信息填入SSH私钥(注意是私钥不是公钥)点击保存。
记得私钥填写包含-----BEGIN OPENSSH PRIVATE KEY-----和-----END OPENSSH PRIVATE KEY-----。
附带私钥查看命令:
$ cat ~/.ssh/id_rsa

六、构建配置
6.1 来到构建选项,先选择添加Execute shell,再选择添加Xcode。因为要通过shell先执行pod install操作,当然如果你没有使用cocoapods或者你直接把第三方库文件都放在git的话可以忽略这一步,直接添加Xcode


6.2 接下来就是配置Xcode构建了,以下配置信息,只是符合博主的需求,不代表完全正确,也不代表适合每个人。 每项后面都有个问号可以展开查看详细描述,建议大家有时间的话可以详细查看,以便达到自己所需要求。




6.3 完成上述配置后,选择构建环境,勾选Keychains and Code Signing Identities和Mobile Provisioning Profiles。选择该任务打包相对应的证书。
重点:这里有个巨坑,如果不在Xcode配置中先解锁的话,这里无论如何都不会显示证书相关信息

OK,到这里就完成了所有相关的基础配置了,回到工程主页,点击Build Now即可开始一次构建任务操作。

在构建的过程中也可以通过查看控制台输出,了解构建当前状态信息或失败日志等。

七、fir自动上传(非必选扩展)
如果你想生成ipa后自动上传至分发平台(fir、蒲公英)等,可配置相关扩展插件。当然这并不是必须的步骤。 这里演示一下fir配置: fir官方-jenkins插件配置传送门

八、总结
呼~ 真是一篇图文并茂的文章呀。相信看完的小伙伴们也很累了把,O(∩_∩)O哈哈~。其实整个过程只是一些较为繁琐的配置信息,等实际操作几次后就会发现还是很简单的。
文中讲了 通用配置-源码管理-构建环境-构建-构建后操作,唯独构建触发器没有讲,触发器这个东西顾名思义,是可以通过某些操作去自动触发这个构建任务的,比如可以设置每20分钟一次构建,或者类似码云也提供了一些webhook触发,假如你在某个分支提交了一次代码后,就自动触发等等。
总的说来Jenkins的确是非常的强大且高度自定义,有效的提高了N倍交付效率。关于它的更多功能和配置,也只有在未来工作中不断学习和尝试寻求一套适合自己或公司的解决方案。
本文是作者自身踩坑的过程,如果能帮助你,感谢给颗小星星。如有不足之处,请指正。
这边我也拉了一个iOS微信群,聊聊技术,互相成长。愿意加入的朋友可以加我微信marcuspayne 备注:加群
感谢以下博主的知识分享 iOS:使用jenkins实现xcode自动打包(最新) Jenkins + GitLab + CocoaPod 的自动打包平台配置(从build到export success)