做技术起步就是要做做笔记
今天是第一天,以后一天一篇笔记,既是监督自己学习也是加深自己的记忆
CICD移动端流水线
什么是fastline
Fastlane 是一个强大的 iOS 和 Android 应用自动化工具集,它可以将复杂的应用发布流程自动化,让开发者专注于代码而不是繁琐的构建和发布过程。
fastline核心功能
- 🚀 自动化构建 - 自动编译应用
- 🧪 自动化测试 - 运行单元测试和 UI 测试
- 📱 自动化发布 - 上传到 App Store、TestFlight、Google Play
- 🔐 代码签名 - 自动管理证书和配置文件
- 📸 截图生成 - 自动生成多语言截图
- 元数据管理 - 管理应用描述、关键词等
如何使用fastline,以IOS的APP为例
两种初始化方法
# 安装Fastlane
sudo gem install fastlane
# 或者使用bundler(推荐用于项目)
gem install bundler
两种方式区别
| 方面 | sudo gem install fastlane | gem install bundler |
|---|---|---|
| 安装范围 | 全局安装 Fastlane | 全局安装 Bundler |
| 权限要求 | 需要 sudo | 用户权限即可 |
| 版本管理 | 固定版本 | 灵活版本控制 |
| 团队协作 | 容易冲突 | 版本一致 |
| 安全性 | 权限过高 | 更安全 |
| 适用场景 | 个人快速开发 | 团队生产开发 |
进入ios项目的目录
cd /path/to/your/ios/project
初始化fastline
bundle exec fastlane init
初始化过程说明
运行fastlane init后,Fastlane会:
-
检测项目类型:自动识别是iOS还是Android项目
-
创建目录结构:
text
fastlane/
├── Appfile # 应用配置
├── Fastfile # 主要脚本文件
└── metadata/ # App Store元数据
-
询问配置信息:
-
App Identifier(Bundle ID)
-
Apple ID
-
是否使用App Store Connect API
-
是否使用Match进行代码签名
4. 基本配置示例
Appfile配置:
app_identifier("com.yourcompany.yourapp")
apple_id("your-apple-id@example.com")
itc_team_id("123456789")
team_id("ABCD123456")
Fastfile基本结构:
# Fastfile
default_platform(:ios)
platform :ios do
desc "Description of what the lane does"
lane :custom_lane do
# add actions here: https://docs.fastlane.tools/actions
end
end
┌─────────────────────────────────────────┐
│ Bundle │
│ ┌─────────────────────────────────────┐│
│ │ Gem 1 ││
│ │ (fastlane) ││
│ └─────────────────────────────────────┘│
│ ┌─────────────────────────────────────┐│
│ │ Gem 2 ││
│ │ (cocoapods) ││
│ └─────────────────────────────────────┘│
│ ┌─────────────────────────────────────┐│
│ │ Gem 3 ││
│ │ (xcode-install) ││
│ └─────────────────────────────────────┘│
└─────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Ruby 生态系统 │
├─────────────────────────────────────────────────────────────┤
│ Gem (包) │
│ ├── fastlane-2.200.0.gem │
│ ├── cocoapods-1.15.0.gem │
│ └── bundler-2.4.0.gem │
├─────────────────────────────────────────────────────────────┤
│ Bundler (工具) │
│ ├── 读取 Gemfile │
│ ├── 管理依赖版本 │
│ └── 生成 Gemfile.lock │
├─────────────────────────────────────────────────────────────┤
│ Bundle (依赖集合) │
│ ├── 由 Gemfile 定义 │
│ ├── 包含多个 gems │
│ └── 通过 bundle install 安装 │
└─────────────────────────────────────────────────────────────┘