自动化打包根本目的是为了节约时间,把重复且无技术含量的事情交给机器去做。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。这里主要使用的功能:
打通各个环节: gitLab + iOS证书 + Xcode + fastlane + fir
持续、自动地构建/测试软件项目
个人搭建总结: 遇到奇怪的解决不了的问题就重启电脑 ! ! !
安装参考文章: https://www.jianshu.com/p/79429cc0efbc
下载在用户目录下
下载在共享目录下: 打包时会有很多权限问题. 解决办法:
在shell 执行:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
这种方式打开的Jenkins在自动化打包时,不能关闭运行Java环境的终端
参考文章:https://www.jianshu.com/p/69b544d2a9d1
二、 Jenkins配置
1. 设置管理员 系统管理 -> 全局安全配置
2. 安装插件 系统管理 -> 插件管理
Keychains and Provisioning Profiles Management(管理本地的keychain和iOS证书的插件)
GitLab 和 Gitlab Hook (项目源码管理)
Xcode integration (用于xcode构建)
3. 证书配置
3.1 获取钥匙串: 终端输入 open ~/Library/Keychains, 将 login.keychain-db 拷贝到桌面, 删除”-db"
3.2 上传login.keychain 和 Provisioning Profiles
重复步骤 1, 2, 选择对应的Provisioning Profiles文件上传
Provisioning Profiles Directory Path 填写: /Users/用户名/Library/MobileDevice/Provisioning Profiles
4. 创建项目
4.1 项目地址和添加ssh
4.2 如果需要多target打包
BUILDTYPE可以在shell里通过 ${BUILDTYPE} 获取
4.3 证书选择
4.4 构建步骤
在shell中可以使用fastlane 进行打包,这里papaForfir.sh中执行了fastlane ,
${BUILDTYPE} 获取了参数化构建选择的值,在papaForfir.sh 有相应的判断,选择相应的target 进行打包
在.sh文件中的判断 $1 表示shell 中输入的值
4.5 配置完成后点击 Build with Parameters 就会有build 选项
构建完成后,进入控制台,点击链接或者进入fir官网个人中心就能查看二维码下载界面
在fastlane中指定输出的文件夹中也有ipa包
三、 部分报错解决
fastlane: command not found 解决:在插件管理下载RVM,然后在项目配置中的构建环境下勾选 Run the build in a RVM-managed environment ,填上ruby 的版本
参考文章
iOS持续集成:Jenkins+GitLab+蒲公英: https://www.jianshu.com/p/3b43776ed73f
fastlane安装
sudo gem install fastlane -NV
参考文章: iOS自动打包—Fastlane安装 https://blog.csdn.net/boyqicheng/article/details/82620784