(Mac)iOS自动化打包(Jenkins+xcodebuild+fir)
环境
| 名称 | 版本 |
| — | — | — |
| macOS | 10.14.4 (18E226) |
| Xcode | Version 10.2.1 |
| ruby | 2.6.3 |
| fir-cli | 1.7.1 |
下载安装Jenkins
- Jenkins是基于Java环境的,所以电脑上必须先安装Java,Jenkins官网(https://jenkins.io)
- 下载安装Jenkins。具体安装过程可参考 Mac Jenkins搭建
- 安装完成后会自动打开http://localhost:8080这个网址,如果没有自动打开可以手动打开。有些教程还有添加
Xcode integration
、Keychains and Provisioning Profiles Plugin
之类插件的步骤,我们不需要。因为我们是用xcode脚本构建,所以不需要安装任何插件。
新建任务
构建一个自由风格的软件项目
点击左侧菜单中的新建任务,然后在新的界面输入项目名字,选择构建一个自由风格的软件项目
选项完成创建
填写工程相关介绍
源码管理
源码管理,使用github选择git
构建触发器
- 选择Build periodically,输入: 周期性的执行编译任务,强制每天凌晨两点构建一次
1
H 2 * * *
选择Poll SCM,输入
1
H/5 * * * *
表示的就是每5分钟检查一次源码变化。
第一个参数代表的是分钟 minute,取值 0~59; 第二个参数代表的是小时 hour,取值 0~23; 第三个参数代表的是天 day,取值 1~31; 第四个参数代表的是月 month,取值 1~12; 最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
构建环境
通过xcodebuild
脚本的方式构建,这里不用做任何设置。
构建
重点来了。
点击“添加构建步骤”,选择Execute shell。
1 | #!/bin/sh +x |
说明:
-archivePath:.xcarchive文件的存放路径。
-exportPath:导出文件的路径。Export文件夹是自己建的。
-ExportOptions.plist:这个文件的内容其实是ipa的打包信息。手动archive并export时,这个文件就包含在最终输出的文件夹内,可以copy一份出来使用。
-configuration :默认Debug或Release。
这里有个坑要说明一下。archive和ipa文件的导出目录最好位于Jenkins用户下的那个工程中,我之前选择的是导出到当前用户的桌面,结果一直报读写权限的问题。
上传到fir
要实现自动上传到fir,要先安装fir-cli
fir-cli由ruby实现,所以先安装ruby
安装ruby,ruby官网安装文档(我使用了brew安装)
1
2
3
4
5
6
7
8
9
10
11
12
13
brew install ruby
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
ruby -v
which -a ruby安装fir-cli。要实现自动上传到fir,要先安装fir-cli。Github: fir-cli
1
gem install -n /usr/local/bin fir-cli
fir token查看方法:
脚本
1
fir publish /Users/vic/.jenkins/workspace/jike-iOS/Export/Ruguo/Ruguo.ipa -T 4554bab16fc50b5b8ee20d9663fa64c7 --password=jikebeta