前言
在日常的开发工作中给测试同学打包测试是很正常的流程,但是每次都通过Xcode archive来生成测试包然后再导出,然后在上传到三方测试网站(蒲公英、fir等),一次两次感觉没有什么。但是一次次重新打包,之后就是全部重复无意义的工作,就会感觉很烦了,于是我想到了用自动化打包来说实现这个工作。
Jenkins是什么?
Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。
1、在macOS上安装Jenkins
在Jenkins官网下载Jenkins安装包。
按照提示安装成功会自动在浏览器打开http://localhost:8080。(如果提示无法连接服务器或者没有自动打开很有可能是java jdk的版本和Jenkins的版本不对应,也可以通过这里进行安装
)。
没有启动成功的话运行下面代码手动启动:
brew services start jenkins
打开Finder前往文件夹
secrets文件夹和initialAdminPassword文件都有权限访问问题,收到手动设置这两个文件everyone读和写然后打开initialAdminPassword文件复制里面密码到该页面点击继续。
也可执行此代码获取密码
sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
设置用户名密码继续。(There were errors checking the update sites: SSLHandshakeException: sun.secu)
接下来就可以看到Jenkins首页了:
安装nodejs插件:
到此为止Jenkins安装就已经完成了。
2、构建一个本地版本的项目
如上面Jenkins首页所示点击新建item创建一个项目:
如上图所示构建一个项目。
构建本地包的话不需要配置远程仓库相关,直接去构建一个shell程序即可:
#!/bin/bash
export LC_ALL=en_US.UTF-8
cd 你的项目路径
fastlane test
这里是分别说一下各个语句的作用:
1)#!/bin/bash
是设置日志内存相关不加这个有可能导致构建失败。
2)export LC_ALL=en_US.UTF-8
设置编码格式相关报invalid byte sequence in US-ASCII错误的时候可以加上。
3)剩下的两个就是利用fastlane自动打包上传的代码这个可以参考我的另一篇文章https://www.jianshu.com/p/0eda1c3b5445。
最后点击应用保存返回到主页。点击开始打包
可以点击这里查看控制台输出:
最后给自己电脑分配一个静态ip、同一个局域网的同事们就可以通过这个ip访问你的主机进行打包啦,这样就省去了每次都需要开发人员手动操作的过程。
- 下载fir插件http://blog.fir.im/jenkins/
遇到的问题
-
scheme shared
这里去你的项目里面-edit scheme--> manage scheme :
把share勾选上即可。
重启Jenkins服务:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
- Operation not permitted
在执行shell脚本的时候出现Operation not permitted
从而不能正常打包的问题,需要关闭MACSIP
服务参考这里关闭。