میتوانید با استفاده از پلاگین 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 | یکی از نقش های زیر: | –– |
قبل از شروع
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.
اگر از محصولات Firebase دیگری استفاده نمی کنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم به استفاده از محصولات اضافی دارید، مطمئن شوید که تمام مراحل افزودن Firebase به پروژه Android خود را کامل کرده اید.
برای ایجاد پیوند Firebase به Google Play و آپلود AAB، مطمئن شوید که برنامه شما شرایط زیر را دارد:
برنامه در Google Play و برنامه Firebase Android هر دو با استفاده از یک نام بسته ثبت شده اند.
برنامه در Google Play در داشبورد برنامه راهاندازی میشود و در یکی از مسیرهای Google Play (تست داخلی، آزمایش بسته، آزمایش باز یا تولید) توزیع میشود.
بررسی اپلیکیشن در گوگل پلی کامل شد و اپلیکیشن منتشر شد. اگر ستون وضعیت برنامه یکی از وضعیتهای زیر را نمایش دهد، برنامه شما منتشر میشود: آزمایش داخلی (نه آزمایش داخلی پیشنویس)، آزمایش بسته، آزمایش باز یا تولید.
برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:
در کنسول Firebase ، به قسمت خود بروید
در کارت Google Play ، روی پیوند کلیک کنید.
اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.دستورالعملهای روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامههای Firebase Android را انتخاب کنید تا به Google Play پیوند داده شوند.
درباره پیوند دادن به Google Play بیشتر بیاموزید.
مرحله 1. پروژه اندروید خود را راه اندازی کنید
در فایل Gradle در سطح ریشه (سطح پروژه) خود ( <project>/build.gradle.kts
یا<project>/build.gradle
)، افزونه App Distribution Gradle را به عنوان یک وابستگی اضافه کنید: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 }
در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts
یا<project>/<app-module>/build.gradle
)، افزونه App Distribution Gradle را اضافه کنید: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' }
اگر پشت پراکسی یا فایروال شرکتی هستید، ویژگی سیستم جاوا زیر را اضافه کنید که به App Distribution امکان میدهد توزیعهای شما را در Firebase آپلود کند: -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
مرحله 2. با Firebase احراز هویت
از اعتبار حساب سرویس Firebase استفاده کنید
فایل کلید حساب سرویس خود را به build.gradle
ارسال کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید.متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کردهاید، ممکن است این روش را ترجیح دهید.
در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید. نقش مدیر Firebase App Distribution را اضافه کنید. یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید. اطلاعات حساب سرویس خود را ارائه یا پیدا کنید: برای پاس کردن کلید حساب کاربری Gradle، در فایل build.gradle
، ویژگیserviceCredentialsFile
را روی فایل JSON کلید خصوصی تنظیم کنید.برای تعیین مکان اعتبار خود با ADC، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS
را روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.
با استفاده از Firebase CLI وارد شوید
مرحله 3. ویژگی های توزیع خود را پیکربندی کنید
<project>/<app-module>/build.gradle.kts
یا <project>/<app-module>/build.gradle
)، App Distribution با افزودن حداقل یک بخش firebaseAppDistribution
پیکربندی کنید.
release
بین آزمایشکنندگان، دستورالعملهای زیر را دنبال کنید:
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" } } } // ... }
debug
و release
بیلدها در طعمهای «دمو» و «کامل»، این دستورالعملها را دنبال کنید:
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 را نصب نکرده باشید، الزامی است. میتوانید شناسه برنامه را در فایل appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | مسیر فایل JSON کلید خصوصی حساب سرویس شما. فقط در صورت استفاده از احراز هویت حساب سرویس مورد نیاز است. |
artifactType | نوع فایل برنامه شما را مشخص می کند. را می توان روی |
artifactPath | مسیر مطلق به فایل APK یا AAB که میخواهید آپلود کنید. |
releaseNotes یا releaseNotesFile | یادداشت های انتشار برای این ساخت. شما می توانید یادداشت های انتشار را مستقیماً یا مسیر یک فایل متنی ساده را مشخص کنید. |
testers یا testersFile | آدرسهای ایمیل آزمایشکنندگانی که میخواهید ساختها را در آنها توزیع کنید. میتوانید آزمایشکنندهها را بهعنوان فهرستی از آدرسهای ایمیل جدا شده با کاما مشخص کنید: testers="ali@example.com, bri@example.com, cal@example.com" یا میتوانید مسیر فایل حاوی فهرستی از آدرسهای ایمیل جدا شده با کاما را مشخص کنید: testersFile="/path/to/testers.txt" |
groups یا groupsFile | گروههای آزمایشکنندهای که میخواهید ساختها را در آنها توزیع کنید ( به مدیریت آزمایشکنندگان رجوع کنید). گروه ها با استفاده از آن مشخص می شوند میتوانید گروهها را بهعنوان فهرستی از نامهای مستعار گروهی جدا شده با کاما مشخص کنید: 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. برنامه خود را بین آزمایش کنندگان توزیع کنید
در نهایت، برای بسته بندی برنامه آزمایشی خود و دعوت از آزمایش کنندگان، اهداف را بسازید 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
همچنین می توانید با ارسال آرگومان های خط فرمان به شکل --<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 شما. این همان آرگومان مورد استفاده در عمل آپلود است.
firebase_console_uri
- پیوندی به کنسول Firebase که یک نسخه را نمایش میدهد. می توانید این پیوند را با سایر توسعه دهندگان در سازمان خود به اشتراک بگذارید.testing_uri
- پیوندی به نسخه در تجربه آزمایشکننده (برنامه بومی Android) که به آزمایشکنندگان اجازه میدهد یادداشتهای انتشار را مشاهده کرده و برنامه را روی دستگاه خود نصب کنند. آزمایشکننده برای استفاده از پیوند نیاز به دسترسی به انتشار دارد.binary_download_uri
- پیوند امضا شده ای که مستقیماً برنامه باینری (فایل APK یا AAB) را دانلود و نصب می کند. لینک بعد از یک ساعت منقضی می شود.
مراحل بعدی
بازخورد درونبرنامهای را پیادهسازی کنید تا آزمایشکنندگان بتوانند بازخورد درباره برنامه شما (از جمله تصاویر صفحه) ارسال کنند. با نحوه نمایش هشدارهای درونبرنامهای به آزمایشکنندگان خود، هنگامی که ساختهای جدید برنامهتان برای نصب در دسترس هستند، آشنا شوید. برای آشنایی با نحوه توزیع نسخههای بسته نرمافزاری گام به گام، از نرمافزار Android App Bundle دیدن کنید. بهترین روشها را برای توزیع برنامههای Android به آزمایشکنندگان QA با استفاده از CI/CD بیاموزید.
میتوانید با استفاده از پلاگین 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 | یکی از نقش های زیر: | –– |
قبل از شروع
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.
اگر از محصولات Firebase دیگری استفاده نمی کنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم به استفاده از محصولات اضافی دارید، مطمئن شوید که تمام مراحل افزودن Firebase به پروژه Android خود را کامل کرده اید.
برای ایجاد پیوند Firebase به Google Play و آپلود AAB، مطمئن شوید که برنامه شما شرایط زیر را دارد:
برنامه در Google Play و برنامه Firebase Android هر دو با استفاده از یک نام بسته ثبت شده اند.
برنامه در Google Play در داشبورد برنامه راهاندازی میشود و در یکی از مسیرهای Google Play (تست داخلی، آزمایش بسته، آزمایش باز یا تولید) توزیع میشود.
بررسی اپلیکیشن در گوگل پلی کامل شد و اپلیکیشن منتشر شد. اگر ستون وضعیت برنامه یکی از وضعیتهای زیر را نمایش دهد، برنامه شما منتشر میشود: آزمایش داخلی (نه آزمایش داخلی پیشنویس)، آزمایش بسته، آزمایش باز یا تولید.
برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:
در کنسول Firebase ، به قسمت خود بروید در کارت Google Play ، روی پیوند کلیک کنید.
اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.دستورالعملهای روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامههای Firebase Android را انتخاب کنید تا به Google Play پیوند داده شوند.
درباره پیوند دادن به Google Play بیشتر بیاموزید.
مرحله 1. پروژه اندروید خود را راه اندازی کنید
در فایل Gradle در سطح ریشه (سطح پروژه) خود ( <project>/build.gradle.kts
یا<project>/build.gradle
)، افزونه App Distribution Gradle را به عنوان یک وابستگی اضافه کنید: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 }
در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle.kts
یا<project>/<app-module>/build.gradle
)، افزونه App Distribution Gradle را اضافه کنید: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' }
اگر پشت پراکسی یا فایروال شرکتی هستید، ویژگی سیستم جاوا زیر را اضافه کنید که به App Distribution امکان میدهد توزیعهای شما را در Firebase آپلود کند: -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
مرحله 2. با Firebase احراز هویت
از اعتبار حساب سرویس Firebase استفاده کنید
فایل کلید حساب سرویس خود را به build.gradle
ارسال کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید.متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کردهاید، ممکن است این روش را ترجیح دهید.
در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید. نقش مدیر Firebase App Distribution را اضافه کنید. یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید. اطلاعات حساب سرویس خود را ارائه یا پیدا کنید: برای پاس کردن کلید حساب کاربری Gradle، در فایل build.gradle
، ویژگیserviceCredentialsFile
را روی فایل JSON کلید خصوصی تنظیم کنید.برای تعیین مکان اعتبار خود با ADC، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS
را روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.
با استفاده از Firebase CLI وارد شوید
مرحله 3. ویژگی های توزیع خود را پیکربندی کنید
<project>/<app-module>/build.gradle.kts
یا <project>/<app-module>/build.gradle
)، App Distribution با افزودن حداقل یک بخش firebaseAppDistribution
پیکربندی کنید.
release
بین آزمایشکنندگان، دستورالعملهای زیر را دنبال کنید:
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" } } } // ... }
debug
و release
بیلدها در طعم های "دمو" و "کامل" محصول، این دستورالعمل ها را دنبال کنید:
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 را نصب نکرده باشید، الزامی است. میتوانید شناسه برنامه را در فایل appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | مسیر فایل JSON کلید خصوصی حساب سرویس شما. فقط در صورت استفاده از احراز هویت حساب سرویس مورد نیاز است. |
artifactType | نوع فایل برنامه شما را مشخص می کند. را می توان روی |
artifactPath | مسیر مطلق به فایل APK یا AAB که میخواهید آپلود کنید. |
releaseNotes یا releaseNotesFile | یادداشت های انتشار برای این ساخت. شما می توانید یادداشت های انتشار را مستقیماً یا مسیر یک فایل متنی ساده را مشخص کنید. |
testers یا testersFile | آدرسهای ایمیل آزمایشکنندگانی که میخواهید ساختها را در آنها توزیع کنید. میتوانید آزمایشکنندهها را بهعنوان فهرستی از آدرسهای ایمیل جدا شده با کاما مشخص کنید: testers="ali@example.com, bri@example.com, cal@example.com" یا میتوانید مسیر فایل حاوی فهرستی از آدرسهای ایمیل جدا شده با کاما را مشخص کنید: testersFile="/path/to/testers.txt" |
groups یا groupsFile | گروههای آزمایشکنندهای که میخواهید ساختها را در آنها توزیع کنید ( به مدیریت آزمایشکنندگان رجوع کنید). گروه ها با استفاده از آن مشخص می شوند میتوانید گروهها را بهعنوان فهرستی از نامهای مستعار گروهی جدا شده با کاما مشخص کنید: 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. برنامه خود را برای آزمایش کنندگان توزیع کنید
در آخر ، برای بسته بندی برنامه تست خود و دعوت از آزمایش کنندگان ، اهداف را بسازید 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
همچنین می توانید با عبور از آرگومان های خط فرمان به شکل- --<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 شما. این همان استدلالی است که توسط عمل بارگذاری استفاده می شود.
firebase_console_uri
- پیوندی به کنسول Firebase که یک نسخه واحد را نشان می دهد. می توانید این پیوند را با سایر توسعه دهندگان در ارگ خود به اشتراک بگذارید.testing_uri
- پیوندی برای انتشار در Tester Experience (برنامه بومی اندروید) که به آزمایش کنندگان اجازه می دهد یادداشت های انتشار را مشاهده کنند و برنامه را روی دستگاه خود نصب کنند. تستر برای استفاده از لینک نیاز به دسترسی به نسخه دارد.binary_download_uri
- پیوندی امضا شده که مستقیماً برنامه باینری برنامه (پرونده APK یا AAB) را بارگیری و نصب می کند. پیوند پس از یک ساعت منقضی می شود.
مراحل بعدی
بازخورد درون برنامه ای را پیاده سازی کنید تا آزمایش کنندگان بتوانند بازخورد در مورد برنامه خود (از جمله تصاویر) را برای آزمایش کنندگان آسان کنند. بیاموزید که وقتی ساختهای جدید برنامه شما برای نصب در دسترس است ، هشدارهای درون برنامه ای را به آزمایش کنندگان خود نمایش دهید. برای یادگیری نحوه توزیع نسخه بسته های برنامه به صورت مرحله به مرحله ، از برنامه Android CodeLab CodeLab بازدید کنید. بهترین شیوه ها را برای توزیع برنامه های Android به آزمایش کنندگان QA با استفاده از CI/CD بیاموزید.
می توانید با استفاده از افزونه 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 | یکی از نقش های زیر: | –– |
قبل از شروع
اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار ، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.
اگر از سایر محصولات Firebase استفاده نمی کنید ، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم دارید از محصولات اضافی استفاده کنید ، حتماً تمام مراحل اضافه کردن Firebase را به پروژه Android خود انجام دهید.
برای ایجاد پیوند Firebase به Google Play و بارگذاری AABS ، اطمینان حاصل کنید که برنامه شما شرایط زیر را برآورده می کند:
برنامه موجود در Google Play و برنامه Android Firebase هر دو با استفاده از یک نام بسته یکسان ثبت شده اند.
برنامه موجود در Google Play روی داشبورد برنامه تنظیم شده است و به یکی از آهنگ های Google Play (آزمایش داخلی ، آزمایش بسته ، آزمایش باز یا تولید) توزیع می شود.
بررسی برنامه در Google Play کامل است و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیت های زیر را نشان دهد: آزمایش داخلی (تست داخلی) ، آزمایش بسته ، آزمایش باز یا تولید ، برنامه شما منتشر می شود.
برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:
در کنسول Firebase ، به خود بروید در کارت Google Play ، روی پیوند کلیک کنید.
اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.دستورالعمل های روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامه های Android Firebase را برای پیوند به Google Play انتخاب کنید.
در مورد پیوند دادن به Google Play بیشتر بدانید.
مرحله 1. پروژه Android خود را تنظیم کنید
در پرونده درجه ریشه (سطح پروژه) خود ( <project>/build.gradle.kts
یا<project>/build.gradle
) خود را اضافه کنید ، افزونه Gradle App Distribution را به عنوان وابستگی اضافه کنید: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 }
در پرونده Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts
یا<project>/<app-module>/build.gradle
) ، افزونه Gradle App Distribution اضافه کنید: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' }
اگر در پشت پروکسی یا فایروال شرکت هستید ، ویژگی سیستم جاوا زیر را اضافه کنید که App Distribution قادر می سازد توزیع های خود را در Firebase بارگذاری کند: -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
مرحله 2. با Firebase تأیید کنید
از اعتبارنامه حساب خدمات Firebase استفاده کنید
فایل کلید حساب خدمات خود را به build.gradle
منتقل کنید. اگر از قبل فایل کلید حساب خدمات خود را در محیط ساخت خود داشته باشید ، ممکن است این روش را راحت پیدا کنید.متغیر محیط GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به پرونده کلید حساب خدمات خود اشاره کنید. اگر قبلاً اعتبار پیش فرض برنامه (ADC) را برای سرویس Google دیگر (به عنوان مثال ، Google Cloud ) تنظیم کنید ، ممکن است این روش را ترجیح دهید.
در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب خدمات جدید ایجاد کنید. نقش مدیر Firebase App Distribution را اضافه کنید. یک کلید JSON خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. حتماً این پرونده را در جایی ایمن نگه دارید ، زیرا دسترسی به مدیر به App Distribution در پروژه Firebase شما را اعطا می کند. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کردید ، از این مرحله پرش کنید: در کنسول Google APIS ، API Firebase App Distribution فعال کنید. در صورت درخواست ، پروژه را با همان نام پروژه Firebase خود انتخاب کنید. اعتبار حساب خدمات خود را ارائه یا پیدا کنید: برای عبور از GRADLE کلید حساب خدمات خود ، در پرونده build.gradle
خود ،serviceCredentialsFile
را در پرونده Key Key JSON تنظیم کنید.برای یافتن اعتبار خود با ADC ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS
در مسیر پرونده Key Key JSON تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای کسب اطلاعات بیشتر در مورد تأیید اعتبار با ADC ، ارائه اعتبار برای برنامه خود را بخوانید.
با استفاده از CLI Firebase وارد شوید
مرحله 3. خصوصیات توزیع خود را پیکربندی کنید
<project>/<app-module>/build.gradle.kts
یا <project>/<app-module>/build.gradle
) ، با اضافه کردن حداقل یک بخش firebaseAppDistribution
App Distribution پیکربندی کنید.
release
به آزمایش کنندگان ، این دستورالعمل ها را دنبال کنید ::
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" } } } // ... }
debug
و release
ساخت در "نسخه ی نمایشی" و "کامل" طعم های محصول ، این دستورالعمل ها را دنبال کنید:
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 مورد نیاز است. می توانید شناسه برنامه را در پرونده appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | مسیر حساب خدمات شما پرونده خصوصی JSON. فقط در صورت استفاده از تأیید اعتبار حساب خدمات لازم است. |
artifactType | نوع پرونده برنامه شما را مشخص می کند. می تواند روی |
artifactPath | مسیر مطلق به پرونده APK یا AAB که می خواهید بارگذاری کنید. |
releaseNotes یا releaseNotesFile | یادداشت های این ساخت را منتشر کنید. می توانید یادداشت های انتشار را مستقیماً یا مسیر یک فایل متنی ساده مشخص کنید. |
testers یا testersFile | آدرس های ایمیل آزمایش کننده هایی که می خواهید ساخت آنها را توزیع کنید. شما می توانید آزمایش کنندگان را به عنوان لیستی از آدرس های ایمیل جدا شده از کاما مشخص کنید: testers="ali@example.com, bri@example.com, cal@example.com" یا می توانید مسیر پرونده ای را که حاوی لیستی از آدرس های ایمیل جدا شده با کاما است ، مشخص کنید: testersFile="/path/to/testers.txt" |
groups یا groupsFile | گروه های تست کننده ای که می خواهید ساخت آنها را توزیع کنید ( به مدیریت آزمایش کنندگان مراجعه کنید). گروه ها با استفاده از آن مشخص می شوند شما می توانید گروه ها را به عنوان یک لیست جدا از کاما از نام مستعار گروه مشخص کنید: 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. برنامه خود را برای آزمایش کنندگان توزیع کنید
در آخر ، برای بسته بندی برنامه تست خود و دعوت از آزمایش کنندگان ، اهداف را بسازید 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
همچنین می توانید با عبور از آرگومان های خط فرمان به شکل- --<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 شما. این همان استدلالی است که توسط عمل بارگذاری استفاده می شود.
firebase_console_uri
- پیوندی به کنسول Firebase که یک نسخه واحد را نشان می دهد. می توانید این پیوند را با سایر توسعه دهندگان در ارگ خود به اشتراک بگذارید.testing_uri
- پیوندی برای انتشار در Tester Experience (برنامه بومی اندروید) که به آزمایش کنندگان اجازه می دهد یادداشت های انتشار را مشاهده کنند و برنامه را روی دستگاه خود نصب کنند. تستر برای استفاده از لینک نیاز به دسترسی به نسخه دارد.binary_download_uri
- پیوندی امضا شده که مستقیماً برنامه باینری برنامه (پرونده APK یا AAB) را بارگیری و نصب می کند. پیوند پس از یک ساعت منقضی می شود.
مراحل بعدی
بازخورد درون برنامه ای را پیاده سازی کنید تا آزمایش کنندگان بتوانند بازخورد در مورد برنامه خود (از جمله تصاویر) را برای آزمایش کنندگان آسان کنند. بیاموزید که وقتی ساختهای جدید برنامه شما برای نصب در دسترس است ، هشدارهای درون برنامه ای را به آزمایش کنندگان خود نمایش دهید. برای یادگیری نحوه توزیع نسخه بسته های برنامه به صورت مرحله به مرحله ، از برنامه Android CodeLab CodeLab بازدید کنید. بهترین شیوه ها را برای توزیع برنامه های Android به آزمایش کنندگان QA با استفاده از CI/CD بیاموزید.
می توانید با استفاده از افزونه 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 | یکی از نقش های زیر: | –– |
قبل از شروع
اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه Android خود اضافه کنید . در پایان این گردش کار ، یک برنامه Android Firebase در پروژه Firebase خود خواهید داشت.
اگر از سایر محصولات Firebase استفاده نمی کنید ، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم دارید از محصولات اضافی استفاده کنید ، حتماً تمام مراحل اضافه کردن Firebase را به پروژه Android خود انجام دهید.
برای ایجاد پیوند Firebase به Google Play و بارگذاری AABS ، اطمینان حاصل کنید که برنامه شما شرایط زیر را برآورده می کند:
برنامه موجود در Google Play و برنامه Android Firebase هر دو با استفاده از یک نام بسته یکسان ثبت شده اند.
برنامه موجود در Google Play روی داشبورد برنامه تنظیم شده است و به یکی از آهنگ های Google Play (آزمایش داخلی ، آزمایش بسته ، آزمایش باز یا تولید) توزیع می شود.
بررسی برنامه در Google Play کامل است و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیت های زیر را نشان دهد: آزمایش داخلی (تست داخلی) ، آزمایش بسته ، آزمایش باز یا تولید ، برنامه شما منتشر می شود.
برنامه Firebase Android خود را به حساب توسعه دهنده Google Play خود پیوند دهید:
در کنسول Firebase ، به خود بروید در کارت Google Play ، روی پیوند کلیک کنید.
اگر قبلاً پیوندهایی به Google Play دارید، به جای آن روی Manage کلیک کنید.دستورالعمل های روی صفحه را دنبال کنید تا ادغام App Distribution فعال کنید و برنامه های Android Firebase را برای پیوند به Google Play انتخاب کنید.
در مورد پیوند دادن به Google Play بیشتر بدانید.
مرحله 1. پروژه Android خود را تنظیم کنید
در پرونده درجه ریشه (سطح پروژه) خود ( <project>/build.gradle.kts
یا<project>/build.gradle
) خود را اضافه کنید ، افزونه Gradle App Distribution را به عنوان وابستگی اضافه کنید: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 }
در پرونده Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts
یا<project>/<app-module>/build.gradle
) ، افزونه Gradle App Distribution اضافه کنید: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' }
اگر در پشت پروکسی یا فایروال شرکت هستید ، ویژگی سیستم جاوا زیر را اضافه کنید که App Distribution قادر می سازد توزیع های خود را در Firebase بارگذاری کند: -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
مرحله 2. با Firebase تأیید کنید
از اعتبارنامه حساب خدمات Firebase استفاده کنید
فایل کلید حساب خدمات خود را به build.gradle
منتقل کنید. اگر از قبل فایل کلید حساب خدمات خود را در محیط ساخت خود داشته باشید ، ممکن است این روش را راحت پیدا کنید.متغیر محیط GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به پرونده کلید حساب خدمات خود اشاره کنید. اگر قبلاً اعتبار پیش فرض برنامه (ADC) را برای سرویس Google دیگر (به عنوان مثال ، Google Cloud ) تنظیم کنید ، ممکن است این روش را ترجیح دهید.
در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب خدمات جدید ایجاد کنید. نقش مدیر Firebase App Distribution را اضافه کنید. یک کلید JSON خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. حتماً این پرونده را در جایی ایمن نگه دارید ، زیرا دسترسی به مدیر به App Distribution در پروژه Firebase شما را اعطا می کند. اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کردید ، از این مرحله پرش کنید: در کنسول Google APIS ، API Firebase App Distribution فعال کنید. در صورت درخواست ، پروژه را با همان نام پروژه Firebase خود انتخاب کنید. اعتبار حساب خدمات خود را ارائه یا پیدا کنید: برای عبور از GRADLE کلید حساب خدمات خود ، در پرونده build.gradle
خود ،serviceCredentialsFile
را در پرونده Key Key JSON تنظیم کنید.برای یافتن اعتبار خود با ADC ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS
در مسیر پرونده Key Key JSON تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای کسب اطلاعات بیشتر در مورد تأیید اعتبار با ADC ، ارائه اعتبار برای برنامه خود را بخوانید.
با استفاده از CLI Firebase وارد شوید
Step 3. Configure your distribution properties
<project>/<app-module>/build.gradle.kts
or <project>/<app-module>/build.gradle
), configure App Distribution by adding at least one firebaseAppDistribution
section.
release
build to testers, follow these instructions::
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" } } } // ... }
debug
and release
builds in "demo" and "full" product flavors, follow these instructions:
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 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 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 |
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 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
Finally, to package your test app and invite testers, build the targets BUILD-VARIANT
andappDistributionUpload 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
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
andappDistributionRemoveTesters
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.
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.
مراحل بعدی
Implement in-app feedback to make it easy for testers to send feedback about your app (including screenshots). Learn how to display in-app alerts to your testers when new builds of your app are available to install. Visit the Android App Bundle codelab to learn how to distribute app bundle releases step by step. Learn best practices for distributing Android apps to QA testers using CI/CD .