因为是年底所以项目任务重,也因为公司的安排导致每天都要提测好几个版本,在做app的分发测试时打包打的我特别烦躁,因此在周末的时候特意配置了一下自动化打包及发布到firim上(我想很多小伙伴都碰见过这种一天打好几个测试包的情况)。
首先确定一下自己电脑是否配置了Ruby环境或者是不是最近版本,这里我使用Homebrew进行安装的Ruby。
先安装Homebrew,官网地址:https://brew.sh/。执行下面命令即可:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后执行:
brew install ruby
Ruby安装好后就开始正式安装fastlane了。
先附上fastlane官方文档地址:https://docs.fastlane.tools/。
先选择一下电脑中xcode,在命令行中输入:
//不同电脑的路径可能不同使用
xcode-select -p // 打印 Xcode 开发目录
xcode-select --switch /Applications/Xcode.app/Contents/Developer
安装fastlane可以使用两种方式:
1.使用brew cask管理工具对fastlane进行安装
2.sudo gem install fastlane(我使用的是这种)
在安装过程中如果报错:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
执行下面命令即可:
sudo gem install -n /usr/local/bin fastlane
fastlane安装成功后需要在项目根目录中初始化,cd到项目的根目录中执行
fastlane init
出现如下选项选择4(自定义配置)
接下来碰到enter直接回车即可。
初始化成功后项目的根目录中会多出几个文件,如下
切记Gemfile和Gemfile.lock这两个文件生成在哪就放在哪不要手动更改位置!!!
进入fastlane文件夹找到Fastfile文件打开进行编辑,我简单做了一些配置,如果需要更多配置可以去官方文档查看。
注意事项:
在做配置文件时一定要注意gym和(之间不要有空格!!!
在做初始化的时候碰到了一个问题,就是在bundle install这步卡住了,后来我将命令改为:
sudo fastlane init
这样便解决了问题,同时在之后的操作中文件便被加了锁(懒得去一个一个文件解锁),在编辑Fastfile文件时我便直接使用:
sudo vim fastlane/Fastfile
文本编辑完之后效果其实是一样的。
至此自动打包工作已经完成,接下来就是自动上传到firim中。
上传至firim中是需要安装插件(需要在项目的根目录中执行):
fastlane add_plugin firim
//自动上传到fir还需执行如下命令:
gem install fir-cli
执行结束后fastlane文件夹中会是这样:
Pluginfile文件中列出的便是已经安装了那些插件(我只安装了firim):
在Fastfile中加入:
firim(firim_api_token:"firim_token")
firim_token在自己的firim账号中查找:
此时fastlane不出问题的话便配置成功了,接下来就是打包验证了。执行:
fastlane [name] //[name]是配置的action的名字
上传成功后就可以去自己的firim账号中去查看了。
使用fastlane自动化打包很大程度上节约了每天自己打包给测试的时间用起来极其的方便,当然fastlane也支持蒲公英(文档地址:https://www.pgyer.com/doc/view/fastlane),和firim没有什么太大区别只需要配置一下上传到蒲公英即可(安装蒲公英插件:fastlane add_plugin pgyer)。
同时fastlane也支持直接上传到App Store,我没有进行配置,感兴趣的同学可以去官网看一看。
fastlane gym error: Unable to locate Xcode
即可解决!!!
更新一下:
最近重新弄fastlane,之前是手动配置的证书,现在弄自动配置证书所以记录一下Fastfile文件
default_platform(:ios)
platform :ios do
desc "xxx"
lane :dolphinHouse do
outputDir = "~/ipa"
gym(
output_name:"xxx",
scheme:"xxx",
clean:true,
configuration:"Debug",
output_directory: outputDir,
export_xcargs:"-allowProvisioningUpdates",
silent:true,
export_options: {
method:"development"
},
include_bitcode: false,
workspace: "xxx.xcworkspace",
)
firim(firim_api_token:"3de75dcb041b479fe879550567c62566")
# add actions here: https://docs.fastlane.tools/actions
end
end