Firebase App Distribution — سرویسی از Google برای توزیع بیلدهای اولیه برنامههای موبایل بین تسترها و تیمهای داخلی بدون نیاز به انتشار آنها در فروشگاههای برنامه است. App Distribution یک رابط یکپارچه برای آپلود APK و IPA، مدیریت گروههای تستر و جمعآوری بازخورد فراهم میکند. به گزارش Firebase Documentation, 2026, این سرویس به طور خودکار تسترها را از طریق ایمیل و اعلانهای push از نسخههای جدید مطلع میکند و یکپارچهسازی Fastlane امکان انتشار بیلدها را مستقیماً از خط لوله CI/CD بدون اقدامات دستی فراهم میکند. App Distribution از هر دو Android (AAB/APK) و iOS (IPA) از جمله توزیع ad-hoc و enterprise پشتیبانی میکند.
نکات اصلی
Firebase App Distribution — سرویسی از Google برای توزیع نسخههای پیش از انتشار برنامههای موبایل بین تسترها و ذینفعان است. برخلاف انتشار در فروشگاههای برنامه، App Distribution امکان تحویل فوری بیلدها به شرکتکنندگان منتخب را بدون فرآیند طولانی بازبینی فراهم میکند. این سرویس با Firebase Crashlytics یکپارچه شده است که به توسعهدهندگان امکان میدهد گزارشهای crash را مستقیماً از تسترها دریافت کرده و مشکلات را قبل از انتشار عمومی برطرف کنند.
فرآیند سنتی توزیع نسخههای بتا شامل ارسال دستی APK/IPA از طریق ایمیل، آپلود در سرویسهای اشتراکگذاری فایل شخص ثالث یا راهاندازی سرور شخصی است. Firebase App Distribution این مشکلات را حل میکند: مخزن یکپارچه بیلدها در Google Cloud، اعلانهای خودکار به تسترها، مدیریت متمرکز دسترسی و بازخورد داخلی از طریق Firebase Crashlytics. این سرویس برای تیمهایی که از CI/CD و انتشارات منظم استفاده میکنند ضروری است: بیلد جدید یک دقیقه پس از آپلود برای تسترها در دسترس است.
App Distribution از تمام فرمتهای استاندارد بیلد برای پلتفرمهای موبایل پشتیبانی میکند. برای Android — APK و Android App Bundle (AAB) با تولید خودکار APK از AAB هنگام نصب. برای iOS — فایلهای IPA برای توزیع ad-hoc, development و enterprise. هر بیلد با یادداشتهای انتشار (release notes)، شماره نسخه و کد بیلد برای ردیابی همراه است. حداکثر اندازه فایل آپلودی 500 مگابایت و مدت نگهداری بیلدها 150 روز است.
آپلود بیلدها در Firebase App Distribution از طریق Firebase Console, CLI (firebase appdistribution:distribute) یا ابزارهای خودکار مانند Fastlane و Gradle انجام میشود. هنگام آپلود، نسخه بیلد، یادداشتهای انتشار و لیست تسترها یا گروههایی که باید اعلان دریافت کنند مشخص میشود. Firebase به طور خودکار یک شناسه یکتا به بیلد اختصاص میدهد و آن را برای نصب از طریق لینک در دسترس قرار میدهد.
Firebase Console یک رابط وب برای آپلود بیلدها و مدیریت نسخهها فراهم میکند. در کنسول نمایش داده میشود تاریخچه تمام بیلدهای آپلود شده با تاریخ، نسخه، وضعیت و تعداد نصبها. توسعهدهنده میتواند در صورت کشف خطای بحرانی، نسخه خاصی را غیرفعال کند — این کار امکان نصب نسخه را برای همه تسترها مسدود میکند. کنسول همچنین نمودار نصبها را بر اساس روز نشان میدهد که به ردیابی فعالیت تست کمک میکند.
Firebase CLI امکان آپلود بیلدها با یک دستور را فراهم میکند که برای یکپارچهسازی در خطوط لوله CI/CD مناسب است. دستور distribute مسیر فایل، توکن دسترسی پروژه، لیست گروههای تستر و یادداشتهای انتشار اختیاری را دریافت میکند. برای احراز هویت از حساب سرویس Firebase با نقش Firebase App Distribution Admin استفاده میشود. 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 (دسترسی کامل به همه بیلدها), Product Owners (دسترسی به بیلدهای پایدار), External Testers (دسترسی محدود برای تسترهای بتای خارجی). یک تستر میتواند عضو چندین گروه باشد. هنگام آپلود بیلد، توسعهدهنده گروههای هدف را انتخاب میکند — فقط اعضای گروههای انتخاب شده اعلان دریافت میکنند که نویز اطلاعاتی را حذف میکند.
برای اضافه کردن برنامهنویسی تسترها از 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")
توزیع بیلدهای Android از طریق Firebase App Distribution از دو فرمت پشتیبانی میکند: 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 را برای تکرارهای سریع توصیه میکند.
پلاگین Firebase App Distribution برای Gradle امکان ارسال بیلدها را مستقیماً از وظیفه 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 "بیلد خودکار"
}
توزیع بیلدهای iOS از طریق Firebase App Distribution نیاز به پیکربندی اضافی دارد زیرا Apple نصب برنامهها را خارج از App Store محدود میکند. برای توزیع برنامههای iOS باید از گواهیهای ad-hoc یا enterprise برنامه Apple Developer Program استفاده کرد. تسترها باید در Apple Developer Portal به عنوان دستگاههایی برای توزیع ad-hoc اضافه شوند یا از توزیع enterprise بدون محدودیت دستگاه استفاده کنند.
برای توزیع ad-hoc باید UDID تمام دستگاههای تسترها را جمعآوری کرده و به Apple Developer Portal اضافه کرد. Firebase App Distribution به تسترها دستورالعمل پیدا کردن UDID را نشان میدهد و دستگاههای ثبت شده را به طور خودکار ذخیره میکند. پس از افزودن UDID به provisioning profile و ساخت IPA، تسترها لینک نصب را دریافت میکنند. Firebase استفاده از گواهی enterprise را برای پروژههای با تعداد زیادی تستر توصیه میکند زیرا ad-hoc به 100 دستگاه در هر حساب محدود است.
Fastlane — ابزار توصیه شده برای خودکارسازی ساخت برنامههای iOS است. Lane match گواهیها و provisioning profileها را مدیریت میکند و lane sigh 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
یکپارچهسازی کامل Firebase App Distribution با CI/CD امکان انتشار خودکار بیلدهای جدید را با هر commit در مخزن فراهم میکند. با پیکربندی خط لوله CI، تیم چند دقیقه پس از push کد، بازخورد فوری از تسترها دریافت میکند. App Distribution از تمام سیستمهای CI محبوب پشتیبانی میکند: GitHub Actions, GitLab CI, Jenkins, Bitrise و CircleCI. برای هر پلتفرم پیکربندی خاص خود مورد نیاز است اما اصل کلی یکسان است: ساخت → آپلود → اعلان.
GitHub Actions امکان پیکربندی توزیع خودکار بیلدها را هنگام push به شاخه develop یا ایجاد pull request فراهم میکند. Workflow شامل نصب Java/Flutter/Node.js, ساخت برنامه, احراز هویت از طریق Firebase Service Account و اجرای Firebase CLI با دستور distribute است. اسرار (توکنها, حسابهای سرویس) در GitHub Secrets ذخیره میشوند و در لاگهای بیلد فاش نمیشوند. برای iOS علاوه بر این، پیکربندی Xcode و نصب Fastlane در workflow مورد نیاز است.
# .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 برای جمعآوری خودکار گزارشهای crash از تسترها با Firebase Crashlytics یکپارچه میشود. Crashlytics به طور خودکار crash را به نسخه خاص بیلد و دستگاه مرتبط میکند که به بومیسازی و رفع سریع مشکل کمک میکند. تسترها همچنین میتوانند از طریق رابط وب App Distribution اسکرینشات و نظرات ارسال کنند و پس از نصب بیلد لینک فرم بازخورد را دریافت کنند.
سوالات متداول
Firebase App Distribution — یک سرویس چند پلتفرمی (Android + iOS) است برخلاف TestFlight که فقط برای iOS کار میکند. App Distribution همچنین با Crashlytics و Firebase Analytics یکپارچه میشود و یک اکوسیستم یکپارچه برای تست بتا در هر دو پلتفرم فراهم میکند.
بیلدها به مدت 150 روز از زمان آپلود ذخیره میشوند. پس از این مدت به طور خودکار حذف میشوند. توصیه میشود به طور منظم بیلدهای جدید آپلود کرده و بیلدهای قدیمی را به صورت دستی از طریق Firebase Console حذف کنید تا تسترها نسخههای قدیمی را نصب نکنند.
محدودیتی وجود ندارد برای تعداد تسترها در Firebase App Distribution. برای توزیع ad-hoc iOS محدودیت Apple 100 دستگاه در هر حساب اعمال میشود. برای Android و توزیع enterprise iOS محدودیتی برای تعداد تسترها وجود ندارد.
بله, App Distribution از AAB (Android App Bundle) پشتیبانی میکند. Firebase با استفاده از Google Play App Signing به طور خودکار از AAB برای هر دستگاه تستر APK تولید میکند. این به ویژه برای تست قبل از انتشار در Play Store مناسب است.
بله, App Distribution در طرح رایگان Spark Firebase گنجانده شده است. محدودیتهای Spark: تا 500 تستر و 25,000 نصب در ماه برای هر پروژه. طرح Blaze این محدودیتها را حذف کرده و پشتیبانی اولویتدار اضافه میکند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید