序言
在开发大型项目的过程中,会涉及到多位开发人员以及测试人员。如果每次都让开发手动打包,不仅会在沟通上耗费巨大成本,打包本身也会耗费大量时间,造成没必要的资源浪费。而使用自动化打包方案,就可以省去沟通成本,在开发上传代码后,自动触发远程服务器打包,测试人员只需要等待该服务器自动打包完成,进行下载测试即可。这一套工作流程可以省去大量时间,提高工作效率。
环境配置
业界常用的自动化打包方案便是使用Jenkins。
安装JDK
进入JDK下载地址,下载JDK安装包,注意版本号,选择Java SE 8。
![](https://img.haomeiwen.com/i1345254/887372e3198b0c4d.png)
![](https://img.haomeiwen.com/i1345254/60e8d1ff5f6a0880.png)
可以输入以下命令检查状态
java -version
![](https://img.haomeiwen.com/i1345254/91b224473ab8cbb6.png)
安装Jenkins
进入Jenkins下载地址,下载Jenkins安装包。
![](https://img.haomeiwen.com/i1345254/f40153bdd9a3b6b2.png)
依照图示步骤进行安装
![](https://img.haomeiwen.com/i1345254/dfcf15cd46795969.png)
安装插件
点击Manage Jenkins 中的Manage Plugins,选择Keychains and Provisioning Profiles Management(负责管理Keychains和证书)、Xcode integration(负责Xcode构建)和Email Extension Template(负责邮件通知)。
![](https://img.haomeiwen.com/i1345254/79786c06600d29cb.png)
![](https://img.haomeiwen.com/i1345254/fbd0dbb5e8368d6a.png)
![](https://img.haomeiwen.com/i1345254/2c0ee1434f4f8c46.png)
![](https://img.haomeiwen.com/i1345254/20b7cfc6938e56b3.png)
配置Jenkins,关闭跨站点请求伪造
为了能让Github通知到Jenkins服务器,必须要关闭此项,此项会屏蔽任何的远程API形式的访问。
进入Jenkins,点击Manage Jenkins里的Configure Global Security。
![](https://img.haomeiwen.com/i1345254/8ffc32dcfa4ad20a.png)
找到跨站请求伪造保护,取消选中。
![](https://img.haomeiwen.com/i1345254/225d06e8f7ea13f1.png)
配置GitHub通知地址
进入Github中的项目,点击Settings里的Webhooks,添加webhook,将安装了Jenkins的服务器的地址填入,这样每次项目推送代码后就可以往Jenkins所在的服务器发送通知。
![](https://img.haomeiwen.com/i1345254/c0e71b0356bed37e.png)
地址为
【Jenkins服务器地址】/github-webhook/
![](https://img.haomeiwen.com/i1345254/f2d5189ebef838de.png)
配置Jenkins访问Github的Access Token
Jenkins想要访问Github上的项目,必须要配置access token。首先打开Github上个人账号的Settings,点击DeveloperSettings,选中Personal access tokens,点击Generate new token。
![](https://img.haomeiwen.com/i1345254/bb10b2a712e777c0.png)
在Note处填写描述,勾上repo和admin:repo_hook两项。
![](https://img.haomeiwen.com/i1345254/4761e96ab8cc5068.png)
将生成的Token保存在合适的地方,一会会用上。
![](https://img.haomeiwen.com/i1345254/93aaaa2f673fb202.png)
进入Jenkins,点击Manage Jenkins中的Configure System
![](https://img.haomeiwen.com/i1345254/5fae5061be580663.png)
添加Github服务器
![](https://img.haomeiwen.com/i1345254/8cd2957fe23c5c34.png)
添加凭据,选择为secret text类型,将Access Token填入。
![](https://img.haomeiwen.com/i1345254/583fd751d94efb05.png)
添加后,选中该凭据,点击右侧的测试按钮,如果成功则会显示“Credential verified”。
![](https://img.haomeiwen.com/i1345254/69ef3c71fad303a5.png)
添加KeyChains和Provisioning Profile
选择Manage Jenkins中的Keychains and Provisioning Profile Management,如图
![](https://img.haomeiwen.com/i1345254/ccd74ee74fb6980a.png)
![](https://img.haomeiwen.com/i1345254/a5bb41abbe1ab6ed.png)
上传keychains文件和Provisioning Profiles文件,文件路径如下
~/Library/Keychains/login.keychains
~/Library/MobileDevice/Provisioning Profiles/【Provisional Profile文件】
code signing identify填写钥匙串中对应的项目所用到的provisioning profiles的名字
![](https://img.haomeiwen.com/i1345254/19b727939ae5af89.png)
创建任务
新建一个自由项目的任务
![](https://img.haomeiwen.com/i1345254/3a040679530a764a.png)
![](https://img.haomeiwen.com/i1345254/add5ff022cb319e8.png)
配置Git
![](https://img.haomeiwen.com/i1345254/ed2aea0045f64d6d.png)
勾选触发器,此项代表追踪Git源码变更
![](https://img.haomeiwen.com/i1345254/e03af90651c07797.png)
构建环境勾上Keychains and Code Signing Identities和Mobile Provisioning Profiles
![](https://img.haomeiwen.com/i1345254/ba572d219d4748f2.png)
![](https://img.haomeiwen.com/i1345254/22c3059310b28dbb.png)
配置构建步骤
选择xcode构建方式
![](https://img.haomeiwen.com/i1345254/004184336c89d699.png)
打开General build settings中的Settings
![](https://img.haomeiwen.com/i1345254/bfe2864032bf4aa6.png)
填写Configuration和Xcode Schema File。
![](https://img.haomeiwen.com/i1345254/7b35bfa3cdac732c.png)
填写ipa的一些设置
![](https://img.haomeiwen.com/i1345254/75ba8c844f24f467.png)
打开Advanced Xcode build options
![](https://img.haomeiwen.com/i1345254/f6adb9fafb9c3522.png)
![](https://img.haomeiwen.com/i1345254/e0de6d13ec2ceb83.png)
配置构建后步骤
选中Archive the artifacts和Editable Email Notification。这两步作用分别是在jenkins上生成ipa包下载连接,以及使用E-mail通知。
![](https://img.haomeiwen.com/i1345254/300b60bd95c4115b.png)
![](https://img.haomeiwen.com/i1345254/3962e5f493226627.png)
![](https://img.haomeiwen.com/i1345254/b02534985d204e98.png)
设置邮件触发器为每次构建成功就往Recipient List中的邮箱地址发送邮件。
![](https://img.haomeiwen.com/i1345254/23e1881e29925dc4.png)
配置邮件设置
进入Manage Jenkins中的Configure System,配置JenkinsURL和系统管理员邮件地址
![](https://img.haomeiwen.com/i1345254/b43f05845146ecf3.png)
![](https://img.haomeiwen.com/i1345254/86db8718cbbbe4c6.png)
![](https://img.haomeiwen.com/i1345254/b78cd33cbbba4176.png)
设置为每次成功构建就发邮件。
![](https://img.haomeiwen.com/i1345254/014e06a75259d1dc.png)
结果验证
往github上的项目push一次代码,验证结果。
可以在Jenkins对应项目中的GitHub Hook Log中看到,监测到18:54分的代码推送,自动触发了#27的打包。
![](https://img.haomeiwen.com/i1345254/857b8ca2db49d011.png)
构建完成后,邮箱也收到了通知,并且附上了网址。
![](https://img.haomeiwen.com/i1345254/ed8abb3856fc5e65.png)
进入该网址,可以看到构建好的#27的BlogSample项目的ipa包,并且也将commit信息附在了上面。
![](https://img.haomeiwen.com/i1345254/d10a8fabec7cd49f.png)
总结
通过这样一套流程,每当程序员将代码推送到指定分支的时候,就可以触发Jenkins的自动打包,当打包完成后,将会发送邮件给测试人员,测试人员就可以通过链接访问Jenkins上对应的构建包,进行测试,省去了很多不必要的沟通成本,从而提高开发效率。
网友评论