ios流水线,待完善

60 阅读2分钟

做技术起步就是要做做笔记

今天是第一天,以后一天一篇笔记,既是监督自己学习也是加深自己的记忆

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 fastlanegem install bundler
安装范围全局安装 Fastlane全局安装 Bundler
权限要求需要 sudo用户权限即可
版本管理固定版本灵活版本控制
团队协作容易冲突版本一致
安全性权限过高更安全
适用场景个人快速开发团队生产开发

进入ios项目的目录

cd /path/to/your/ios/project

初始化fastline

bundle exec fastlane init

初始化过程说明

运行fastlane init后,Fastlane会:

  1. 检测项目类型:自动识别是iOS还是Android项目

  2. 创建目录结构:

    text

       fastlane/

       ├── Appfile          # 应用配置

       ├── Fastfile         # 主要脚本文件

       └── metadata/        # App Store元数据

  3. 询问配置信息:

  • 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 安装                               │
└─────────────────────────────────────────────────────────────┘