Firebase App Distribution:核心概念、APK和IPA分发及配置

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

Firebase App Distribution — 是Google的一项服务,用于在测试人员和内部团队之间分发移动应用的预构建版本,而无需将其发布到应用商店。App Distribution提供了统一的界面来上传APK和IPA、管理测试人员组以及收集反馈。根据Firebase Documentation, 2026,该服务通过电子邮件和推送通知自动通知测试人员新版本,Fastlane集成允许直接从CI/CD流水线发布构建,无需手动操作。App Distribution支持Android(AAB/APK)和iOS(IPA),包括ad-hoc和企业分发。

要点

  • App Distribution — Firebase服务,用于在测试人员之间分发应用的Beta版本,无需发布到Google Play和App Store。
  • 测试人员组 — 灵活的访问管理系统:根据角色、项目或测试阶段创建组,并为构建分配不同的权限。
  • 自动通知 — 测试人员在每次新构建时都会收到包含安装链接的电子邮件和推送通知。
  • Fastlane + Gradle — 与CI/CD系统完全集成,可在每次提交或拉取请求时自动发布构建。
  • 反馈 — 测试人员可以通过内置界面或Firebase Crashlytics发送屏幕截图、日志和评论。

什么是Firebase App Distribution

Firebase App Distribution — 是Google的一项服务,用于在测试人员和利益相关者之间分发移动应用的预发布版本。与在应用商店发布不同,App Distribution允许立即向选定的参与者交付构建,无需漫长的审查过程。该服务与Firebase Crashlytics集成,使开发人员能够直接从测试人员接收崩溃报告,并在公开发布之前解决问题。

为什么需要App Distribution

传统的Beta版本分发过程包括通过电子邮件手动发送APK/IPA、上传到第三方文件服务器或设置自己的服务器。Firebase App Distribution解决了这些问题:Google Cloud中的统一构建存储库、自动通知测试人员、集中访问管理以及通过Firebase Crashlytics内置反馈。该服务对于实践CI/CD和定期发布的团队来说是不可或缺的:新构建在上传后一分钟内即可供测试人员使用。

支持的构建格式

App Distribution支持所有移动平台的标准构建格式。对于Android — APK和Android App Bundle(AAB),安装时从AAB自动生成APK。对于iOS — 用于ad-hoc、开发和企业分发的IPA文件。每个构建都附带发布说明、版本号和构建代码以供跟踪。上传文件的最大大小为500 MB,构建的存储期限为150天。

上传构建和版本管理

上传构建到Firebase App Distribution通过Firebase Console、CLI(firebase appdistribution:distribute)或Fastlane和Gradle等自动化工具完成。上传时指定构建版本、发布说明以及应收到通知的测试人员或组列表。Firebase自动为构建分配唯一标识符,并通过链接使其可用于安装。

通过Firebase Console进行版本管理

Firebase Console提供了一个用于上传构建和管理版本的Web界面。控制台显示所有上传构建的历史记录,包括日期、版本、状态和安装数量。如果发现严重错误,开发人员可以禁用特定版本 — 这将阻止所有测试人员安装该版本。控制台还显示按天计算的安装图表,有助于跟踪测试活动。

通过Firebase CLI自动上传

Firebase CLI允许通过一个命令上传构建,这对于集成到CI/CD流水线中非常方便。distribute命令接受文件路径、项目访问令牌、测试人员组列表和可选的发布说明。认证使用具有Firebase App Distribution Admin角色的Firebase服务帐户。CLI支持Android和iOS构建,根据文件扩展名自动确定平台。

bash
# 通过Firebase CLI上传构建
firebase appdistribution:distribute \
    app-release.apk \
    --app 1:123456789:android:abc123def456 \
    --groups "qa-team,product-owners" \
    --release-notes "授权错误已修复" \
    --token "FIREBASE_TOKEN"

管理测试人员和组

Firebase App Distribution提供了一个灵活的测试人员管理系统:可以通过电子邮件添加参与者,根据角色或项目创建组,并将不同的构建分配给不同的组。添加新测试人员时,系统会向他发送一封包含应用安装说明的邀请电子邮件。测试人员会收到分配给其组的每个新构建的自动通知。

创建测试人员组

组允许按功能原则组织测试人员。组示例:QA团队(完全访问所有构建)、Product Owners(访问稳定构建)、External Testers(外部Beta测试人员的有限访问权限)。一个测试人员可以是多个组的成员。上传构建时,开发人员选择目标组 — 只有所选组的成员才会收到通知,从而消除信息噪音。

通过API添加测试人员

以编程方式添加测试人员使用Firebase App Distribution API。API允许创建测试人员、将其添加到组中以及根据需要删除。这便于与内部测试管理系统和错误跟踪器集成。通过API添加测试人员时,他也会收到一封包含第一个应用安装链接的邀请电子邮件。

js
const admin = require("firebase-admin")

const serviceAccount = require("./serviceAccountKey.json")
admin.initializeApp({ credential: admin.credential.cert(serviceAccount) })

async function addTestersToGroup(email, groupAlias) {
    try {
        await admin.appDistribution().addTesters(email, [groupAlias])
        console.log("测试人员已添加到组")
    } catch (error) {
        console.error("错误:", error)
    }
}

addTestersToGroup("tester@example.com", "qa-team")

分发Android构建

分发Android构建通过Firebase App Distribution支持两种格式:APK和Android App Bundle(AAB)。上传AAB时,Firebase使用Google Play App Signing自动生成与测试人员设备兼容的APK。测试人员通过直接链接安装应用 — 他们不需要访问Google Play Console,也无需作为测试人员添加到Play Console。这大大简化了Android的Beta测试过程。

Android构建的要求

要通过App Distribution安装,测试人员必须在设备上启用从未知来源安装。Firebase自动生成一个指向带有APK安装按钮的网页的链接。对于AAB格式,设备必须支持Play Core Library并已安装Google Play Store。Firebase建议将AAB用于最终版本,将APK用于快速迭代。

为App Distribution配置Gradle

Firebase App Distribution的Gradle插件允许直接从Gradle任务发送构建。配置包括添加com.google.firebase.appdistribution插件、配置服务帐户和设置目标组。配置后,assembleDistRelease任务将构建应用并通过一个命令将其上传到Firebase App Distribution。

groovy
// build.gradle (module: app)
plugins {
    id 'com.android.application'
    id 'com.google.firebase.appdistribution'
}

android { // standard config }

firebaseAppDistribution {
    appId "1:123456789:android:abc123def456"
    serviceCredentialsFile "firebase-sa.json"
    groups "qa-team"
    releaseNotes "自动构建"
}

分发iOS构建

分发iOS构建通过Firebase App Distribution需要额外配置,因为Apple限制在App Store之外安装应用。要分发iOS应用,必须使用Apple Developer Program的ad-hoc或企业证书。测试人员必须作为设备添加到Apple Developer Portal以进行ad-hoc分发,或使用没有设备限制的企业分发。

配置ad-hoc分发

对于ad-hoc分发,需要收集所有测试人员设备的UDID并将其添加到Apple Developer Portal。Firebase App Distribution向测试人员显示查找UDID的说明,并自动保存注册的设备。将UDID添加到配置文件并构建IPA后,测试人员会收到安装链接。Firebase建议对于拥有大量测试人员的项目使用企业证书,因为ad-hoc限制为每个帐户100台设备。

通过Fastlane构建IPA

Fastlane — 推荐的用于自动化构建iOS应用的工具。Lane match管理证书和配置文件,lane sigh创建用于分发的IPA。Firebase App Distribution通过firebase_app_distribution插件与Fastlane集成,该插件上传IPA并通知测试人员。Fastlane还支持通过其他插件进行版本管理和发布说明。

ruby
# Fastfile
lane :beta do
    match(type: :adhoc)
    gym(scheme: "MyApp", export_method: "ad-hoc")
    firebase_app_distribution(
        app: "1:123456789:ios:abc123def456",
        groups: "qa-team",
        release_notes: "构建时间 #\{Time.now.strftime
            ('%Y-%m-%d %H:%M')}"
    )
end

与CI/CD和Fastlane集成

Firebase App Distribution与CI/CD的完全集成允许在每次提交到存储库时自动发布新构建。通过配置CI流水线,团队在推送代码后几分钟内就能收到测试人员的即时反馈。App Distribution支持所有流行的CI系统:GitHub Actions、GitLab CI、Jenkins、Bitrise和CircleCI。每个平台需要自己的配置,但总体原则相同:构建 → 上传 → 通知。

通过GitHub Actions配置

GitHub Actions允许配置在推送到develop分支或创建拉取请求时自动分发构建。工作流包括安装Java/Flutter/Node.js、构建应用、通过Firebase Service Account进行认证以及使用distribute命令运行Firebase CLI。密钥(令牌、服务帐户)存储在GitHub Secrets中,不会在构建日志中泄露。对于iOS,还需要在工作流中配置Xcode和安装Fastlane。

yaml
# .github/workflows/distribute.yml
name: Distribute to Firebase
on:
  push: { branches: [ develop ] }
jobs:
  build-and-distribute:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Java
        uses: actions/setup-java@v3
        with: { distribution: "temurin", java-version: "17" }
      - name: Build APK
        run: ./gradlew assembleDebug
      - name: Upload to Firebase
        uses: wzieba/Firebase-Distribution-GitHub-Action@v1
        with:
          appId: "${{ secrets.FIREBASE_APP_ID }}"
          serviceCredentialsFileContent: "${{ secrets.FIREBASE_SA_KEY }}"
          groups: qa-team
          file: app/build/outputs/apk/debug/app-debug.apk

收集反馈

Firebase App Distribution与Firebase Crashlytics集成,自动从测试人员收集崩溃报告。Crashlytics自动将崩溃与特定的构建版本和设备关联起来,有助于快速定位和修复问题。测试人员还可以通过App Distribution的Web界面发送屏幕截图和评论,并在安装构建后收到反馈表单的链接。

常见问题

App Distribution与TestFlight有何不同?

Firebase App Distribution — 是一个跨平台服务(Android + iOS),与仅适用于iOS的TestFlight不同。App Distribution还与Crashlytics和Firebase Analytics集成,为两个平台的Beta测试提供统一的生态系统。

构建在App Distribution中保留多长时间?

构建自上传之日起保留150天。超过此期限后,它们将被自动删除。建议定期上传新构建并通过Firebase Console手动删除过时的构建,以防止测试人员安装旧版本。

可以添加多少测试人员?

Firebase App Distribution对测试人员数量没有限制。对于iOS ad-hoc分发,Apple限制每个帐户100台设备。对于Android和iOS企业分发,测试人员数量没有限制。

Android可以上传AAB代替APK吗?

可以,App Distribution支持AAB(Android App Bundle)。Firebase使用Google Play App Signing为每个测试人员设备从AAB自动生成APK。这对于在Play Store发布之前进行测试特别方便。

Firebase App Distribution免费吗?

是的,App Distribution包含在Firebase的免费Spark计划中。Spark限制:每个项目每月最多500名测试人员和25,000次安装。Blaze计划取消了这些限制并增加了优先支持。

总结

  • Firebase App Distribution — 用于分发移动应用Beta构建的服务,支持Android(APK/AAB)和iOS(IPA),无需在商店中发布。
  • 测试人员管理 — 灵活的组系统,每次新构建时自动发送电子邮件和推送通知。
  • 构建上传通过Firebase Console、CLI、Gradle插件或Fastlane完成,并自动通知测试人员。
  • Android构建支持APK和AAB,从AAB自动生成APK,通过直接链接安装,无需Google Play Console。
  • iOS构建需要ad-hoc或企业Apple证书,支持UDID注册和Fastlane以自动化IPA构建。
  • CI/CD集成 — 通过Firebase CLI或Fastlane与GitHub Actions、GitLab CI、Jenkins、Bitrise集成,每次推送自动发布。
  • 免费每月最多500名测试人员和25,000次安装,构建保留150天,与Firebase Crashlytics集成以收集崩溃报告。

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

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

讨论项目

另请阅读