Firebase App Distribution: مفاهیم کلیدی، توزیع APK و IPA و پیکربندی

نویسنده: IT Sectr منتشر شده: 2026-04-29 زمان مطالعه: 8 دقیقه

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 پشتیبانی می‌کند.

نکات اصلی

  • App Distribution — سرویس Firebase برای توزیع نسخه‌های بتای برنامه‌ها بین تسترها بدون انتشار در Google Play و App Store.
  • گروه‌های تستر — سیستم مدیریت دسترسی انعطاف‌پذیر: گروه‌ها را بر اساس نقش‌ها، پروژه‌ها یا مراحل تست با مجوزهای مختلف برای بیلدها ایجاد کنید.
  • اعلان‌های خودکار — تسترها با هر بیلد جدید اعلان‌های ایمیل و push با لینک نصب دریافت می‌کنند.
  • Fastlane + Gradle — یکپارچه‌سازی کامل با سیستم‌های CI/CD برای انتشار خودکار بیلدها در هر commit یا pull request.
  • بازخورد — تسترها می‌توانند اسکرین‌شات، لاگ و نظرات را از طریق رابط داخلی یا Firebase Crashlytics ارسال کنند.

Firebase App Distribution چیست

Firebase App Distribution — سرویسی از Google برای توزیع نسخه‌های پیش از انتشار برنامه‌های موبایل بین تسترها و ذی‌نفعان است. برخلاف انتشار در فروشگاه‌های برنامه، App Distribution امکان تحویل فوری بیلدها به شرکت‌کنندگان منتخب را بدون فرآیند طولانی بازبینی فراهم می‌کند. این سرویس با Firebase Crashlytics یکپارچه شده است که به توسعه‌دهندگان امکان می‌دهد گزارش‌های crash را مستقیماً از تسترها دریافت کرده و مشکلات را قبل از انتشار عمومی برطرف کنند.

چرا App Distribution مورد نیاز است

فرآیند سنتی توزیع نسخه‌های بتا شامل ارسال دستی 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 Console یک رابط وب برای آپلود بیلدها و مدیریت نسخه‌ها فراهم می‌کند. در کنسول نمایش داده می‌شود تاریخچه تمام بیلدهای آپلود شده با تاریخ، نسخه، وضعیت و تعداد نصب‌ها. توسعه‌دهنده می‌تواند در صورت کشف خطای بحرانی، نسخه خاصی را غیرفعال کند — این کار امکان نصب نسخه را برای همه تسترها مسدود می‌کند. کنسول همچنین نمودار نصب‌ها را بر اساس روز نشان می‌دهد که به ردیابی فعالیت تست کمک می‌کند.

آپلود خودکار از طریق Firebase CLI

Firebase CLI امکان آپلود بیلدها با یک دستور را فراهم می‌کند که برای یکپارچه‌سازی در خطوط لوله CI/CD مناسب است. دستور distribute مسیر فایل، توکن دسترسی پروژه، لیست گروه‌های تستر و یادداشت‌های انتشار اختیاری را دریافت می‌کند. برای احراز هویت از حساب سرویس Firebase با نقش Firebase App Distribution Admin استفاده می‌شود. 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 (دسترسی محدود برای تسترهای بتای خارجی). یک تستر می‌تواند عضو چندین گروه باشد. هنگام آپلود بیلد، توسعه‌دهنده گروه‌های هدف را انتخاب می‌کند — فقط اعضای گروه‌های انتخاب شده اعلان دریافت می‌کنند که نویز اطلاعاتی را حذف می‌کند.

اضافه کردن تسترها از طریق 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 به طور قابل توجهی ساده می‌کند.

الزامات بیلدهای Android

برای نصب از طریق App Distribution، تسترها باید نصب از منابع ناشناخته را در دستگاه فعال کنند. Firebase به طور خودکار لینکی تولید می‌کند که به صفحه وبی با دکمه نصب APK هدایت می‌شود. برای فرمت AAB، دستگاه باید از Play Core Library پشتیبانی کند و Google Play Store نصب شده باشد. Firebase استفاده از AAB را برای نسخه‌های نهایی و APK را برای تکرارهای سریع توصیه می‌کند.

پیکربندی Gradle برای App Distribution

پلاگین 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 باید از گواهی‌های ad-hoc یا enterprise برنامه Apple Developer Program استفاده کرد. تسترها باید در Apple Developer Portal به عنوان دستگاه‌هایی برای توزیع ad-hoc اضافه شوند یا از توزیع enterprise بدون محدودیت دستگاه استفاده کنند.

پیکربندی توزیع ad-hoc

برای توزیع ad-hoc باید UDID تمام دستگاه‌های تسترها را جمع‌آوری کرده و به Apple Developer Portal اضافه کرد. Firebase App Distribution به تسترها دستورالعمل پیدا کردن UDID را نشان می‌دهد و دستگاه‌های ثبت شده را به طور خودکار ذخیره می‌کند. پس از افزودن UDID به provisioning profile و ساخت IPA، تسترها لینک نصب را دریافت می‌کنند. Firebase استفاده از گواهی enterprise را برای پروژه‌های با تعداد زیادی تستر توصیه می‌کند زیرا ad-hoc به 100 دستگاه در هر حساب محدود است.

ساخت IPA از طریق Fastlane

Fastlane — ابزار توصیه شده برای خودکارسازی ساخت برنامه‌های iOS است. Lane match گواهی‌ها و provisioning profileها را مدیریت می‌کند و 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 امکان انتشار خودکار بیلدهای جدید را با هر commit در مخزن فراهم می‌کند. با پیکربندی خط لوله CI، تیم چند دقیقه پس از push کد، بازخورد فوری از تسترها دریافت می‌کند. App Distribution از تمام سیستم‌های CI محبوب پشتیبانی می‌کند: GitHub Actions, GitLab CI, Jenkins, Bitrise و CircleCI. برای هر پلتفرم پیکربندی خاص خود مورد نیاز است اما اصل کلی یکسان است: ساخت → آپلود → اعلان.

پیکربندی از طریق GitHub Actions

GitHub Actions امکان پیکربندی توزیع خودکار بیلدها را هنگام push به شاخه develop یا ایجاد pull request فراهم می‌کند. Workflow شامل نصب Java/Flutter/Node.js, ساخت برنامه, احراز هویت از طریق Firebase Service Account و اجرای Firebase CLI با دستور distribute است. اسرار (توکن‌ها, حساب‌های سرویس) در GitHub Secrets ذخیره می‌شوند و در لاگ‌های بیلد فاش نمی‌شوند. برای iOS علاوه بر این، پیکربندی Xcode و نصب Fastlane در workflow مورد نیاز است.

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 برای جمع‌آوری خودکار گزارش‌های crash از تسترها با Firebase Crashlytics یکپارچه می‌شود. Crashlytics به طور خودکار crash را به نسخه خاص بیلد و دستگاه مرتبط می‌کند که به بومی‌سازی و رفع سریع مشکل کمک می‌کند. تسترها همچنین می‌توانند از طریق رابط وب App Distribution اسکرین‌شات و نظرات ارسال کنند و پس از نصب بیلد لینک فرم بازخورد را دریافت کنند.

سوالات متداول

App Distribution چه تفاوتی با TestFlight دارد؟

Firebase App Distribution — یک سرویس چند پلتفرمی (Android + iOS) است برخلاف TestFlight که فقط برای iOS کار می‌کند. App Distribution همچنین با Crashlytics و Firebase Analytics یکپارچه می‌شود و یک اکوسیستم یکپارچه برای تست بتا در هر دو پلتفرم فراهم می‌کند.

بیلدها چه مدت در App Distribution ذخیره می‌شوند؟

بیلدها به مدت 150 روز از زمان آپلود ذخیره می‌شوند. پس از این مدت به طور خودکار حذف می‌شوند. توصیه می‌شود به طور منظم بیلدهای جدید آپلود کرده و بیلدهای قدیمی را به صورت دستی از طریق Firebase Console حذف کنید تا تسترها نسخه‌های قدیمی را نصب نکنند.

چند تستر می‌توان اضافه کرد؟

محدودیتی وجود ندارد برای تعداد تسترها در Firebase App Distribution. برای توزیع ad-hoc iOS محدودیت Apple 100 دستگاه در هر حساب اعمال می‌شود. برای Android و توزیع enterprise iOS محدودیتی برای تعداد تسترها وجود ندارد.

آیا می‌توان برای Android به جای APK از AAB استفاده کرد؟

بله, App Distribution از AAB (Android App Bundle) پشتیبانی می‌کند. Firebase با استفاده از Google Play App Signing به طور خودکار از AAB برای هر دستگاه تستر APK تولید می‌کند. این به ویژه برای تست قبل از انتشار در Play Store مناسب است.

آیا Firebase App Distribution رایگان است؟

بله, App Distribution در طرح رایگان Spark Firebase گنجانده شده است. محدودیت‌های Spark: تا 500 تستر و 25,000 نصب در ماه برای هر پروژه. طرح Blaze این محدودیت‌ها را حذف کرده و پشتیبانی اولویت‌دار اضافه می‌کند.

خلاصه

  • Firebase App Distribution — سرویسی برای توزیع بیلدهای بتای برنامه‌های موبایل با پشتیبانی از Android (APK/AAB) و iOS (IPA) بدون انتشار در فروشگاه‌ها.
  • مدیریت تسترها — سیستم گروهی انعطاف‌پذیر با اعلان‌های خودکار ایمیل و push در هر بیلد جدید.
  • آپلود بیلدها از طریق Firebase Console, CLI, پلاگین Gradle یا Fastlane با اعلان خودکار به تسترها انجام می‌شود.
  • بیلدهای Android از APK و AAB با تولید خودکار APK از AAB پشتیبانی می‌کنند, نصب با لینک مستقیم بدون Google Play Console.
  • بیلدهای iOS نیاز به گواهی ad-hoc یا enterprise Apple دارند, با پشتیبانی از ثبت UDID و Fastlane برای خودکارسازی ساخت IPA.
  • یکپارچه‌سازی CI/CD — GitHub Actions, GitLab CI, Jenkins, Bitrise با Firebase CLI یا Fastlane برای انتشار خودکار در هر push.
  • رایگان تا 500 تستر و 25,000 نصب در ماه, بیلدها به مدت 150 روز ذخیره می‌شوند, یکپارچه با Firebase Crashlytics برای جمع‌آوری گزارش‌های crash.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید