Firebase App Distribution, mobil uygulamaların ön sürüm yapılarını uygulama mağazalarında yayınlamadan test ediciler ve dahili ekipler arasında dağıtmak için bir Google hizmetidir. App Distribution, APK ve IPA dosyalarını yüklemek, test edici gruplarını yönetmek ve geri bildirim toplamak için birleşik bir arayüz sağlar. Firebase Documentation, 2026'ya göre, hizmet, yeni sürümler hakkında test edicilere e-posta ve push bildirimleri aracılığıyla otomatik olarak bildirir ve Fastlane entegrasyonu, manuel işlemler olmadan doğrudan CI/CD boru hattından yapıları yayınlamaya olanak tanır. App Distribution, hem Android (AAB/APK) hem de iOS'u (IPA) destekler ve ad-hoc ile kurumsal dağıtımı içerir.
Önemli noktalar
Firebase App Distribution, mobil uygulamaların ön sürümlerini test edicilere ve paydaşlara dağıtmak için bir Google hizmetidir. Uygulama mağazalarında yayınlamanın aksine, App Distribution, uzun bir inceleme süreci olmadan seçilen katılımcılara anında yapı teslim etmeye olanak tanır. Hizmet, Firebase Crashlytics ile entegre olup geliştiricilerin doğrudan test edicilerden çökme raporları almasını ve herkese açık sürümden önce sorunları düzeltmesini sağlar.
Geleneksel beta dağıtım süreci, APK/IPA dosyalarını manuel olarak e-posta ile göndermeyi, üçüncü taraf dosya paylaşım hizmetlerine yüklemeyi veya kendi sunucunuzu kurmayı içerir. Firebase App Distribution bu sorunları çözer: Google Cloud'da birleşik bir yapı deposu, otomatik test edici bildirimleri, merkezi erişim yönetimi ve Firebase Crashlytics aracılığıyla yerleşik geri bildirim. Hizmet, CI/CD ve düzenli sürümler uygulayan ekipler için vazgeçilmezdir: yeni bir yapı, yüklemeden sonraki bir dakika içinde test edicilerin kullanımına sunulur.
App Distribution, mobil platformlar için tüm standart yapı formatlarını destekler. Android için — APK ve Android App Bundle (AAB), kurulum sırasında AAB'den otomatik APK oluşturma ile. iOS için — ad-hoc, geliştirme ve kurumsal dağıtım için IPA dosyaları. Her yapıya sürüm notları, sürüm numarası ve izleme için yapı kodu eşlik eder. Maksimum yükleme dosya boyutu 500 MB'dir ve yapılar 150 gün boyunca saklanır.
Firebase App Distribution'a yapı yükleme, Firebase Console, CLI (firebase appdistribution:distribute) veya Fastlane ve Gradle gibi otomatik araçlar aracılığıyla yapılır. Yükleme sırasında, yapı sürümü, sürüm notları ve bildirim alması gereken test ediciler veya grupların listesi belirtilir. Firebase, yapıya otomatik olarak benzersiz bir tanımlayıcı atar ve bir bağlantı aracılığıyla kurulum için kullanılabilir hale getirir.
Firebase Console, yapıları yüklemek ve sürümleri yönetmek için bir web arayüzü sağlar. Konsol, tarih, sürüm, durum ve kurulum sayısıyla birlikte yüklenen tüm yapıların geçmişini görüntüler. Kritik bir hata bulunursa geliştirici belirli bir sürümü devre dışı bırakabilir — bu, tüm test ediciler için bu sürümün kurulumunu engeller. Konsol ayrıca günlük kurulum grafiği göstererek test etkinliğinin izlenmesine yardımcı olur.
Firebase CLI, CI/CD boru hattı entegrasyonu için uygun olan tek bir komutla yapıların yüklenmesine olanak tanır. distribute komutu bir dosya yolu, proje erişim belirteci, test edici gruplarının listesi ve isteğe bağlı sürüm notlarını kabul eder. Kimlik doğrulama, Firebase App Distribution Yöneticisi rolüne sahip bir Firebase hizmet hesabı kullanır. CLI, dosya uzantısına göre platformu otomatik olarak algılayarak hem Android hem de iOS yapılarını destekler.
# Firebase CLI ile yapı yükleme
firebase appdistribution:distribute \
app-release.apk \
--app 1:123456789:android:abc123def456 \
--groups "qa-team,product-owners" \
--release-notes "Yetkilendirme hatası düzeltildi" \
--token "FIREBASE_TOKEN"
Firebase App Distribution esnek bir test edici yönetim sistemi sağlar: katılımcıları e-posta ile ekleyebilir, rollere veya projelere göre gruplar oluşturabilir ve farklı gruplara farklı yapılar atayabilirsiniz. Yeni bir test edici eklendiğinde, sistem onlara uygulamayı kurmak için talimatlar içeren bir davet e-postası gönderir. Test ediciler, gruplarına atanan her yeni yapı hakkında otomatik bildirim alır.
Gruplar, test edicileri işlevsel olarak organize etmeye olanak tanır. Grup örnekleri: QA Ekibi (tüm yapılara tam erişim), Ürün Sahipleri (kararlı yapılara erişim), Harici Test Ediciler (harici beta test edicileri için sınırlı erişim). Bir test edici birden fazla gruba ait olabilir. Bir yapı yüklenirken geliştirici hedef grupları seçer — yalnızca seçilen grupların üyeleri bildirim alır, bu da bilgi gürültüsünü ortadan kaldırır.
Programlı olarak test edici eklemek için Firebase App Distribution API'si kullanılır. API, test ediciler oluşturmanıza, bunları gruplara eklemenize ve gerektiğinde silmenize olanak tanır. Bu, dahili test yönetim sistemleri ve hata izleyicileriyle entegrasyon için kullanışlıdır. Bir test edici API aracılığıyla eklendiğinde, ilk uygulamayı kurmak için bir bağlantı içeren bir davet e-postası da alır.
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("Test edici gruba eklendi")
} catch (error) {
console.error("Hata:", error)
}
}
addTestersToGroup("tester@example.com", "qa-team")
Firebase App Distribution aracılığıyla Android yapılarının dağıtımı iki formatı destekler: APK ve Android App Bundle (AAB). Bir AAB yüklenirken Firebase, Google Play App Signing kullanarak test edicinin cihazıyla uyumlu bir APK'yı otomatik olarak oluşturur. Test ediciler, uygulamayı doğrudan bir bağlantı aracılığıyla kurar — Google Play Console'a erişmeleri gerekmez ve Play Console'da test edici olarak eklenmeleri gerekmez. Bu, Android için beta test sürecini önemli ölçüde basitleştirir.
App Distribution aracılığıyla kurulum yapmak için test edicilerin cihazlarında bilinmeyen kaynaklardan kurulumu etkinleştirmesi gerekir. Firebase otomatik olarak bir APK kurulum düğmesi olan bir web sayfasına bağlantı oluşturur. AAB formatı için cihazın Play Core Library'yi desteklemesi ve Google Play Store'un yüklü olması gerekir. Firebase, son sürümler için AAB ve hızlı yinelemeler için APK kullanılmasını önerir.
Gradle için Firebase App Distribution eklentisi, doğrudan bir Gradle görevinden yapı göndermeye olanak tanır. Yapılandırma, com.google.firebase.appdistribution eklentisini eklemeyi, bir hizmet hesabı ayarlamayı ve hedef grupları yapılandırmayı içerir. Kurulumdan sonra, assembleDistRelease görevi uygulamayı oluşturacak ve tek bir komutla Firebase App Distribution'a yükleyecektir.
// 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 "Otomatik yapı"
}
Firebase App Distribution aracılığıyla iOS yapılarının dağıtımı ek kurulum gerektirir çünkü Apple, uygulamaların App Store dışında kurulumunu kısıtlar. iOS uygulamalarını dağıtmak için Apple Geliştirici Programı'ndan ad-hoc veya kurumsal sertifikalar kullanmak gerekir. Test ediciler, ad-hoc dağıtım için cihazlar olarak Apple Geliştirici Portalı'na eklenmeli veya cihaz sınırı olmayan kurumsal dağıtım kullanılmalıdır.
Ad-hoc dağıtım için, tüm test edici cihazlarının UDID'lerini toplamak ve bunları Apple Geliştirici Portalı'na eklemek gerekir. Firebase App Distribution test edicilere UDID'lerini bulmaları için talimatlar gösterir ve kayıtlı cihazları otomatik olarak kaydeder. UDID sağlama profiline eklendikten ve IPA oluşturulduktan sonra test ediciler bir kurulum bağlantısı alır. Firebase, çok sayıda test edicisi olan projeler için kurumsal sertifika kullanılmasını önerir çünkü ad-hoc, hesap başına 100 cihazla sınırlıdır.
Fastlane, iOS uygulama yapılarını otomatikleştirmek için önerilen araçtır. match lane sertifikaları ve sağlama profillerini yönetirken, sigh lane dağıtım için bir IPA oluşturur. Firebase App Distribution, firebase_app_distribution eklentisi aracılığıyla Fastlane ile entegre olur, IPA'yı yükler ve test edicilere bildirir. Fastlane ayrıca ek eklentiler aracılığıyla sürüm yönetimini ve sürüm notlarını destekler.
# 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: "Derleme tarihi #\\{Time.now.strftime
('%Y-%m-%d %H:%M')}"
)
end
Firebase App Distribution'ın CI/CD ile tam entegrasyonu, depodaki her commit'te otomatik olarak yeni yapılar yayınlamaya olanak tanır. Bir CI boru hattı kurarak, ekip kod gönderiminden dakikalar sonra test edicilerden anında geri bildirim alır. App Distribution tüm popüler CI sistemlerini destekler: GitHub Actions, GitLab CI, Jenkins, Bitrise ve CircleCI. Her platform kendi yapılandırmasını gerektirir, ancak genel prensip aynıdır: oluştur → yükle → bildir.
GitHub Actions, develop dalına gönderim yaparken veya pull request oluştururken otomatik yapı dağıtımı ayarlamaya olanak tanır. İş akışı, Java/Flutter/Node.js kurulumunu, uygulamayı oluşturmayı, bir Firebase Hizmet Hesabı aracılığıyla kimlik doğrulamayı ve distribute komutuyla Firebase CLI'yı çalıştırmayı içerir. Sırlar (belirteçler, hizmet hesapları) GitHub Secrets'da saklanır ve yapı günlüklerinde ifşa edilmez. iOS için, iş akışında ayrıca Xcode kurulumu ve Fastlane yüklemesi gerekir.
# .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, test edicilerden otomatik çökme raporu toplama için Firebase Crashlytics ile entegre olur. Crashlytics otomatik olarak bir çökmeyi belirli bir yapı sürümüne ve cihaza bağlayarak sorunun hızlı bir şekilde bulunmasına ve düzeltilmesine yardımcı olur. Test ediciler ayrıca App Distribution web arayüzü aracılığıyla ekran görüntüleri ve yorumlar gönderebilir, yapıyı kurduktan sonra geri bildirim formunun bağlantısını alabilir.
Sıkça Sorulan Sorular
Firebase App Distribution, yalnızca iOS için çalışan TestFlight'ın aksine çapraz platform bir hizmetidir (Android + iOS). App Distribution ayrıca Crashlytics ve Firebase Analytics ile entegre olarak her iki platformda beta testi için birleşik bir ekosistem sağlar.
Yapılar, yükleme tarihinden itibaren 150 gün boyunca saklanır. Bu sürenin sonunda otomatik olarak silinirler. Test edicilerin eski sürümleri yüklemesini önlemek için düzenli olarak yeni yapılar yüklemeniz ve Firebase Console aracılığıyla eski yapıları manuel olarak silmeniz önerilir.
Firebase App Distribution'da test edici sayısında bir sınır yoktur. iOS ad-hoc dağıtımı için Apple'ın hesap başına 100 cihaz sınırı geçerlidir. Android ve iOS kurumsal dağıtımı için test edici sayısında herhangi bir kısıtlama yoktur.
Evet, App Distribution AAB'yi (Android App Bundle) destekler. Firebase, Google Play App Signing kullanarak her test edicinin cihazı için AAB'den otomatik olarak APK oluşturur. Bu, Play Store'da yayınlamadan önce test etmek için özellikle kullanışlıdır.
Evet, App Distribution, Firebase'in ücretsiz Spark planına dahildir. Spark planı sınırları: proje başına ayda 500 test edici ve 25.000 kuruluma kadar. Blaze planı bu sınırları kaldırır ve öncelikli destek ekler.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun