Bitrise — 关键概念、Workflows 和持续集成

作者: IT Sectr 发布日期: 2026-04-13 阅读时间: 8 分钟

Bitrise 是一个专为移动开发设计的 CI/CD 平台,围绕现成的 Steps(用于构建、签名和发布 iOS 和 Android 应用的预配置模块)构建而成。根据 Bitrise,2024 的数据,该平台支持 超过 400 个现成的 Steps,并与 Xcode、Gradle、Fastlane、Firebase 和 App Store Connect 集成。

要点

  • Bitrise — 专为 iOS、Android、Flutter 和 React Native 移动项目设计的 CI/CD 平台
  • Workflow — 定义构建、测试和部署管道的 Steps 序列
  • Step — 用于特定任务的现成模块:安装依赖项、运行测试、代码签名
  • Code Signing — Bitrise 自动管理 iOS 的证书和配置文件
  • Secrets — 安全存储用于访问第三方服务的令牌、密钥和密码

什么是 Bitrise?

Bitrise 是一个于 2016 年推出的 CI/CD 平台,完全专注于移动开发。与通用解决方案 GitHub Actions 和 GitLab CI 不同,Bitrise 从一开始就设计用于自动化 iOS 和 Android 应用的构建。该平台在云端运行,并提供自己的带有 macOS 和 Linux 的托管 runner。Bitrise 支持所有流行的移动技术栈:Swift、Kotlin、Flutter、React Native、Cordova 和 Xamarin。

Bitrise 的主要优势在于为典型的移动开发任务提供预配置的 Step 模板:Xcode 构建、Gradle 组装、Fastlane、Firebase Distribution、TestFlight、Google Play。 配置管道 通过可视化编辑器只需几分钟,YAML 配置会在 bitrise.yml 文件中自动生成。对于高级用户,还提供带有自动补全功能的 YAML 编辑器。

Bitrise 架构:Workflows 和 Steps

Bitrise 的架构基于两个关键概念:Workflow 和 Step。 Workflow 是定义管道的 Steps 序列。每个项目可以有多个 Workflow:primary(主要构建)、deploy(发布)、test(仅测试)。Workflow 由触发器启动:push、PR、标签或按计划执行。Workflow 可以从 Web 界面手动运行,这对于临时构建非常有用。

Step 是执行单个任务的原子模块。步骤可以在可视化编辑器中拖拽,更改其顺序和配置。 Bitrise 提供 用于 Xcode Archive & Export、Gradle Runner、CocoaPods Install、Firebase Distribution、Slack 通知的 Steps。社区也创建 Steps — 它们可以通过 Step Library 获取。每个 Step 都有必填和可选的输入参数,以及可供后续 Steps 使用的输出变量。

Bitrise 支持管道的概念 — 将多个 Workflow 合并为一个管道。 管道可以包括 所有平台的主要构建以及单独的部署和测试工作流。这样可以创建复杂的 CI/CD 流程,其中一个构建触发另一个构建。Bitrise Stacks 定义了 runner 上预安装的软件:Xcode、Android SDK、Flutter、Node.js 和其他工具。

移动项目常用的 Steps

  • Xcode Archive & Export — 构建和导出带有配置文件管理的 IPA
  • Gradle Runner — 带参数和缓存的 Gradle 任务运行
  • Flutter Build — 为 iOS 和 Android 构建 Flutter 应用
  • Firebase App Distribution — 向测试人员发布构建
  • Certificate and Profile Installer — 自动安装代码签名证书

Bitrise 与 Git 仓库的集成

Bitrise 与 GitHub、GitLab、Bitbucket 和 Azure DevOps 集成。 在连接 仓库时,Bitrise 会自动检测项目类型(iOS、Android、Flutter)并提供 Workflow 模板。对于私有仓库,Bitrise 通过 OAuth 或 SSH 密钥请求访问。支持将多个仓库连接到一个应用。

连接后,Bitrise 在仓库中创建一个 webhook,用于在 push 和 PR 时自动启动构建。 每个构建 都会获得一个唯一的编号、日志和工件。界面允许查看构建历史、比较更改和重新启动失败的构建。Bitrise 还支持计划构建(用于定期夜间构建)以及与 Jira 集成以跟踪提交。

Code Signing 以及在 App Store 和 Google Play 上发布

iOS 的代码签名是 CI/CD 中最困难的任务之一,而 Bitrise 将其解决得非常简单。 平台存储 证书和配置文件以加密形式,在构建前自动将其安装到相应的 keychain 中,并导出已签名的 IPA。Certificate and Profile Installer Step 从 Bitrise 存储下载文件并配置 Xcode。支持 Development、AdHoc、AppStore 和 Enterprise 证书类型。

要在 App Store Connect 上发布,Bitrise 提供通过 Xcode Archive & Export 上传 IPA 的 Steps。 Google Play 发布 使用 Gradle Runner 通过 Keystore 签名,然后 APK/AAB 通过 Google Play Deploy Step 上传到 Google Play Console。对于 Firebase App Distribution,只需指定 Firebase Token 和测试人员组即可。Bitrise 在每次发布前自动更新构建版本(版本号和构建号)。

在 Bitrise 中配置代码签名

证书在 Web 界面的 Code Signing 部分上传:带有私钥的 P12、配置文件(.mobileprovision)、用于 Android 的 Keystore(.jks/.keystore)。 Bitrise 自动 在每次运行 Workflow 时将 iOS 证书安装到 keychain 中,并导出已签名的应用。对于 Android,只需上传 Keystore 文件 — Bitrise 在构建时通过环境变量将其传递给 Gradle。

Flutter 的 Bitrise 配置示例

让我们看一个 Flutter 应用的 Workflow,它构建并发布 iOS 和 Android 的构建版本。 Bitrise 自动 检测 Flutter 项目并提供相应的 Steps。Workflow 包括 Flutter 安装、pub-cache 缓存、构建、测试和部署。iOS 构建还需要代码签名证书,Bitrise 会自动加载这些证书。

在构建 Flutter 应用时,Bitrise 支持针对不同平台的单独配置。 Android 构建 在带有 Flutter SDK 的 Linux runner 上执行,iOS 在 macOS runner 上执行。Workflow 可以包含条件 Steps:build_android 和 build_ios,它们仅在相应的平台上运行。对于 React Native 项目,Bitrise 提供类似的 Steps 集,包含 npm/nvm 和 Metro bundler。

yaml
format_version: 13
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git

trigger_map:
- push_branch: main
  workflow: primary

workflows:
  primary:
    steps:
    - activate-ssh-key@4:
        run_if: true
    - git-clone@8: {}
    - flutter-installer@0:
        inputs:
        - version: 3.24.0
    - flutter-build@0:
        inputs:
        - platform: both
        - ios_output_type: archive
    - deploy-to-bitrise-io@2: {}

用于部署的自定义 Step

构建后,可以为 iOS 和 Android 添加 Firebase App Distribution Step。 Step 接受 firebase_token、app_id 和 testers_group。Bitrise 从 Secrets 中替换值 — 安全存储令牌确保它们不会出现在日志中。

yaml
- firebase-app-distribution@1:
    inputs:
    - firebase_token: $FIREBASE_TOKEN
    - app_id: $FIREBASE_IOS_APP_ID
    - testers_group: qa-team
    - release_notes: |
        Build $BITRISE_BUILD_NUMBER

Secrets 和环境管理

正确管理机密数据是 CI/CD 流程安全的基础。 Bitrise Secrets 经过加密,保存后无法读取。在创建新应用时,Bitrise 建议从另一个项目导入 secrets 或手动设置。对于大型团队,提供了 Environment Groups 功能 — 对一组应用的变量和 secrets 进行集中管理。

Bitrise 为机密数据提供内置的 Secrets 存储:API 密钥、Firebase 令牌、Keystore 密码、Apple ID。 Secrets 的设置 在 Web 界面中以键值对的形式进行,并在构建日志中被屏蔽。在应用级别和 Workflow 级别可用。Secrets 保存后无法读取 — 只能覆盖。

Environment Variables(没有 Secret 标签)用于配置:Xcode 版本、项目路径、构建方案。 Bitrise 环境变量(BITRISE_BUILD_NUMBER、BITRISE_APP_TITLE)提供有关构建的元信息。Secrets 在存储时加密,仅在 Workflow 执行期间在 runner 上解密。对于变量的分组管理,Bitrise 支持 Environment Groups — 可同时应用于多个应用的变量集。

通过 Bitrise 管理 iOS 证书需要特别注意。 平台自动 在构建前将 P12 和配置文件安装到系统 keychain 中。对于 Android,使用上传到 Code Signing 部分的 Keystore 文件。每个证书文件都以加密形式存储,仅在构建期间解密。

Secrets 使用示例

yaml
- google-play-deploy@3:
    inputs:
    - package_name: com.example.app
    - service_account_json_key: $SERVICE_ACCOUNT_KEY
    - app_file: $BITRISE_APK_PATH

Bitrise 技术栈和环境

Bitrise 提供不同的技术栈用于构建 — 预安装了工具和 SDK 的镜像。 可用的技术栈 包括 Xcode(版本 14、15、16 附带 iOS SDK 17、18)、Android(具有不同版本的 SDK 和 NDK)、Flutter、React Native 和 Kotlin Multiplatform。每个技术栈都有预安装工具和版本的描述。

技术栈的选择会影响构建时间和与项目的兼容性。 Bitrise 定期更新 技术栈,添加新版本的工具。可以在 bitrise.yml 中固定特定版本的技术栈,以避免平台更新时出现意外更改。对于自定义依赖项,使用 Script Step 在主构建前安装所需的包。Bitrise 还支持 Linux 技术栈的 Docker 镜像,允许为 Android 构建使用自定义环境。

常见问题

Bitrise 的价格是多少?

Bitrise 提供 免费计划,每月 90 分钟构建时间和一个并发构建。Developer(每月 79 美元)包含 3000 分钟、最多 5 个并发构建和所有集成。Enterprise — 定制价格。

Bitrise 支持哪些平台?

Bitrise 支持 iOS(Swift, Objective-C)、Android(Kotlin, Java)、Flutter、React Native、Cordova、Ionic 和 Xamarin。每个平台都有预安装的工具和 Workflow 模板。

Bitrise 中 iOS 需要 macOS runner 吗?

Bitrise 提供 macOS runner 用于 iOS 构建,无需额外配置。平台自行管理 macOS 基础设施 — runner 根据应用的技术栈自动选择。

Bitrise 如何管理 iOS 证书?

Bitrise 以 加密形式存储证书,并通过 Certificate and Profile Installer Step 在构建前自动将其安装到 keychain 中。对于 Android 类似 — Keystore 上传后由 Gradle 在签名时使用。

可以在 Bitrise 中自定义 Steps 吗?

是的,Bitrise 通过 Script Step(bash 脚本)和来自 GitHub 的自定义 Step Library 支持 自定义 Steps。您还可以根据 Bitrise 文档创建自己的 Step 并将其发布到 Step Library 中。

总结

  • Bitrise — 专为移动开发设计的 CI/CD 平台,提供现成的 iOS 和 Android Steps
  • Workflow — 可在可视化编辑器或 bitrise.yml 中配置的 Steps 序列
  • Step — 用于特定任务的模块:Xcode 构建、Gradle、Firebase 发布、Slack 通知
  • Code Signing — 无需手动操作即可自动管理 iOS 证书和 Android Keystore
  • Secrets — 在构建日志中屏蔽的令牌和密钥的安全存储
  • 集成 通过 webhooks 与 GitHub、GitLab、Bitbucket 集成,自动检测项目类型
  • macOS runner 用于 iOS 构建由 Bitrise 提供 — 无需自有基础设施

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读