Firebase App Distribution은 앱 스토어에 게시하지 않고 모바일 애플리케이션의 사전 릴리스 빌드를 테스터와 내부 팀에 배포하기 위한 Google 서비스입니다. App Distribution은 APK 및 IPA 파일 업로드, 테스터 그룹 관리, 피드백 수집을 위한 통합 인터페이스를 제공합니다. Firebase Documentation, 2026에 따르면, 이 서비스는 이메일 및 푸시 알림을 통해 새 버전에 대해 테스터에게 자동으로 알리며, Fastlane 통합을 통해 수동 작업 없이 CI/CD 파이프라인에서 직접 빌드를 게시할 수 있습니다. App Distribution은 Android(AAB/APK)와 iOS(IPA)를 모두 지원하며, 임시(ad-hoc) 및 엔터프라이즈 배포를 포함합니다.
주요 포인트
Firebase App Distribution은 모바일 애플리케이션의 사전 릴리스 버전을 테스터 및 이해관계자에게 배포하기 위한 Google 서비스입니다. 앱 스토어에 게시하는 것과 달리, App Distribution은 긴 검토 과정 없이 선택한 참가자에게 즉시 빌드를 제공할 수 있습니다. 이 서비스는 Firebase Crashlytics와 통합되어 있어 개발자가 테스터로부터 직접 크래시 보고서를 받고 공개 릴리스 전에 문제를 수정할 수 있습니다.
베타 버전 배포의 전통적인 프로세스는 APK/IPA 파일을 이메일로 수동 전송하거나, 타사 파일 공유 서비스에 업로드하거나, 자체 서버를 설정하는 것을 포함합니다. Firebase App Distribution은 이러한 문제를 해결합니다: Google Cloud의 통합 빌드 저장소, 자동 테스터 알림, 중앙 집중식 액세스 관리 및 Firebase Crashlytics를 통한 내장 피드백. 이 서비스는 CI/CD 및 정기적인 릴리스를 실천하는 팀에 필수적입니다: 새 빌드는 업로드 후 1분 이내에 테스터가 사용할 수 있습니다.
App Distribution은 모바일 플랫폼의 모든 표준 빌드 형식을 지원합니다. Android의 경우 — APK 및 Android App Bundle(AAB), 설치 시 AAB에서 자동 APK 생성 지원. iOS의 경우 — 임시(ad-hoc), 개발 및 엔터프라이즈 배포용 IPA 파일. 각 빌드에는 릴리스 노트, 버전 번호 및 추적용 빌드 코드가 포함됩니다. 최대 업로드 파일 크기는 500MB이며, 빌드는 150일 동안 저장됩니다.
Firebase App Distribution에 빌드 업로드는 Firebase Console, CLI(firebase appdistribution:distribute) 또는 Fastlane 및 Gradle과 같은 자동화 도구를 통해 수행됩니다. 업로드 시 빌드 버전, 릴리스 노트 및 알림을 받을 테스터 또는 그룹 목록을 지정합니다. Firebase는 빌드에 고유 식별자를 자동으로 할당하고 링크를 통해 설치할 수 있도록 합니다.
Firebase Console은 빌드 업로드 및 버전 관리를 위한 웹 인터페이스를 제공합니다. 콘솔에는 날짜, 버전, 상태 및 설치 수와 함께 업로드된 모든 빌드의 기록이 표시됩니다. 개발자는 중요한 버그가 발견되면 특정 버전을 비활성화할 수 있으며, 이렇게 하면 모든 테스터에 대한 해당 버전의 설치가 차단됩니다. 콘솔은 일별 설치 그래프도 표시하여 테스트 활동을 추적하는 데 도움이 됩니다.
Firebase CLI를 사용하면 단일 명령으로 빌드를 업로드할 수 있어 CI/CD 파이프라인 통합에 편리합니다. distribute 명령은 파일 경로, 프로젝트 액세스 토큰, 테스터 그룹 목록 및 선택적 릴리스 노트를 받습니다. 인증에는 Firebase App Distribution Admin 역할이 있는 Firebase 서비스 계정을 사용합니다. CLI는 Android와 iOS 빌드를 모두 지원하며 파일 확장자로 플랫폼을 자동으로 감지합니다.
# 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 팀(모든 빌드에 대한 전체 액세스), 제품 소유자(안정적인 빌드에 대한 액세스), 외부 테스터(외부 베타 테스터를 위한 제한된 액세스). 한 명의 테스터가 여러 그룹에 속할 수 있습니다. 빌드를 업로드할 때 개발자는 대상 그룹을 선택하며, 선택된 그룹의 구성원만 알림을 받아 정보 노이즈를 제거합니다.
프로그래밍 방식으로 테스터를 추가하려면 Firebase App Distribution API를 사용합니다. API를 사용하면 테스터를 만들고, 그룹에 추가하고, 필요할 때 삭제할 수 있습니다. 이는 내부 테스트 관리 시스템 및 버그 트래커와의 통합에 편리합니다. API를 통해 테스터가 추가되면 첫 번째 애플리케이션을 설치하기 위한 링크가 포함된 초대 이메일도 받습니다.
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")
Firebase App Distribution을 통한 Android 빌드 배포는 APK와 Android App Bundle(AAB)의 두 가지 형식을 지원합니다. AAB를 업로드하면 Firebase가 Google Play App Signing을 사용하여 테스터의 기기와 호환되는 APK를 자동으로 생성합니다. 테스터는 직접 링크를 통해 애플리케이션을 설치하며, Google Play Console에 액세스할 필요가 없고 Play Console에 테스터로 추가될 필요도 없습니다. 이는 Android의 베타 테스트 프로세스를 크게 간소화합니다.
App Distribution을 통해 설치하려면 테스터가 기기에서 알 수 없는 소스의 설치를 활성화해야 합니다. Firebase는 자동으로 APK 설치 버튼이 있는 웹 페이지로 연결되는 링크를 생성합니다. AAB 형식의 경우 기기가 Play Core Library를 지원하고 Google Play Store가 설치되어 있어야 합니다. Firebase는 최종 버전에는 AAB를, 빠른 반복에는 APK를 사용할 것을 권장합니다.
Gradle용 Firebase App Distribution 플러그인을 사용하면 Gradle 작업에서 직접 빌드를 보낼 수 있습니다. 설정에는 com.google.firebase.appdistribution 플러그인 추가, 서비스 계정 설정 및 대상 그룹 구성이 포함됩니다. 설정 후 assembleDistRelease 작업은 애플리케이션을 빌드하고 단일 명령으로 Firebase App Distribution에 업로드합니다.
// 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 "자동 빌드"
}
Firebase App Distribution을 통한 iOS 빌드 배포는 추가 설정이 필요합니다. Apple이 App Store 외부에서의 애플리케이션 설치를 제한하기 때문입니다. iOS 앱을 배포하려면 Apple Developer Program의 임시(ad-hoc) 또는 엔터프라이즈 인증서를 사용해야 합니다. 테스터는 임시 배포를 위한 기기로 Apple Developer Portal에 추가되거나, 기기 제한이 없는 엔터프라이즈 배포를 사용해야 합니다.
임시 배포의 경우 모든 테스터 기기의 UDID를 수집하여 Apple Developer Portal에 추가해야 합니다. Firebase App Distribution은 테스터에게 UDID를 찾는 방법을 안내하고 등록된 기기를 자동으로 저장합니다. 프로비저닝 프로파일에 UDID를 추가하고 IPA를 빌드한 후 테스터는 설치 링크를 받습니다. Firebase는 테스터 수가 많은 프로젝트의 경우 엔터프라이즈 인증서 사용을 권장합니다. 임시 배포는 계정당 100개의 기기로 제한되기 때문입니다.
Fastlane은 iOS 애플리케이션 빌드를 자동화하기 위한 권장 도구입니다. match lane은 인증서와 프로비저닝 프로파일을 관리하고, sigh lane은 배포용 IPA를 생성합니다. Firebase App Distribution은 firebase_app_distribution 플러그인을 통해 Fastlane과 통합되어 IPA를 업로드하고 테스터에게 알립니다. Fastlane은 추가 플러그인을 통해 버전 관리 및 릴리스 노트도 지원합니다.
# 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와 Firebase App Distribution의 완전한 통합을 통해 저장소에 커밋할 때마다 새 빌드를 자동으로 게시할 수 있습니다. CI 파이프라인을 설정하면 팀은 코드 푸시 후 몇 분 만에 테스터로부터 즉각적인 피드백을 받을 수 있습니다. App Distribution은 모든 주요 CI 시스템을 지원합니다: GitHub Actions, GitLab CI, Jenkins, Bitrise 및 CircleCI. 각 플랫폼에는 자체 구성이 필요하지만 일반적인 원칙은 동일합니다: 빌드 → 업로드 → 알림.
GitHub Actions를 사용하면 develop 브랜치에 푸시하거나 풀 리퀘스트를 생성할 때 자동 빌드 배포를 설정할 수 있습니다. 워크플로에는 Java/Flutter/Node.js 설치, 애플리케이션 빌드, Firebase 서비스 계정을 통한 인증 및 distribute 명령으로 Firebase CLI 실행이 포함됩니다. 시크릿(토큰, 서비스 계정)은 GitHub Secrets에 저장되며 빌드 로그에 노출되지 않습니다. iOS의 경우 워크플로에 Xcode 설정 및 Fastlane 설치가 추가로 필요합니다.
# .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 웹 인터페이스를 통해 스크린샷과 댓글을 보낼 수도 있으며, 빌드 설치 후 피드백 양식 링크를 받습니다.
자주 묻는 질문
Firebase App Distribution은 크로스 플랫폼 서비스(Android + iOS)로, iOS에서만 작동하는 TestFlight와 다릅니다. App Distribution은 Crashlytics 및 Firebase Analytics와도 통합되어 두 플랫폼에서 베타 테스트를 위한 통합 생태계를 제공합니다.
빌드는 업로드 날짜로부터 150일 동안 저장됩니다. 이 기간이 지나면 자동으로 삭제됩니다. 테스터가 이전 버전을 설치하지 않도록 정기적으로 새 빌드를 업로드하고 Firebase Console을 통해 수동으로 오래된 빌드를 삭제하는 것이 좋습니다.
Firebase App Distribution의 테스터 수에는 제한이 없습니다. iOS 임시(ad-hoc) 배포의 경우 Apple의 계정당 100대 기기 제한이 적용됩니다. Android 및 iOS 엔터프라이즈 배포의 경우 테스터 수에 제한이 없습니다.
네, App Distribution은 AAB(Android App Bundle)를 지원합니다. Firebase는 Google Play App Signing을 사용하여 각 테스터의 기기용으로 AAB에서 자동으로 APK를 생성합니다. 이는 Play Store에 게시하기 전에 테스트하는 데 특히 편리합니다.
네, App Distribution은 Firebase의 무료 Spark 플랜에 포함되어 있습니다. Spark 플랜 제한: 프로젝트당 월 500명의 테스터와 25,000회 설치까지. Blaze 플랜은 이러한 제한을 제거하고 우선 지원을 추가합니다.
요약
턴키 방식의 모바일 애플리케이션을 개발해 드립니다
IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.