Mac上(iOS项目)用Jenkins做持续集成(CI)注意事项及总结

注意事项:

1、安装Jenkins一定要从命令行安装(brew install jenkins),切记不要从Jenkins官网直接下载安装。因为后者会默认安装在Mac的Shared目录下,之后会遇到很多访问权限问题。

2、Jenkins默认安装的那些插件其实可以直接跳过,之后自己把需要安装的插件自行安装即可。

3、插件可以在插件管理里边直接一键安装,如果安装慢的话也可以自己去下载Jenkins插件(下载地址:http://updates.jenkins-ci.org/download/plugins/),然后在插件管理高级里边上传,之后重启Jenkins就可以使用了。

4、Manager Jenkins中会有报红的提示,这些可以忽略,只要自己用的那几个插件没问题,就不影响打包。

5、如果Jenkins版本过低想升级的话,可以去下载最新的jenkins.war包,然后将解压后的文件替换如下文件夹中的内容,重启Jenkins,即可完成Jenkins的升级。

6、在编写shell脚本文件时,打出来的包最好放在Jenkins当前workspace的文件夹(如:/Users/[username]/.jenkins/workspace/xxx)中,假如你放到桌面,Jenkins会因为没有访问权限导致打包失败。

7、注意证书、team、配置文件、项目的scheme、Debug/Release等一定要匹配。

8、xcodebuild -exportArchive 命令,也就是从.xcarchive文件导出IPA包的操作,需要一个ExportOptions.plist文件,这个文件从之前用xcode打出来的.xcarchive文件中复制过来就行。

9、项目构建完成后自动发送邮件通知测试人员,如果你想用qq邮箱或者163邮箱去发送邮件,需要登录qq或者163去获取SMTP服务授权码(参考:https://www.jianshu.com/p/c9ae989a7dc8?from=timeline&isappinstalled=0)。我是用的公司邮箱,在Extended E-mail Notification和E-mail Notification中没有勾选Use SMTP Authentication,配置如下,可以给公司内同后缀名的邮箱发送邮件,但不能给qq邮箱或者163邮箱发送:

10、当有新代码提交Git的时候,我们希望Jenkins能够自动构建,而不是自己去手动点击。

方式一:是去配置这个选项,但这种方式需要去GitLab设置webhook URL,如果GitLab权限不够就比较麻烦了。如下:

方式二:这种就比较简单了,设置Poll SCM去轮询,比如每5分钟检查一下是否有代码更新(图中*与*之间需要有空格,否则报错),如果有更新就自动构建,如下:

总结一下用Jenkins做持续集成(CI)的整体流程:

当Git上每次有代码提交时,Jenkins自动触发构建操作打出IPA包,然后组装manifest.plist文件,将IPA包和manifest.plist文件传到公司服务器指定目录,之后,自动发送邮件给所有测试人员。让前端同事帮忙写一个H5页面(只写一次就行了),H5页面的内容就是动态抓取服务器存放的那些IPA包,以列表的形式展示在web页面上,比如页面列表中有一项develop_2019-01-01_xxx,点击的链接应该是这样的:itms-services://?action=download-manifest&url=https://xxx.com/download/ios/app/app1.plist,需要符合苹果的itms协议,并且必须是https(不支持http),然后在iPhone手机上点击链接之后就会提示下载安装。

上边是完全自己公司来做持续集成的整体流程,如果IPA包上传到蒲公英这种三方平台做持续集成,那么就简单了,Jenkins打出IPA包之后,直接上传蒲公英平台,邮件通知测试人员去蒲公英平台下载最新的测试包即可。

manifest.plist文件的获取:

manifest.plist可以从Xcode打包的时候,勾选下面这个选项获得:

manifest.plist中的内容大概是这样的,每次打包组装manifest.plist文件时需要更改里边的属性:

Mac上Jenkins服务的开启和关闭:

1、用安装包安装的Jenkins

     启动jenkins: sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

     停止jenkins:sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

2、用brew安装的的Jenkins

      启动jenkins: brew services start jenkins

      停止jenkins:brew services stop jenkins

      重启Jenkins:brew services restart jenkins

发布了89 篇原创文章 · 获赞 92 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/u013602835/article/details/103364539