با استفاده از Gradle، برنامه‌های Android را بین آزمایش‌کنندگان توزیع کنید


می‌توانید با استفاده از پلاگین App Distribution Gradle، App Distribution در فرآیند ساخت اندروید خود ادغام کنید. این افزونه به شما امکان می‌دهد آزمایش‌کننده‌های خود را مشخص کنید و یادداشت‌هایی را در فایل Gradle برنامه‌تان منتشر کنید و به شما امکان می‌دهد توزیع‌ها را برای انواع ساخت و انواع مختلف برنامه خود پیکربندی کنید.

این راهنما نحوه توزیع Android App Bundles (AAB) را با استفاده از پلاگین App Distribution Gradle برای آزمایش‌کنندگان توضیح می‌دهد.

App Distribution با سرویس اشتراک‌گذاری برنامه داخلی Google Play ادغام می‌شود تا AAB‌هایی را که آپلود می‌کنید پردازش کند و APK‌هایی را که برای پیکربندی‌های دستگاه آزمایش‌کنندگان شما بهینه‌سازی شده‌اند ارائه می‌دهد. توزیع AAB به شما امکان می دهد کارهای زیر را انجام دهید:

  • فایل‌های APK بهینه‌سازی شده (که توسط Google Play ارائه می‌شود) را اجرا کنید که برای دستگاه‌های آزمایش‌کنندگان شما بهینه‌سازی شده‌اند.

  • مشکلات مربوط به دستگاه را کشف و اشکال زدایی کنید.

  • ویژگی‌های بسته نرم‌افزار مانند Play Feature Delivery و Play Asset Delivery را آزمایش کنید.

  • حجم دانلودها را برای آزمایش کنندگان خود کاهش دهید.

مجوزهای مورد نیاز

برای آپلود AABها در App Distribution ، باید برنامه Firebase خود را به یک برنامه در Google Play پیوند دهید . برای انجام این اقدامات باید سطح دسترسی لازم را داشته باشید.

اگر دسترسی Firebase لازم را ندارید، می‌توانید از مالک پروژه Firebase بخواهید که از طریق تنظیمات IAM کنسول Firebase نقش قابل اجرا را به شما اختصاص دهد. اگر در مورد دسترسی به پروژه Firebase خود، از جمله پیدا کردن یا اختصاص مالک، سؤالی دارید، سؤالات متداول "مجوزها و دسترسی به پروژه های Firebase" را مرور کنید.

جدول زیر برای پیوند یک برنامه Firebase به یک برنامه در Google Play و همچنین آپلود AAB ها کاربرد دارد.

اکشن در کنسول Firebase مجوز IAM مورد نیاز است نقش(های) IAM که به طور پیش فرض شامل مجوزهای مورد نیاز است نقش(های) مورد نیاز اضافی
یک برنامه Firebase را به یک برنامه در Google Play پیوند دهید firebase.playLinks.update یکی از نقش های زیر: دسترسی به حساب توسعه دهنده Google Play به عنوان Admin
AAB ها را در App Distribution آپلود کنید firebaseappdistro.releases.update یکی از نقش های زیر: ––

قبل از شروع

  1. اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.

    اگر از محصولات Firebase دیگری استفاده نمی کنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم به استفاده از محصولات اضافی دارید، مطمئن شوید که تمام مراحل افزودن Firebase به پروژه Android خود را کامل کرده اید.

  2. برای ایجاد پیوند Firebase به Google Play و آپلود AAB، مطمئن شوید که برنامه شما شرایط زیر را دارد:

    • برنامه در Google Play و برنامه Firebase Android هر دو با استفاده از یک نام بسته ثبت شده اند.

    • برنامه در Google Play در داشبورد برنامه راه‌اندازی می‌شود و در یکی از مسیرهای Google Play (تست داخلی، آزمایش بسته، آزمایش باز یا تولید) توزیع می‌شود.

    • بررسی اپلیکیشن در گوگل پلی کامل شد و اپلیکیشن منتشر شد. اگر ستون وضعیت برنامه یکی از وضعیت‌های زیر را نمایش دهد، برنامه شما منتشر می‌شود: آزمایش داخلی (نه آزمایش داخلی پیش‌نویس)، آزمایش بسته، آزمایش باز یا تولید.

  3. برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:

    1. در کنسول Firebase ، به قسمت خود بروید تنظیمات پروژه ، سپس برگه Integrations را انتخاب کنید.

    2. در کارت Google Play ، روی پیوند کلیک کنید.
      اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.

    3. دستورالعمل‌های روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامه‌های Firebase Android را انتخاب کنید تا به Google Play پیوند داده شوند.

    درباره پیوند دادن به Google Play بیشتر بیاموزید.

مرحله 1. پروژه اندروید خود را راه اندازی کنید

  1. در فایل Gradle در سطح ریشه (سطح پروژه) خود ( <project>/build.gradle.kts یا <project>/build.gradle )، افزونه App Distribution Gradle را به عنوان یک وابستگی اضافه کنید:

    KotlinGroovy
    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.1.1" apply false
    }
    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.1.1' apply false
    }
  2. در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، افزونه App Distribution Gradle را اضافه کنید:

    KotlinGroovy
    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
  3. اگر پشت پراکسی یا فایروال شرکتی هستید، ویژگی سیستم جاوا زیر را اضافه کنید که به App Distribution امکان می‌دهد توزیع‌های شما را در Firebase آپلود کند:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

مرحله 2. با Firebase احراز هویت

قبل از اینکه بتوانید از پلاگین Gradle استفاده کنید، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر احراز هویت کنید. به‌طور پیش‌فرض، اگر از روش احراز هویت دیگری استفاده نشود، پلاگین Gradle به دنبال اعتبار از Firebase CLI می‌گردد.

احراز هویت با یک حساب سرویس به شما این امکان را می دهد که به طور انعطاف پذیر از افزونه با سیستم یکپارچه سازی پیوسته (CI) خود استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:

  • فایل کلید حساب سرویس خود را به build.gradle ارسال کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید.
  • متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کرده‌اید، ممکن است این روش را ترجیح دهید.

برای احراز هویت با استفاده از اعتبار حساب سرویس:

  1. در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید.
  2. نقش مدیر Firebase App Distribution را اضافه کنید.
  3. یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد.
  4. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید.
  5. اطلاعات حساب سرویس خود را ارائه یا پیدا کنید:

    1. برای پاس کردن کلید حساب کاربری Gradle، در فایل build.gradle ، ویژگی serviceCredentialsFile را روی فایل JSON کلید خصوصی تنظیم کنید.
    2. برای تعیین مکان اعتبار خود با ADC، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:

       export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
      

      برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.

برای اطلاع از نحوه احراز هویت پروژه، به ورود با Firebase CLI مراجعه کنید.

مرحله 3. ویژگی های توزیع خود را پیکربندی کنید

در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradleApp Distribution با افزودن حداقل یک بخش firebaseAppDistribution پیکربندی کنید.

به عنوان مثال، برای توزیع نسخه release بین آزمایش‌کنندگان، دستورالعمل‌های زیر را دنبال کنید:

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

می توانید App Distribution برای انواع ساخت و طعم محصول پیکربندی کنید.

به‌عنوان مثال، برای توزیع debug و release بیلدها در طعم‌های «دمو» و «کامل»، این دستورالعمل‌ها را دنبال کنید:

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

برای پیکربندی توزیع از پارامترهای زیر استفاده کنید:

پارامترهای ساخت App Distribution
appId

شناسه برنامه Firebase برنامه شما. فقط در صورتی که افزونه Google Services Gradle را نصب نکرده باشید، الزامی است. می‌توانید شناسه برنامه را در فایل google-services.json یا کنسول Firebase در صفحه تنظیمات عمومی پیدا کنید. مقدار موجود در فایل build.gradle شما مقدار خروجی از افزونه google-services را لغو می کند.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

مسیر فایل JSON کلید خصوصی حساب سرویس شما. فقط در صورت استفاده از احراز هویت حساب سرویس مورد نیاز است.

artifactType

نوع فایل برنامه شما را مشخص می کند. را می توان روی "AAB" یا "APK" تنظیم کرد.

artifactPath

مسیر مطلق به فایل APK یا AAB که می‌خواهید آپلود کنید.

releaseNotes یا releaseNotesFile

یادداشت های انتشار برای این ساخت.

شما می توانید یادداشت های انتشار را مستقیماً یا مسیر یک فایل متنی ساده را مشخص کنید.

testers یا testersFile

آدرس‌های ایمیل آزمایش‌کنندگانی که می‌خواهید ساخت‌ها را در آنها توزیع کنید.

می‌توانید آزمایش‌کننده‌ها را به‌عنوان فهرستی از آدرس‌های ایمیل جدا شده با کاما مشخص کنید:

testers="ali@example.com, bri@example.com, cal@example.com"

یا می‌توانید مسیر فایل حاوی فهرستی از آدرس‌های ایمیل جدا شده با کاما را مشخص کنید:

testersFile="/path/to/testers.txt"
groups یا groupsFile

گروه‌های آزمایش‌کننده‌ای که می‌خواهید ساخت‌ها را در آنها توزیع کنید ( به مدیریت آزمایش‌کنندگان رجوع کنید). گروه ها با استفاده از آن مشخص می شوند نام مستعار گروهی ، که می توانید آن را در تب Testers در کنسول Firebase App Distribution پیدا کنید.

می‌توانید گروه‌ها را به‌عنوان فهرستی از نام‌های مستعار گروهی جدا شده با کاما مشخص کنید:

groups="qa-team, android-testers"

یا می‌توانید مسیر فایل حاوی فهرستی از نام‌های مستعار گروهی را که با کاما جدا شده‌اند، مشخص کنید:

groupsFile="/path/to/tester-groups.txt"
testDevices یا testDevicesFile

انواع توزیع زیر بخشی از ویژگی آزمایش کننده خودکار بتا هستند.

دستگاه‌های آزمایشی که می‌خواهید بیلدها را در آنها توزیع کنید (به تست‌های خودکار مراجعه کنید).

می‌توانید دستگاه‌های آزمایشی را به‌عنوان فهرستی از مشخصات دستگاه جدا شده با نقطه ویرگول مشخص کنید:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

یا می توانید مسیر فایلی را که حاوی لیستی از مشخصات دستگاه جدا شده با نقطه ویرگول است مشخص کنید:

testDevicesFile="/path/to/testDevices.txt"
testUsername

نام کاربری برای ورود خودکار که در طول تست های خودکار استفاده می شود.

testPassword یا testPasswordFile

رمز عبور برای ورود خودکار که در طول آزمایشات خودکار استفاده می شود.

یا می توانید مسیر یک فایل متنی ساده حاوی رمز عبور را مشخص کنید:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

نام منبع برای فیلد نام کاربری برای ورود خودکار برای استفاده در آزمایش‌های خودکار .

testPasswordResource

نام منبع برای فیلد رمز عبور برای ورود خودکار که در طول تست های خودکار استفاده می شود.

testNonBlocking

تست های خودکار را به صورت ناهمزمان اجرا کنید. برای دریافت نتایج تست خودکار به کنسول Firebase مراجعه کنید.

stacktrace

stacktrace را برای استثناهای کاربر چاپ می کند. این در هنگام اشکال زدایی مشکلات مفید است.

مرحله 4. برنامه خود را بین آزمایش کنندگان توزیع کنید

  1. در نهایت، برای بسته بندی برنامه آزمایشی خود و دعوت از آزمایش کنندگان، اهداف را بسازید BUILD-VARIANT و appDistributionUpload BUILD-VARIANT با بسته بندی Gradle پروژه خود، که در آن BUILD-VARIANT طعم و نوع ساخت اختیاری محصول است که در مرحله قبل پیکربندی کرده اید. برای اطلاعات بیشتر در مورد طعم محصول، پیکربندی انواع ساخت را ببینید.

    به عنوان مثال، برای توزیع برنامه خود با استفاده از نسخه ساخت release ، دستور زیر را اجرا کنید:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    یا اگر با حساب Google خود احراز هویت کرده اید و اعتبارنامه را در فایل ساخت Gradle خود ارائه نکرده اید، متغیر FIREBASE_TOKEN وارد کنید:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. همچنین می توانید با ارسال آرگومان های خط فرمان به شکل --<property-name>=<property-value> مقادیر تنظیم شده در فایل build.gradle خود را نادیده بگیرید. به عنوان مثال:

    • برای آپلود بیلد اشکال زدایی در App Distribution :

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • برای دعوت از آزمایش‌کنندگان دیگر یا حذف آزمایش‌کنندگان موجود از پروژه Firebase:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"

      هنگامی که یک آزمایش‌کننده به پروژه Firebase شما اضافه شد، می‌توانید آنها را به نسخه‌های جداگانه اضافه کنید. آزمایش‌کنندگانی که حذف می‌شوند دیگر به نسخه‌های موجود در پروژه شما دسترسی نخواهند داشت، اما ممکن است همچنان برای مدتی به نسخه‌های شما دسترسی داشته باشند.

    همچنین می‌توانید آزمایش‌کننده‌ها را با استفاده از --file="/path/to/testers.txt" به جای --emails مشخص کنید.

    وظایف appDistributionAddTesters و appDistributionRemoveTesters نیز آرگومان های زیر را می پذیرند:

    • projectNumber : شماره پروژه Firebase شما.

    • serviceCredentialsFile : مسیر فایل اعتبار سرویس Google شما. این همان آرگومان مورد استفاده در عمل آپلود است.

پلاگین Gradle لینک های زیر را پس از آپلود انتشار خروجی می دهد. این پیوندها به شما کمک می‌کنند فایل‌های باینری را مدیریت کنید و اطمینان حاصل کنید که آزمایش‌کنندگان و سایر توسعه‌دهندگان نسخه مناسبی دارند:

  • firebase_console_uri - پیوندی به کنسول Firebase که یک نسخه را نمایش می‌دهد. می توانید این پیوند را با سایر توسعه دهندگان در سازمان خود به اشتراک بگذارید.
  • testing_uri - پیوندی به نسخه در تجربه آزمایش‌کننده (برنامه بومی Android) که به آزمایش‌کنندگان اجازه می‌دهد یادداشت‌های انتشار را مشاهده کرده و برنامه را روی دستگاه خود نصب کنند. آزمایش‌کننده برای استفاده از پیوند نیاز به دسترسی به انتشار دارد.
  • binary_download_uri - پیوند امضا شده ای که مستقیماً برنامه باینری (فایل APK یا AAB) را دانلود و نصب می کند. لینک بعد از یک ساعت منقضی می شود.

هنگامی که ساخت خود را توزیع کردید، به مدت 150 روز (پنج ماه) در داشبورد App Distribution کنسول Firebase در دسترس قرار می گیرد. وقتی ساخت 30 روز از انقضا می‌گذرد، یک اخطار انقضا هم در کنسول و هم در فهرست ساخت‌های آزمایش‌کننده شما در دستگاه آزمایشی ظاهر می‌شود.

آزمایش‌کنندگانی که برای آزمایش برنامه دعوت نشده‌اند، دعوت‌نامه‌های ایمیلی را برای شروع دریافت می‌کنند، و آزمایش‌کنندگان موجود اعلان‌های ایمیلی مبنی بر آماده بودن ساخت جدید برای آزمایش دریافت می‌کنند ( راهنمای راه‌اندازی آزمایش‌کننده را برای دستورالعمل‌های نصب برنامه آزمایشی بخوانید). می‌توانید وضعیت هر آزمایش‌کننده را کنترل کنید - آیا دعوت‌نامه را پذیرفته‌اند و آیا برنامه را دانلود کرده‌اند یا خیر - در کنسول Firebase .

آزمایش‌کنندگان 30 روز فرصت دارند تا قبل از انقضا، دعوتنامه را برای آزمایش برنامه بپذیرند. وقتی دعوتنامه 5 روز از تاریخ انقضا می‌گذرد، در کنسول Firebase در کنار آزمایش‌کننده در نسخه‌ای که منتشر می‌شود، اعلان انقضا ظاهر می‌شود. یک دعوت نامه را می توان با ارسال مجدد آن با استفاده از منوی کشویی در ردیف آزمایشگر تمدید کرد.

مراحل بعدی

،


می‌توانید با استفاده از پلاگین App Distribution Gradle، App Distribution در فرآیند ساخت اندروید خود ادغام کنید. این افزونه به شما امکان می‌دهد آزمایش‌کننده‌های خود را مشخص کنید و یادداشت‌هایی را در فایل Gradle برنامه‌تان منتشر کنید و به شما امکان می‌دهد توزیع‌ها را برای انواع ساخت و انواع مختلف برنامه خود پیکربندی کنید.

این راهنما نحوه توزیع Android App Bundles (AAB) را با استفاده از پلاگین App Distribution Gradle برای آزمایش‌کنندگان توضیح می‌دهد.

App Distribution با سرویس اشتراک‌گذاری برنامه داخلی Google Play ادغام می‌شود تا AAB‌هایی را که آپلود می‌کنید پردازش کند و APK‌هایی را که برای پیکربندی‌های دستگاه آزمایش‌کنندگان شما بهینه‌سازی شده‌اند ارائه می‌دهد. توزیع AAB به شما امکان می دهد کارهای زیر را انجام دهید:

  • فایل‌های APK بهینه‌سازی شده (که توسط Google Play ارائه می‌شود) را اجرا کنید که برای دستگاه‌های آزمایش‌کنندگان شما بهینه‌سازی شده‌اند.

  • مسائل مربوط به دستگاه را کشف و اشکال زدایی کنید.

  • ویژگی‌های بسته نرم‌افزار مانند Play Feature Delivery و Play Asset Delivery را آزمایش کنید.

  • حجم بارگیری‌ها را برای آزمایش‌کنندگان خود کاهش دهید.

مجوزهای مورد نیاز

برای آپلود AABها در App Distribution ، باید برنامه Firebase خود را به یک برنامه در Google Play پیوند دهید . برای انجام این اقدامات باید سطح دسترسی لازم را داشته باشید.

اگر دسترسی Firebase لازم را ندارید، می‌توانید از مالک پروژه Firebase بخواهید که از طریق تنظیمات IAM کنسول Firebase نقش قابل اجرا را به شما اختصاص دهد. اگر در مورد دسترسی به پروژه Firebase خود، از جمله پیدا کردن یا اختصاص مالک، سؤالی دارید، سؤالات متداول "مجوزها و دسترسی به پروژه های Firebase" را مرور کنید.

جدول زیر برای پیوند یک برنامه Firebase به یک برنامه در Google Play و همچنین آپلود AAB ها کاربرد دارد.

اکشن در کنسول Firebase مجوز IAM مورد نیاز است نقش(های) IAM که به طور پیش فرض شامل مجوزهای مورد نیاز است نقش(های) مورد نیاز اضافی
یک برنامه Firebase را به یک برنامه در Google Play پیوند دهید firebase.playLinks.update یکی از نقش های زیر: دسترسی به حساب توسعه دهنده Google Play به عنوان Admin
AAB ها را در App Distribution آپلود کنید firebaseappdistro.releases.update یکی از نقش های زیر: ––

قبل از شروع

  1. اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.

    اگر از محصولات Firebase دیگری استفاده نمی کنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم به استفاده از محصولات اضافی دارید، مطمئن شوید که تمام مراحل افزودن Firebase به پروژه Android خود را کامل کرده اید.

  2. برای ایجاد پیوند Firebase به Google Play و آپلود AAB، مطمئن شوید که برنامه شما شرایط زیر را دارد:

    • برنامه در Google Play و برنامه Firebase Android هر دو با استفاده از یک نام بسته ثبت شده اند.

    • برنامه در Google Play در داشبورد برنامه راه‌اندازی می‌شود و در یکی از مسیرهای Google Play (تست داخلی، آزمایش بسته، آزمایش باز یا تولید) توزیع می‌شود.

    • بررسی اپلیکیشن در گوگل پلی کامل شد و اپلیکیشن منتشر شد. اگر ستون وضعیت برنامه یکی از وضعیت‌های زیر را نمایش دهد، برنامه شما منتشر می‌شود: آزمایش داخلی (نه آزمایش داخلی پیش‌نویس)، آزمایش بسته، آزمایش باز یا تولید.

  3. برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:

    1. در کنسول Firebase ، به قسمت خود بروید تنظیمات پروژه ، سپس برگه Integrations را انتخاب کنید.

    2. در کارت Google Play ، روی پیوند کلیک کنید.
      اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.

    3. دستورالعمل‌های روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامه‌های Firebase Android را انتخاب کنید تا به Google Play پیوند داده شوند.

    درباره پیوند دادن به Google Play بیشتر بیاموزید.

مرحله 1. پروژه اندروید خود را راه اندازی کنید

  1. در فایل Gradle در سطح ریشه (سطح پروژه) خود ( <project>/build.gradle.kts یا <project>/build.gradle )، افزونه App Distribution Gradle را به عنوان یک وابستگی اضافه کنید:

    KotlinGroovy
    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.1.1" apply false
    }
    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.1.1' apply false
    }
  2. در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، افزونه App Distribution Gradle را اضافه کنید:

    KotlinGroovy
    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
  3. اگر پشت پراکسی یا فایروال شرکتی هستید، ویژگی سیستم جاوا زیر را اضافه کنید که به App Distribution امکان می‌دهد توزیع‌های شما را در Firebase آپلود کند:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

مرحله 2. با Firebase احراز هویت

قبل از اینکه بتوانید از پلاگین Gradle استفاده کنید، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر احراز هویت کنید. به‌طور پیش‌فرض، اگر از روش احراز هویت دیگری استفاده نشود، پلاگین Gradle به دنبال اعتبار از Firebase CLI می‌گردد.

احراز هویت با یک حساب سرویس به شما این امکان را می دهد که به طور انعطاف پذیر از افزونه با سیستم یکپارچه سازی پیوسته (CI) خود استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:

  • فایل کلید حساب سرویس خود را به build.gradle ارسال کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید.
  • متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کرده‌اید، ممکن است این روش را ترجیح دهید.

برای احراز هویت با استفاده از اعتبار حساب سرویس:

  1. در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید.
  2. نقش مدیر Firebase App Distribution را اضافه کنید.
  3. یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد.
  4. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید.
  5. اطلاعات حساب سرویس خود را ارائه یا پیدا کنید:

    1. برای پاس کردن کلید حساب کاربری Gradle، در فایل build.gradle ، ویژگی serviceCredentialsFile را روی فایل JSON کلید خصوصی تنظیم کنید.
    2. برای تعیین مکان اعتبار خود با ADC، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:

       export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
      

      برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.

برای اطلاع از نحوه احراز هویت پروژه، به ورود با Firebase CLI مراجعه کنید.

مرحله 3. ویژگی های توزیع خود را پیکربندی کنید

در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradleApp Distribution با افزودن حداقل یک بخش firebaseAppDistribution پیکربندی کنید.

به عنوان مثال، برای توزیع نسخه release بین آزمایش‌کنندگان، دستورالعمل‌های زیر را دنبال کنید:

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

می توانید App Distribution برای انواع ساخت و طعم محصول پیکربندی کنید.

به عنوان مثال، برای توزیع debug و release بیلدها در طعم های "دمو" و "کامل" محصول، این دستورالعمل ها را دنبال کنید:

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

برای پیکربندی توزیع از پارامترهای زیر استفاده کنید:

پارامترهای ساخت App Distribution
appId

شناسه برنامه Firebase برنامه شما. فقط در صورتی که افزونه Google Services Gradle را نصب نکرده باشید، الزامی است. می‌توانید شناسه برنامه را در فایل google-services.json یا کنسول Firebase در صفحه تنظیمات عمومی پیدا کنید. مقدار موجود در فایل build.gradle شما مقدار خروجی از افزونه google-services را لغو می کند.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

مسیر فایل JSON کلید خصوصی حساب سرویس شما. فقط در صورت استفاده از احراز هویت حساب سرویس مورد نیاز است.

artifactType

نوع فایل برنامه شما را مشخص می کند. را می توان روی "AAB" یا "APK" تنظیم کرد.

artifactPath

مسیر مطلق به فایل APK یا AAB که می‌خواهید آپلود کنید.

releaseNotes یا releaseNotesFile

یادداشت های انتشار برای این ساخت.

شما می توانید یادداشت های انتشار را مستقیماً یا مسیر یک فایل متنی ساده را مشخص کنید.

testers یا testersFile

آدرس‌های ایمیل آزمایش‌کنندگانی که می‌خواهید ساخت‌ها را در آنها توزیع کنید.

می‌توانید آزمایش‌کننده‌ها را به‌عنوان فهرستی از آدرس‌های ایمیل جدا شده با کاما مشخص کنید:

testers="ali@example.com, bri@example.com, cal@example.com"

یا می‌توانید مسیر فایل حاوی فهرستی از آدرس‌های ایمیل جدا شده با کاما را مشخص کنید:

testersFile="/path/to/testers.txt"
groups یا groupsFile

گروه‌های آزمایش‌کننده‌ای که می‌خواهید ساخت‌ها را در آنها توزیع کنید ( به مدیریت آزمایش‌کنندگان رجوع کنید). گروه ها با استفاده از آن مشخص می شوند نام مستعار گروهی ، که می توانید آن را در تب Testers در کنسول Firebase App Distribution پیدا کنید.

می‌توانید گروه‌ها را به‌عنوان فهرستی از نام‌های مستعار گروهی جدا شده با کاما مشخص کنید:

groups="qa-team, android-testers"

یا می‌توانید مسیر فایل حاوی فهرستی از نام‌های مستعار گروهی جدا شده با کاما را مشخص کنید:

groupsFile="/path/to/tester-groups.txt"
testDevices یا testDevicesFile

انواع توزیع زیر بخشی از ویژگی آزمایش کننده خودکار بتا هستند.

دستگاه‌های آزمایشی که می‌خواهید بیلدها را در آنها توزیع کنید (به تست‌های خودکار مراجعه کنید).

می‌توانید دستگاه‌های آزمایشی را به‌عنوان فهرستی از مشخصات دستگاه جدا شده با نقطه ویرگول مشخص کنید:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

یا می توانید مسیر فایلی را که حاوی لیستی از مشخصات دستگاه جدا شده با نقطه ویرگول است مشخص کنید:

testDevicesFile="/path/to/testDevices.txt"
testUsername

نام کاربری برای ورود خودکار که در طول تست های خودکار استفاده می شود.

testPassword یا testPasswordFile

رمز عبور برای ورود خودکار که در طول آزمایشات خودکار استفاده می شود.

یا می توانید مسیر یک فایل متنی ساده حاوی رمز عبور را مشخص کنید:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

نام منبع برای فیلد نام کاربری برای ورود خودکار برای استفاده در آزمایش‌های خودکار .

testPasswordResource

نام منبع برای فیلد رمز عبور برای ورود خودکار که در طول تست های خودکار استفاده می شود.

testNonBlocking

تست های خودکار را به صورت ناهمزمان اجرا کنید. برای دریافت نتایج تست خودکار به کنسول Firebase مراجعه کنید.

stacktrace

stacktrace را برای استثناهای کاربر چاپ می کند. این در هنگام اشکال زدایی مشکلات مفید است.

مرحله 4. برنامه خود را برای آزمایش کنندگان توزیع کنید

  1. در آخر ، برای بسته بندی برنامه تست خود و دعوت از آزمایش کنندگان ، اهداف را بسازید BUILD-VARIANT و appDistributionUpload BUILD-VARIANT با بسته بندی Gradle Project خود ، که در آن ساختار BUILD-VARIANT عطر و طعم محصول اختیاری و نوع ساخت شما در مرحله قبل است. برای کسب اطلاعات بیشتر در مورد طعم های محصول ، به انواع پیکربندی ساخت مراجعه کنید.

    به عنوان مثال ، برای توزیع برنامه خود با استفاده از نوع ساخت release ، دستور زیر را اجرا کنید:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    یا اگر با حساب Google خود تأیید شده اید و اعتبار خود را در پرونده ساخت Gradle خود ارائه نداده اید ، متغیر FIREBASE_TOKEN درج کنید:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. همچنین می توانید با عبور از آرگومان های خط فرمان به شکل- --<property-name>=<property-value> مقادیر تعیین شده در پرونده build.gradle خود را نادیده بگیرید. به عنوان مثال:

    • برای بارگذاری یک اشکال زدایی در App Distribution :

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • برای دعوت از آزمایش کنندگان اضافی یا حذف آزمایش کنندگان موجود از پروژه Firebase خود:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"

      هنگامی که یک تستر به پروژه Firebase شما اضافه شد ، می توانید آنها را به نسخه های فردی اضافه کنید. آزمایش کننده هایی که حذف شده اند دیگر دسترسی به نسخه های پروژه شما ندارند ، اما ممکن است هنوز دسترسی به نسخه های شما را برای یک پنجره زمان حفظ کنند.

    همچنین می توانید آزمایش کنندگان را با استفاده از --file="/path/to/testers.txt" به جای --emails کنید.

    وظایف appDistributionAddTesters و appDistributionRemoveTesters همچنین استدلال های زیر را می پذیرند:

    • projectNumber : شماره پروژه Firebase شما.

    • serviceCredentialsFile : مسیر پرونده اعتبارنامه خدمات Google شما. این همان استدلالی است که توسط عمل بارگذاری استفاده می شود.

افزونه Gradle پس از بارگذاری انتشار ، پیوندهای زیر را خروجی می کند. این پیوندها به شما در مدیریت باینری ها کمک می کنند و اطمینان حاصل می کنند که آزمایش کنندگان و سایر توسعه دهندگان نسخه صحیح را دارند:

  • firebase_console_uri - پیوندی به کنسول Firebase که یک نسخه واحد را نشان می دهد. می توانید این پیوند را با سایر توسعه دهندگان در ارگ خود به اشتراک بگذارید.
  • testing_uri - پیوندی برای انتشار در Tester Experience (برنامه بومی اندروید) که به آزمایش کنندگان اجازه می دهد یادداشت های انتشار را مشاهده کنند و برنامه را روی دستگاه خود نصب کنند. تستر برای استفاده از لینک نیاز به دسترسی به نسخه دارد.
  • binary_download_uri - پیوندی امضا شده که مستقیماً برنامه باینری برنامه (پرونده APK یا AAB) را بارگیری و نصب می کند. پیوند پس از یک ساعت منقضی می شود.

پس از توزیع ساخت و ساز خود ، در داشبورد App Distribution کنسول Firebase به مدت 150 روز (پنج ماه) در دسترس قرار می گیرد. هنگامی که ساخت و ساز 30 روز از زمان انقضا است ، یک اعلامیه انقضا در کنسول و لیست تستر شما از ساخت در دستگاه تست آنها ظاهر می شود.

آزمایش کننده هایی که برای آزمایش برنامه دعوت نشده اند ، دعوت نامه های ایمیل را برای شروع کار دریافت می کنند ، و آزمایش کنندگان موجود اعلان های ایمیل را دریافت می کنند که یک ساخت جدید آماده آزمایش است ( راهنمای تنظیم تستر را برای دستورالعمل نحوه نصب برنامه تست بخوانید). شما می توانید وضعیت هر تستر را کنترل کنید-آیا آنها دعوت را پذیرفتند و اینکه آیا برنامه را در کنسول Firebase بارگیری کرده اند.

آزمایش کنندگان 30 روز فرصت دارند تا دعوت نامه ای را برای آزمایش برنامه قبل از انقضا بپذیرند. هنگامی که یک دعوت 5 روز از زمان انقضا است ، یک اعلامیه انقضا در کنسول Firebase در کنار تستر در هنگام انتشار ظاهر می شود. با تغییر مجدد آن با استفاده از منوی کشویی در ردیف تستر ، می توان دعوت را تجدید کرد.

مراحل بعدی

،


می توانید با استفاده از افزونه Gradle App Distribution Gradle ، App Distribution در فرآیند ساخت اندرویدی خود ادغام کنید. این افزونه به شما امکان می دهد آزمایش کنندگان خود را مشخص کرده و یادداشت ها را در پرونده Gradle برنامه خود منتشر کنید ، به شما امکان می دهد توزیع ها را برای انواع مختلف ساخت و انواع برنامه خود پیکربندی کنید.

این راهنما نحوه توزیع بسته های برنامه Android (AABS) را به آزمایش کنندگان با استفاده از افزونه Gradle App Distribution توضیح می دهد.

App Distribution با سرویس اشتراک برنامه داخلی Google Play برای پردازش AABS که بارگذاری می کنید و APK هایی را که برای تنظیمات دستگاه تست کنندگان شما بهینه شده اند ، ادغام می کند. توزیع AABS به شما امکان می دهد موارد زیر را انجام دهید:

  • APK های بهینه سازی شده را اجرا کنید (که توسط Google Play سرو می شود) که در دستگاه های آزمایش کننده شما بهینه شده است.

  • موضوعات خاص دستگاه را کشف و اشکال زدایی کنید.

  • ویژگی های بسته نرم افزاری برنامه مانند تحویل ویژگی بازی و تحویل دارایی بازی .

  • اندازه بارگیری ها را برای آزمایش کنندگان خود کاهش دهید.

مجوزهای مورد نیاز

برای بارگذاری AABS در App Distribution ، باید برنامه Firebase خود را به یک برنامه در Google Play پیوند دهید . برای انجام این اقدامات باید سطح دسترسی لازم را داشته باشید.

اگر دسترسی Firebase لازم را ندارید، می‌توانید از مالک پروژه Firebase بخواهید که از طریق تنظیمات IAM کنسول Firebase نقش قابل اجرا را به شما اختصاص دهد. اگر در مورد دسترسی به پروژه Firebase خود، از جمله پیدا کردن یا اختصاص مالک، سؤالی دارید، سؤالات متداول "مجوزها و دسترسی به پروژه های Firebase" را مرور کنید.

جدول زیر برای پیوند دادن یک برنامه Firebase به یک برنامه در Google Play و همچنین بارگذاری AABS اعمال می شود.

اکشن در کنسول Firebase مجوز IAM مورد نیاز است نقش (های) IAM که به طور پیش فرض مجوزهای لازم را شامل می شود نقش (ها) اضافی مورد نیاز
یک برنامه Firebase را به یک برنامه در Google Play پیوند دهید firebase.playLinks.update یکی از نقش های زیر: دسترسی به یک حساب توسعه دهنده Google Play به عنوان مدیر
AABS را در App Distribution بارگذاری کنید firebaseappdistro.releases.update یکی از نقش های زیر: ––

قبل از شروع

  1. اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار ، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.

    اگر از سایر محصولات Firebase استفاده نمی کنید ، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم دارید از محصولات اضافی استفاده کنید ، حتماً تمام مراحل اضافه کردن Firebase را به پروژه Android خود انجام دهید.

  2. برای ایجاد پیوند Firebase به Google Play و بارگذاری AABS ، اطمینان حاصل کنید که برنامه شما شرایط زیر را برآورده می کند:

    • برنامه موجود در Google Play و برنامه Android Firebase هر دو با استفاده از یک نام بسته یکسان ثبت شده اند.

    • برنامه موجود در Google Play روی داشبورد برنامه تنظیم شده است و به یکی از آهنگ های Google Play (آزمایش داخلی ، آزمایش بسته ، آزمایش باز یا تولید) توزیع می شود.

    • بررسی برنامه در Google Play کامل است و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیت های زیر را نشان دهد: آزمایش داخلی (تست داخلی) ، آزمایش بسته ، آزمایش باز یا تولید ، برنامه شما منتشر می شود.

  3. برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:

    1. در کنسول Firebase ، به خود بروید تنظیمات پروژه ، سپس برگه Integrations را انتخاب کنید.

    2. در کارت Google Play ، روی پیوند کلیک کنید.
      اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.

    3. دستورالعمل های روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامه های Android Firebase را برای پیوند به Google Play انتخاب کنید.

    در مورد پیوند دادن به Google Play بیشتر بدانید.

مرحله 1. پروژه Android خود را تنظیم کنید

  1. در پرونده درجه ریشه (سطح پروژه) خود ( <project>/build.gradle.kts یا <project>/build.gradle ) خود را اضافه کنید ، افزونه Gradle App Distribution را به عنوان وابستگی اضافه کنید:

    KotlinGroovy
    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.1.1" apply false
    }
    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.1.1' apply false
    }
  2. در پرونده Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle ) ، افزونه Gradle App Distribution اضافه کنید:

    KotlinGroovy
    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
  3. اگر در پشت پروکسی یا فایروال شرکت هستید ، ویژگی سیستم جاوا زیر را اضافه کنید که App Distribution قادر می سازد توزیع های خود را در Firebase بارگذاری کند:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

مرحله 2. با Firebase تأیید کنید

قبل از اینکه بتوانید از افزونه Gradle استفاده کنید ، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر تأیید کنید. به طور پیش فرض ، افزونه Gradle در صورت استفاده از روش تأیید هویت دیگر ، به دنبال اعتبارنامه از CLI Firebase CLI است.

تأیید اعتبار با یک حساب سرویس به شما امکان می دهد با سیستم ادغام مداوم (CI) خود از افزونه استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:

  • فایل کلید حساب خدمات خود را به build.gradle منتقل کنید. اگر از قبل فایل کلید حساب خدمات خود را در محیط ساخت خود داشته باشید ، ممکن است این روش را راحت پیدا کنید.
  • متغیر محیط GOOGLE_APPLICATION_CREDENTIALS تنظیم کنید تا به پرونده کلید حساب خدمات خود اشاره کنید. اگر قبلاً اعتبار پیش فرض برنامه (ADC) را برای سرویس Google دیگر (به عنوان مثال ، Google Cloud ) تنظیم کنید ، ممکن است این روش را ترجیح دهید.

برای تأیید اعتبار با استفاده از اعتبار حساب خدمات:

  1. در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب خدمات جدید ایجاد کنید.
  2. نقش مدیر Firebase App Distribution را اضافه کنید.
  3. یک کلید JSON خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. حتماً این پرونده را در جایی ایمن نگه دارید ، زیرا دسترسی به مدیر به App Distribution در پروژه Firebase شما را اعطا می کند.
  4. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کردید ، از این مرحله پرش کنید: در کنسول Google APIS ، API Firebase App Distribution فعال کنید. در صورت درخواست ، پروژه را با همان نام پروژه Firebase خود انتخاب کنید.
  5. اعتبار حساب خدمات خود را ارائه یا پیدا کنید:

    1. برای عبور از GRADLE کلید حساب خدمات خود ، در پرونده build.gradle خود ، serviceCredentialsFile را در پرونده Key Key JSON تنظیم کنید.
    2. برای یافتن اعتبار خود با ADC ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS در مسیر پرونده Key Key JSON تنظیم کنید. به عنوان مثال:

       export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
      

      برای کسب اطلاعات بیشتر در مورد تأیید اعتبار با ADC ، ارائه اعتبار برای برنامه خود را بخوانید.

برای راهنمایی در مورد چگونگی تأیید اعتبار پروژه خود ، با Firebase CLI وارد شوید .

مرحله 3. خصوصیات توزیع خود را پیکربندی کنید

در پرونده Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle ) ، با اضافه کردن حداقل یک بخش firebaseAppDistribution App Distribution پیکربندی کنید.

به عنوان مثال ، برای توزیع ساخت release به آزمایش کنندگان ، این دستورالعمل ها را دنبال کنید ::

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

می توانید App Distribution برای انواع ساخت و طعم های محصول پیکربندی کنید.

به عنوان مثال ، برای توزیع debug و release ساخت در "نسخه ی نمایشی" و "کامل" طعم های محصول ، این دستورالعمل ها را دنبال کنید:

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

برای پیکربندی توزیع از پارامترهای زیر استفاده کنید:

App Distribution پارامترهای ساخت
appId

شناسه برنامه Firebase برنامه شما. فقط در صورت نصب افزونه Google Services Gradle مورد نیاز است. می توانید شناسه برنامه را در پرونده google-services.json یا در کنسول Firebase در صفحه تنظیمات عمومی پیدا کنید. مقدار موجود در پرونده build.gradle شما بر خروجی مقدار از افزونه google-services غلبه می کند.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

مسیر حساب خدمات شما پرونده خصوصی JSON. فقط در صورت استفاده از تأیید اعتبار حساب خدمات لازم است.

artifactType

نوع پرونده برنامه شما را مشخص می کند. می تواند روی "AAB" یا "APK" تنظیم شود.

artifactPath

مسیر مطلق به پرونده APK یا AAB که می خواهید بارگذاری کنید.

releaseNotes یا releaseNotesFile

یادداشت های این ساخت را منتشر کنید.

می توانید یادداشت های انتشار را مستقیماً یا مسیر یک فایل متنی ساده مشخص کنید.

testers یا testersFile

آدرس های ایمیل آزمایش کننده هایی که می خواهید ساخت آنها را توزیع کنید.

شما می توانید آزمایش کنندگان را به عنوان لیستی از آدرس های ایمیل جدا شده از کاما مشخص کنید:

testers="ali@example.com, bri@example.com, cal@example.com"

یا می توانید مسیر پرونده ای را که حاوی لیستی از آدرس های ایمیل جدا شده با کاما است ، مشخص کنید:

testersFile="/path/to/testers.txt"
groups یا groupsFile

گروه های تست کننده ای که می خواهید ساخت آنها را توزیع کنید ( به مدیریت آزمایش کنندگان مراجعه کنید). گروه ها با استفاده از آن مشخص می شوند نام مستعار گروهی ، که می توانید در برگه Testers در کنسول App Distribution Firebase پیدا کنید.

شما می توانید گروه ها را به عنوان یک لیست جدا از کاما از نام مستعار گروه مشخص کنید:

groups="qa-team, android-testers"

یا ، می توانید مسیر پرونده ای را که حاوی یک لیست جدا از کاما از نام مستعار گروه است ، مشخص کنید:

groupsFile="/path/to/tester-groups.txt"
testDevices یا testDevicesFile

انواع توزیع زیر بخشی از ویژگی تستر خودکار بتا است.

دستگاه های آزمایشی که می خواهید ساخت آنها را توزیع کنید (به تست های خودکار مراجعه کنید).

شما می توانید دستگاه های تست را به عنوان یک لیست جدا شده از مشخصات دستگاه مشخص کنید:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

یا ، می توانید مسیر یک پرونده را که حاوی یک لیست جدا شده از مشخصات دستگاه است ، مشخص کنید:

testDevicesFile="/path/to/testDevices.txt"
testUsername

نام کاربری برای ورود خودکار در طول تست های خودکار استفاده می شود.

testPassword یا testPasswordFile

رمز ورود ورود خودکار در طی تست های خودکار استفاده می شود.

یا ، می توانید مسیر یک فایل متنی ساده را که حاوی یک رمز عبور است مشخص کنید:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

نام منبع برای قسمت نام کاربری برای ورود خودکار در طول تست های خودکار استفاده می شود.

testPasswordResource

نام منبع برای قسمت رمز عبور برای ورود به سیستم اتوماتیک در طول تست های خودکار استفاده می شود.

testNonBlocking

تست های خودکار را به صورت ناهمزمان اجرا کنید. برای نتایج تست خودکار از کنسول Firebase بازدید کنید.

stacktrace

StackTrace را برای استثنائات کاربر چاپ می کند. این در هنگام اشکال زدایی مسائل مفید است.

مرحله 4. برنامه خود را برای آزمایش کنندگان توزیع کنید

  1. در آخر ، برای بسته بندی برنامه تست خود و دعوت از آزمایش کنندگان ، اهداف را بسازید BUILD-VARIANT و appDistributionUpload BUILD-VARIANT با بسته بندی Gradle Project خود ، که در آن ساختار BUILD-VARIANT عطر و طعم محصول اختیاری و نوع ساخت شما در مرحله قبل است. برای کسب اطلاعات بیشتر در مورد طعم های محصول ، به انواع پیکربندی ساخت مراجعه کنید.

    به عنوان مثال ، برای توزیع برنامه خود با استفاده از نوع ساخت release ، دستور زیر را اجرا کنید:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    یا اگر با حساب Google خود تأیید شده اید و اعتبار خود را در پرونده ساخت Gradle خود ارائه نداده اید ، متغیر FIREBASE_TOKEN درج کنید:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. همچنین می توانید با عبور از آرگومان های خط فرمان به شکل- --<property-name>=<property-value> مقادیر تعیین شده در پرونده build.gradle خود را نادیده بگیرید. به عنوان مثال:

    • برای بارگذاری یک اشکال زدایی در App Distribution :

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • برای دعوت از آزمایش کنندگان اضافی یا حذف آزمایش کنندگان موجود از پروژه Firebase خود:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"

      هنگامی که یک تستر به پروژه Firebase شما اضافه شد ، می توانید آنها را به نسخه های فردی اضافه کنید. آزمایش کننده هایی که حذف شده اند دیگر دسترسی به نسخه های پروژه شما ندارند ، اما ممکن است هنوز دسترسی به نسخه های شما را برای یک پنجره زمان حفظ کنند.

    همچنین می توانید آزمایش کنندگان را با استفاده از --file="/path/to/testers.txt" به جای --emails کنید.

    وظایف appDistributionAddTesters و appDistributionRemoveTesters همچنین استدلال های زیر را می پذیرند:

    • projectNumber : شماره پروژه Firebase شما.

    • serviceCredentialsFile : مسیر پرونده اعتبارنامه خدمات Google شما. این همان استدلالی است که توسط عمل بارگذاری استفاده می شود.

افزونه Gradle پس از بارگذاری انتشار ، پیوندهای زیر را خروجی می کند. این پیوندها به شما در مدیریت باینری ها کمک می کنند و اطمینان حاصل می کنند که آزمایش کنندگان و سایر توسعه دهندگان نسخه صحیح را دارند:

  • firebase_console_uri - پیوندی به کنسول Firebase که یک نسخه واحد را نشان می دهد. می توانید این پیوند را با سایر توسعه دهندگان در ارگ خود به اشتراک بگذارید.
  • testing_uri - پیوندی برای انتشار در Tester Experience (برنامه بومی اندروید) که به آزمایش کنندگان اجازه می دهد یادداشت های انتشار را مشاهده کنند و برنامه را روی دستگاه خود نصب کنند. تستر برای استفاده از لینک نیاز به دسترسی به نسخه دارد.
  • binary_download_uri - پیوندی امضا شده که مستقیماً برنامه باینری برنامه (پرونده APK یا AAB) را بارگیری و نصب می کند. پیوند پس از یک ساعت منقضی می شود.

پس از توزیع ساخت و ساز خود ، در داشبورد App Distribution کنسول Firebase به مدت 150 روز (پنج ماه) در دسترس قرار می گیرد. هنگامی که ساخت و ساز 30 روز از زمان انقضا است ، یک اعلامیه انقضا در کنسول و لیست تستر شما از ساخت در دستگاه تست آنها ظاهر می شود.

آزمایش کننده هایی که برای آزمایش برنامه دعوت نشده اند ، دعوت نامه های ایمیل را برای شروع کار دریافت می کنند ، و آزمایش کنندگان موجود اعلان های ایمیل را دریافت می کنند که یک ساخت جدید آماده آزمایش است ( راهنمای تنظیم تستر را برای دستورالعمل نحوه نصب برنامه تست بخوانید). شما می توانید وضعیت هر تستر را کنترل کنید-آیا آنها دعوت را پذیرفتند و اینکه آیا برنامه را در کنسول Firebase بارگیری کرده اند.

آزمایش کنندگان 30 روز فرصت دارند تا دعوت نامه ای را برای آزمایش برنامه قبل از انقضا بپذیرند. هنگامی که یک دعوت 5 روز از زمان انقضا است ، یک اعلامیه انقضا در کنسول Firebase در کنار تستر در هنگام انتشار ظاهر می شود. با تغییر مجدد آن با استفاده از منوی کشویی در ردیف تستر ، می توان دعوت را تجدید کرد.

مراحل بعدی

،


می توانید با استفاده از افزونه Gradle App Distribution Gradle ، App Distribution در فرآیند ساخت اندرویدی خود ادغام کنید. این افزونه به شما امکان می دهد آزمایش کنندگان خود را مشخص کرده و یادداشت ها را در پرونده Gradle برنامه خود منتشر کنید ، به شما امکان می دهد توزیع ها را برای انواع مختلف ساخت و انواع برنامه خود پیکربندی کنید.

این راهنما نحوه توزیع بسته های برنامه Android (AABS) را به آزمایش کنندگان با استفاده از افزونه Gradle App Distribution توضیح می دهد.

App Distribution با سرویس اشتراک برنامه داخلی Google Play برای پردازش AABS که بارگذاری می کنید و APK هایی را که برای تنظیمات دستگاه تست کنندگان شما بهینه شده اند ، ادغام می کند. توزیع AABS به شما امکان می دهد موارد زیر را انجام دهید:

  • APK های بهینه سازی شده را اجرا کنید (که توسط Google Play سرو می شود) که در دستگاه های آزمایش کننده شما بهینه شده است.

  • موضوعات خاص دستگاه را کشف و اشکال زدایی کنید.

  • ویژگی های بسته نرم افزاری برنامه مانند تحویل ویژگی بازی و تحویل دارایی بازی .

  • اندازه بارگیری ها را برای آزمایش کنندگان خود کاهش دهید.

مجوزهای مورد نیاز

برای بارگذاری AABS در App Distribution ، باید برنامه Firebase خود را به یک برنامه در Google Play پیوند دهید . برای انجام این اقدامات باید سطح دسترسی لازم را داشته باشید.

اگر دسترسی Firebase لازم را ندارید، می‌توانید از مالک پروژه Firebase بخواهید که از طریق تنظیمات IAM کنسول Firebase نقش قابل اجرا را به شما اختصاص دهد. اگر در مورد دسترسی به پروژه Firebase خود، از جمله پیدا کردن یا اختصاص مالک، سؤالی دارید، سؤالات متداول "مجوزها و دسترسی به پروژه های Firebase" را مرور کنید.

جدول زیر برای پیوند دادن یک برنامه Firebase به یک برنامه در Google Play و همچنین بارگذاری AABS اعمال می شود.

اکشن در کنسول Firebase مجوز IAM مورد نیاز است نقش (های) IAM که به طور پیش فرض مجوزهای لازم را شامل می شود نقش (ها) اضافی مورد نیاز
یک برنامه Firebase را به یک برنامه در Google Play پیوند دهید firebase.playLinks.update یکی از نقش های زیر: دسترسی به یک حساب توسعه دهنده Google Play به عنوان مدیر
AABS را در App Distribution بارگذاری کنید firebaseappdistro.releases.update یکی از نقش های زیر: ––

قبل از شروع

  1. اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار ، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.

    اگر از سایر محصولات Firebase استفاده نمی کنید ، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم دارید از محصولات اضافی استفاده کنید ، حتماً تمام مراحل اضافه کردن Firebase را به پروژه Android خود انجام دهید.

  2. برای ایجاد پیوند Firebase به Google Play و بارگذاری AABS ، اطمینان حاصل کنید که برنامه شما شرایط زیر را برآورده می کند:

    • برنامه موجود در Google Play و برنامه Android Firebase هر دو با استفاده از یک نام بسته یکسان ثبت شده اند.

    • برنامه موجود در Google Play روی داشبورد برنامه تنظیم شده است و به یکی از آهنگ های Google Play (آزمایش داخلی ، آزمایش بسته ، آزمایش باز یا تولید) توزیع می شود.

    • بررسی برنامه در Google Play کامل است و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیت های زیر را نشان دهد: آزمایش داخلی (تست داخلی) ، آزمایش بسته ، آزمایش باز یا تولید ، برنامه شما منتشر می شود.

  3. برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:

    1. در کنسول Firebase ، به خود بروید تنظیمات پروژه ، سپس برگه Integrations را انتخاب کنید.

    2. در کارت Google Play ، روی پیوند کلیک کنید.
      اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.

    3. دستورالعمل های روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامه های Android Firebase را برای پیوند به Google Play انتخاب کنید.

    در مورد پیوند دادن به Google Play بیشتر بدانید.

مرحله 1. پروژه Android خود را تنظیم کنید

  1. در پرونده درجه ریشه (سطح پروژه) خود ( <project>/build.gradle.kts یا <project>/build.gradle ) خود را اضافه کنید ، افزونه Gradle App Distribution را به عنوان وابستگی اضافه کنید:

    KotlinGroovy
    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.1.1" apply false
    }
    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.1.1' apply false
    }
  2. در پرونده Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle ) ، افزونه Gradle App Distribution اضافه کنید:

    KotlinGroovy
    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
  3. اگر در پشت پروکسی یا فایروال شرکت هستید ، ویژگی سیستم جاوا زیر را اضافه کنید که App Distribution قادر می سازد توزیع های خود را در Firebase بارگذاری کند:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

مرحله 2. با Firebase تأیید کنید

قبل از اینکه بتوانید از افزونه Gradle استفاده کنید ، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر تأیید کنید. به طور پیش فرض ، افزونه Gradle در صورت استفاده از روش تأیید هویت دیگر ، به دنبال اعتبارنامه از CLI Firebase CLI است.

تأیید اعتبار با یک حساب سرویس به شما امکان می دهد با سیستم ادغام مداوم (CI) خود از افزونه استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:

  • فایل کلید حساب خدمات خود را به build.gradle منتقل کنید. اگر از قبل فایل کلید حساب خدمات خود را در محیط ساخت خود داشته باشید ، ممکن است این روش را راحت پیدا کنید.
  • متغیر محیط GOOGLE_APPLICATION_CREDENTIALS تنظیم کنید تا به پرونده کلید حساب خدمات خود اشاره کنید. اگر قبلاً اعتبار پیش فرض برنامه (ADC) را برای سرویس Google دیگر (به عنوان مثال ، Google Cloud ) تنظیم کنید ، ممکن است این روش را ترجیح دهید.

برای تأیید اعتبار با استفاده از اعتبار حساب خدمات:

  1. در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب خدمات جدید ایجاد کنید.
  2. نقش مدیر Firebase App Distribution را اضافه کنید.
  3. یک کلید JSON خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. حتماً این پرونده را در جایی ایمن نگه دارید ، زیرا دسترسی به مدیر به App Distribution در پروژه Firebase شما را اعطا می کند.
  4. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کردید ، از این مرحله پرش کنید: در کنسول Google APIS ، API Firebase App Distribution فعال کنید. در صورت درخواست ، پروژه را با همان نام پروژه Firebase خود انتخاب کنید.
  5. اعتبار حساب خدمات خود را ارائه یا پیدا کنید:

    1. برای عبور از GRADLE کلید حساب خدمات خود ، در پرونده build.gradle خود ، serviceCredentialsFile را در پرونده Key Key JSON تنظیم کنید.
    2. برای یافتن اعتبار خود با ADC ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS در مسیر پرونده Key Key JSON تنظیم کنید. به عنوان مثال:

       export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
      

      برای کسب اطلاعات بیشتر در مورد تأیید اعتبار با ADC ، ارائه اعتبار برای برنامه خود را بخوانید.

برای راهنمایی در مورد چگونگی تأیید اعتبار پروژه خود ، با Firebase CLI وارد شوید .

Step 3. Configure your distribution properties

In your module (app-level) Gradle file (usually <project>/<app-module>/build.gradle.kts or <project>/<app-module>/build.gradle ), configure App Distribution by adding at least one firebaseAppDistribution section.

For example, to distribute the release build to testers, follow these instructions::

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

You can configure App Distribution for build types and product flavors .

For example, to distribute debug and release builds in "demo" and "full" product flavors, follow these instructions:

KotlinGroovy
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}
android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

Use the following parameters to configure the distribution:

App Distribution Build Parameters
appId

Your app's Firebase App ID. Required only if you don't have the Google Services Gradle plugin installed. You can find the App ID in the google-services.json file or in the Firebase console on the General Settings page . The value in your build.gradle file overrides the value output from the google-services plugin.

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

The path to your service account private key JSON file. Required only if you use service account authentication.

artifactType

Specifies your app's file type. Can be set to "AAB" or "APK" .

artifactPath

Absolute path to the APK or AAB file you want to upload.

releaseNotes or releaseNotesFile

Release notes for this build.

You can either specify the release notes directly or the path to a plain text file.

testers or testersFile

The email addresses of the testers you want to distribute builds to.

You can specify the testers as a comma-separated list of email addresses:

testers="ali@example.com, bri@example.com, cal@example.com"

Or, you can specify the path to a file containing a comma-separated list of email addresses:

testersFile="/path/to/testers.txt"
groups or groupsFile

The tester groups you want to distribute builds to (see Manage testers ). Groups are specified using group aliases , which you can find in the Testers tab in the Firebase App Distribution console.

You can specify the groups as a comma-separated list of group aliases:

groups="qa-team, android-testers"

Or, you can specify the path to a file containing a comma-separated list of group aliases:

groupsFile="/path/to/tester-groups.txt"
testDevices or testDevicesFile

The following distribution types are part of the Automated tester beta feature .

The test devices you want to distribute builds to (see Automated tests ).

You can specify the test devices as a semicolon-separated list of device specifications:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

Or, you can specify the path to a file containing a semicolon-separated list of device specifications:

testDevicesFile="/path/to/testDevices.txt"
testUsername

The username for automatic login to be used during automated tests .

testPassword or testPasswordFile

The password for automatic login to be used during automated tests .

Or, you can specify the path to a plain text file containing a password:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

Resource name for the username field for automatic login to be used during automated tests .

testPasswordResource

Resource name for the password field for automatic login to be used during automated tests .

testNonBlocking

Run automated tests asynchronously. Visit the Firebase console for the automatic test results.

stacktrace

Prints out the stacktrace for user exceptions. This is helpful when debugging issues.

Step 4. Distribute your app to testers

  1. Finally, to package your test app and invite testers, build the targets BUILD-VARIANT and appDistributionUpload BUILD-VARIANT with your project's Gradle wrapper, where BUILD-VARIANT is the optional product flavor and build type you configured in the previous step. For more information about product flavors, see Configure build variants .

    For example, to distribute your app using the release build variant, run the following command:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    Or, if you authenticated with your Google Account and didn't provide credentials in your Gradle build file, include the FIREBASE_TOKEN variable:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. You can also override the values set in your build.gradle file by passing command line arguments in the form of --<property-name>=<property-value> . به عنوان مثال:

    • To upload a debug build to App Distribution :

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • To invite additional testers or remove existing testers from your Firebase project:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"

      Once a tester has been added to your Firebase project, you can add them to individual releases. Testers who are removed will no longer have access to releases in your project, but may still retain access to your releases for a window of time.

    You can also specify testers using --file="/path/to/testers.txt" instead of --emails .

    The appDistributionAddTesters and appDistributionRemoveTesters tasks also accept the following arguments:

    • projectNumber : Your Firebase project number.

    • serviceCredentialsFile : The path to your Google service credentials file. This is the same argument used by the upload action.

The Gradle plugin outputs the following links after the release upload. These links help you manage binaries and ensure that testers and other developers have the right release:

  • firebase_console_uri - A link to the Firebase console displaying a single release. You can share this link with other developers in your org.
  • testing_uri - A link to the release in the tester experience (Android native app) that lets testers view release notes and install the app onto their device. The tester needs access to the release in order to use the link.
  • binary_download_uri - A signed link that directly downloads and installs the app binary (APK or AAB file). The link expires after one hour.

Once you distribute your build, it becomes available in the App Distribution dashboard of the Firebase console for 150 days (five months). When the build is 30 days from expiring, an expiration notice appears in both the console and your tester's list of builds on their test device.

Testers who haven't been invited to test the app receive email invitations to get started, and existing testers receive email notifications that a new build is ready to test (read the tester set up guide for instructions on how to install the test app). You can monitor the status of each tester-whether they accepted the invitation and whether they downloaded the app-in the Firebase console.

Testers have 30 days to accept an invitation to test the app before it expires. When an invitation is 5 days from expiring, an expiration notice appears in the Firebase console next to the tester on a release. An invitation can be renewed by resending it using the drop-down menu on the tester row.

مراحل بعدی