美文网首页
iOS使用Jenkins实现自动化打包

iOS使用Jenkins实现自动化打包

作者: 番茄冰 | 来源:发表于2020-02-16 19:05 被阅读0次

    序言

    在开发大型项目的过程中,会涉及到多位开发人员以及测试人员。如果每次都让开发手动打包,不仅会在沟通上耗费巨大成本,打包本身也会耗费大量时间,造成没必要的资源浪费。而使用自动化打包方案,就可以省去沟通成本,在开发上传代码后,自动触发远程服务器打包,测试人员只需要等待该服务器自动打包完成,进行下载测试即可。这一套工作流程可以省去大量时间,提高工作效率。

    环境配置

    业界常用的自动化打包方案便是使用Jenkins。

    安装JDK

    进入JDK下载地址,下载JDK安装包,注意版本号,选择Java SE 8。

    下载预览
    安装成功
    可以输入以下命令检查状态
    java -version
    
    检查状态

    安装Jenkins

    进入Jenkins下载地址,下载Jenkins安装包。

    安装步骤

    依照图示步骤进行安装

    安装完成

    安装插件

    点击Manage Jenkins 中的Manage Plugins,选择Keychains and Provisioning Profiles Management(负责管理Keychains和证书)、Xcode integration(负责Xcode构建)和Email Extension Template(负责邮件通知)。

    进入插件管理 证书管理插件 xcode编译插件
    邮件插件

    配置Jenkins,关闭跨站点请求伪造

    为了能让Github通知到Jenkins服务器,必须要关闭此项,此项会屏蔽任何的远程API形式的访问。
    进入Jenkins,点击Manage Jenkins里的Configure Global Security。


    进入安全设置

    找到跨站请求伪造保护,取消选中。


    关闭跨站点请求伪造

    配置GitHub通知地址

    进入Github中的项目,点击Settings里的Webhooks,添加webhook,将安装了Jenkins的服务器的地址填入,这样每次项目推送代码后就可以往Jenkins所在的服务器发送通知。

    添加webhook

    地址为

    【Jenkins服务器地址】/github-webhook/
    
    设置Payload URL

    配置Jenkins访问Github的Access Token

    Jenkins想要访问Github上的项目,必须要配置access token。首先打开Github上个人账号的Settings,点击DeveloperSettings,选中Personal access tokens,点击Generate new token。

    生成token

    在Note处填写描述,勾上repo和admin:repo_hook两项。


    配置预览

    将生成的Token保存在合适的地方,一会会用上。


    生成成功

    进入Jenkins,点击Manage Jenkins中的Configure System


    进入系统设置

    添加Github服务器


    设置GitHub服务器
    添加凭据,选择为secret text类型,将Access Token填入。
    添加凭据

    添加后,选中该凭据,点击右侧的测试按钮,如果成功则会显示“Credential verified”。


    测试连接

    添加KeyChains和Provisioning Profile

    选择Manage Jenkins中的Keychains and Provisioning Profile Management,如图


    Keychains选项 上传

    上传keychains文件和Provisioning Profiles文件,文件路径如下

    ~/Library/Keychains/login.keychains
    ~/Library/MobileDevice/Provisioning Profiles/【Provisional Profile文件】
    

    code signing identify填写钥匙串中对应的项目所用到的provisioning profiles的名字

    示例

    创建任务

    新建一个自由项目的任务


    新建任务 选择自由项目

    配置Git


    配置Git

    勾选触发器,此项代表追踪Git源码变更


    触发器
    构建环境勾上Keychains and Code Signing Identities和Mobile Provisioning Profiles
    未勾选时 勾选后

    配置构建步骤
    选择xcode构建方式


    选择xcode

    打开General build settings中的Settings


    General build settings
    填写Configuration和Xcode Schema File。
    设置

    填写ipa的一些设置


    设置ipa的

    打开Advanced Xcode build options


    Advanced Xcode build options 设置workspace的一些参数

    配置构建后步骤
    选中Archive the artifacts和Editable Email Notification。这两步作用分别是在jenkins上生成ipa包下载连接,以及使用E-mail通知。


    选择步骤
    设置存档文件
    点击Advanced Settings

    设置邮件触发器为每次构建成功就往Recipient List中的邮箱地址发送邮件。


    设置邮件触发器

    配置邮件设置
    进入Manage Jenkins中的Configure System,配置JenkinsURL和系统管理员邮件地址


    Configure System 配置系统管理员 配置邮件

    设置为每次成功构建就发邮件。

    设置邮件触发器

    结果验证

    往github上的项目push一次代码,验证结果。
    可以在Jenkins对应项目中的GitHub Hook Log中看到,监测到18:54分的代码推送,自动触发了#27的打包。


    Jenkins自动打包

    构建完成后,邮箱也收到了通知,并且附上了网址。


    邮件通知
    进入该网址,可以看到构建好的#27的BlogSample项目的ipa包,并且也将commit信息附在了上面。
    IPA包下载连接

    总结

    通过这样一套流程,每当程序员将代码推送到指定分支的时候,就可以触发Jenkins的自动打包,当打包完成后,将会发送邮件给测试人员,测试人员就可以通过链接访问Jenkins上对应的构建包,进行测试,省去了很多不必要的沟通成本,从而提高开发效率。

    相关文章

      网友评论

          本文标题:iOS使用Jenkins实现自动化打包

          本文链接:https://www.haomeiwen.com/subject/fybxfhtx.html