iOS使用fastlane自动化打包到fir(最全最详细流程)

时间:2021-07-06 18:07:31

# iOS使用fastlane自动化打包到fir(最全最详细流程)
1. **首先确认是否安装了ruby,终端查看下ruby版本**
> ruby -v
终端输出:ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin18]

2. **确认 Xcode 命令行工具为最新版本:**
> xcode-select --install

3. **检查Fastlane是否安装正确,输入以下命令:**
> fastlane --version
终端输出:fastlane 2.140.0 (证明已安装,否则需要进行安装操作)

4. **安装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

5. **ruby重启会恢复回之前版本解决方案:**
> 先查看路径 which ruby
> 然后在.bash_profile / .zshrc 里面加入ruby的路径
> export PATH=/Users/xuhuizhan/.rvm/rubies/ruby-2.4.1/bin:$PATH

6. **为项目配置 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即可

7. **安装fir插件**
> fastlane add_plugin firim
终端输出:Successfully installed plugins

8. **如果项目中使用 cocopods 需在Gemfile 文件中添加**
> gem ‘cocoapods‘

9. **在项目根目录下 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
```

10. **在该项目目录下,执行命令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! ??
```

11. **去查看fir上面是否有上传成功即可**