iOS使用fastlane自动化打包到fir(最全最详细流程)
- 首先确认是否安装了ruby,终端查看下ruby版本
ruby -v
终端输出:ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin18]
- 确认 Xcode 命令行工具为最新版本:
xcode-select --install
- 检查Fastlane是否安装正确,输入以下命令:
fastlane --version
终端输出:fastlane 2.140.0 (证明已安装,否则需要进行安装操作)
- 安装fastlane
sudo gem install -n /usr/local/bin fastlane
(安装过程中如果提示ruby版本过低,请设置ruby默认版本为最新,成功则输出Successfully installed fastlane-2.140.0)
rvm use 2.4.1 --default
终端输出:Using /Users/xuhuizhan/.rvm/gems/ruby-2.4.1
- ruby重启会恢复回之前版本解决方案:
先查看路径 which ruby
然后在.bash_profile / .zshrc 里面加入ruby的路径
export PATH=/Users/xuhuizhan/.rvm/rubies/ruby-2.4.1/bin:$PATH
- 为项目配置 fastlane
fastlane init
1、 Automate screenshots (自动化截图)
2、 ✈️ Automate beta distribution to TestFlight (将测试版分发自动化到TestFlight)
3、 Automate App Store distribution (自动上传、发布到App Store)
4、 Manual setup - manually setup your project to automate your tasks (手动设置 - 手动设置您的项目以使您的任务自动化)
我们发布到fir/蒲公英这些的话,选择4,后面enter即可
- 安装fir插件
fastlane add_plugin firim
终端输出:Successfully installed plugins
- 如果项目中使用 cocopods 需在Gemfile 文件中添加
gem 'cocoapods'
- 在项目根目录下 fastlane/Fastfile 中编辑内容如下
default_platform(:ios)
platform :ios do
desc "Description of what the lane does"
lane :TestFir do #函数名称,执行打包的时候使用
time = Time.new.strftime("%Y%m%d") #获取时间格式
version = get_version_number#获取版本号
ipaName = "Release_#{version}_#{time}.ipa"
gym(
scheme:"TestFir", #项目名称
export_method:"enterprise",#打包的类型 导出方式 ad-hoc、enterprise、app-store、development
configuration:"Release",#模式,默认Release,还有Debug
output_name:"#{ipaName}",#输出的包名
output_directory:"./build"#输出的位置
)
firim(firim_api_token: "xxx") # token 在fir 上查看。
end
end
- 在该项目目录下,执行命令fastlane TestFir,打包上传成功
fastlane TestFir
成功如下:
+------+--------------------+-------------+
| fastlane summary |
+------+--------------------+-------------+
| Step | Action | Time (in s) |
+------+--------------------+-------------+
| 1 | default_platform | 0 |
| 2 | get_version_number | 0 |
| 3 | gym | 364 |
| 4 | firim | 4 |
+------+--------------------+-------------+
[14:48:24]: fastlane.tools just saved you 6 minutes!
- 去查看fir上面是否有上传成功即可