iOS-Mac--利用Jenkins+fastlane+fir实现自动化打包

前言

  在日常的开发工作中给测试同学打包测试是很正常的流程,但是每次都通过Xcode archive来生成测试包然后再导出,然后在上传到三方测试网站(蒲公英、fir等),一次两次感觉没有什么。但是一次次重新打包,之后就是全部重复无意义的工作,就会感觉很烦了,于是我想到了用自动化打包来说实现这个工作。

Jenkins是什么?

  Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。

1、在macOS上安装Jenkins

  在Jenkins官网下载Jenkins安装包。

image.png

image.png

  
  按照提示安装成功会自动在浏览器打开http://localhost:8080。(如果提示无法连接服务器或者没有自动打开很有可能是java jdk的版本和Jenkins的版本不对应,也可以通过这里进行安装
)。
没有启动成功的话运行下面代码手动启动:
brew services start jenkins
image.png

  打开Finder前往文件夹
image.png

  secrets文件夹和initialAdminPassword文件都有权限访问问题,收到手动设置这两个文件everyone读和写然后打开initialAdminPassword文件复制里面密码到该页面点击继续。
也可执行此代码获取密码
sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
  设置用户名密码继续。(There were errors checking the update sites: SSLHandshakeException: sun.secu)
image.png

接下来就可以看到Jenkins首页了:
Jenkins首页

  安装nodejs插件:
首页

插件管理

安装

到此为止Jenkins安装就已经完成了。

2、构建一个本地版本的项目

如上面Jenkins首页所示点击新建item创建一个项目:


创建项目操作图示

如上图所示构建一个项目。
构建本地包的话不需要配置远程仓库相关,直接去构建一个shell程序即可:


构建shell-1

构建shell-2

构建shell-3
#!/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。
最后点击应用保存返回到主页。点击开始打包

打包开始

可以点击这里查看控制台输出:
image.png

最后给自己电脑分配一个静态ip、同一个局域网的同事们就可以通过这个ip访问你的主机进行打包啦,这样就省去了每次都需要开发人员手动操作的过程。

  • 下载fir插件http://blog.fir.im/jenkins/

遇到的问题

  1. scheme shared


    image.png

    这里去你的项目里面-edit scheme--> manage scheme :


    image.png

把share勾选上即可。
重启Jenkins服务:

  sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
  java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
  1. Operation not permitted
    在执行shell脚本的时候出现Operation not permitted从而不能正常打包的问题,需要关闭MACSIP服务参考这里关闭。

你可能感兴趣的:(iOS-Mac--利用Jenkins+fastlane+fir实现自动化打包)