1、背景
一直使用自建CICD流水线,优点自然是灵活可变,当然也有路径依赖。缺点是维护难度较大。接触到fastlane,发现这流程可以有不一样的实现方式。
2、对比
传统的CICD更像是面向过程,一步步的指挥:依赖拉取、编译构建、产物归档、分发方式等步骤,详细的可以看我的另一篇《构建流水线实践》
Fastlane更像是面向对象,简单的方法就可以已完成一系列复杂的过程,更为简洁、高效。
2.1、fastlane介绍
Fastlane 是一个自动化工具,主要用于 iOS 和 Android 应用的构建、测试、部署 和 发布。它简化了繁琐的发布流程,支持自动化处理如 证书管理、构建、打包、上传到 App Store / Google Play 等任务。通过一系列命令行工具和配置文件,开发者可以高效地管理应用的生命周期,节省大量的手动操作时间。
2.2、安装 Fastlane
首先,确保你已经安装了 Ruby,然后使用以下命令安装 Fastlane:
1
sudo gem install fastlane -NV
如果你使用的是 Homebrew,也可以通过它来安装:
1
brew install fastlane
2.3 初始化 Fastlane
在项目根目录中,运行以下命令来初始化 Fastlane 配置:
1
fastlane init
Fastlane 会引导你选择自动化工作流,例如 iOS 或 Android,并创建相应的配置文件(如 Fastfile)。
2.4 配置 Fastfile
在 Fastfile 中,你可以定义多个自动化的 lane,每个 lane 对应一个任务。例如,你可以创建一个用于构建和上传到 App Store 的 lane。
示例 Fastfile 配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
default_platform(:ios)
platform :ios do
desc "自动化构建并上传到 App Store"
lane :beta do
increment_build_number # 自动增加构建号
build_app(scheme: "MyApp") # 构建应用
upload_to_testflight # 上传到 TestFlight
end
desc "发布到 App Store"
lane :release do
increment_build_number
build_app(scheme: "MyApp")
upload_to_app_store # 上传到 App Store
end
end
解释:
increment_build_number:自动增加构建号。build_app:构建应用程序。upload_to_testflight:将构建上传到 TestFlight(可用于 beta 测试)。upload_to_app_store:将构建上传到 App Store。
2.5 执行 Fastlane
你可以通过运行相应的 lane 来执行这些自动化任务:
执行 beta 流程:
1
fastlane ios beta
执行 release 流程:
1
fastlane ios release
Fastlane 会按照 Fastfile 中定义的步骤,自动完成构建、上传、版本管理等工作。
2.6 集成到 CI/CD
你可以将 Fastlane 集成到持续集成(CI)工具中,例如 Jenkins、GitLab CI 或 GitHub Actions,以自动化整个构建和发布过程。
示例 GitHub Actions 配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
name: iOS Build and Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
- name: Install dependencies
run: |
gem install fastlane
fastlane install_dependencies
- name: Run Fastlane beta lane
run: fastlane ios beta
2.6 常用命令
- 初始化 Fastlane:
fastlane init - 运行指定 lane:
fastlane ios <lane_name> - 自动化测试:
fastlane test - 上传到 TestFlight:
fastlane ios beta - 上传到 App Store:
fastlane ios release
2.7 常见问题和解决
- 证书问题:确保已经配置好开发证书和描述文件,Fastlane 会自动管理这些证书。
- 权限问题:确保 Fastlane 有权限访问你的 macOS 或 CI 系统的 Keychain 和应用程序包。
3.总结
Fastlane 通过 Fastfile 配置自动化任务,从构建到发布,简化了 iOS 和 Android 应用的发布流程。它特别适用于 CI/CD 环境,能够显著提高开发和发布的效率。
如果你有更多需求或问题,Fastlane 官方文档提供了更详细的教程:Fastlane Documentation。