این سند بهترین روشها را برای استفاده از Firebase App Distribution معرفی میکند تا گردشهای کاری تست پیشانتشار Android شما را در یک محیط CI/CD پایدار و تکرارپذیر کند. راهحلها شامل Gradle و fastlane میشوند، اما برای اینکه انعطافپذیری بیشتری به شما بدهیم، راهحلهای موجود از طریق کنسول Firebase ، Firebase CLI و API عمومی Firebase App Distribution را نیز در نظر میگیریم. همچنین محدودیتهای انتشار و آزمایشکننده را توضیح میدهیم تا بتوانید از قبل برای تجربه بهینه برنامهریزی کنید.
اگر از پلتفرمهای Apple نیز استفاده میکنید، به بهترین روشها برای توزیع برنامههای Apple در آزمایشکنندگان QA با استفاده از CI/CD و fastlane مراجعه کنید.
قبل از شروع
قبل از اینکه بهترین روشها را در این سند پیادهسازی کنید، حتماً App Distribution در کنسول Firebase برای هر برنامه فعال کنید. اگر App Distribution فعال نکرده باشید، با خطای 404 مواجه خواهید شد.
برای فعال کردن App Distribution ، این مراحل را دنبال کنید:
- صفحه App Distribution را در کنسول Firebase باز کنید.
- برنامه اندروید خود را انتخاب کنید.
- روی Get Started کلیک کنید.
با توجه به اینکه Android App Bundles (AAB) در حال تبدیل شدن به رایجترین قالب بسته Android است، توصیه میکنیم با پیوند دادن به Google Play ، قابلیت توزیع AABها را بین آزمایشکنندگان خود تنظیم کنید.
گردش کار آزمایش قبل از انتشار خود را با استفاده از خط لوله CI/CD خودکار کنید
اگر میخواهید ساخت و انتشار برنامهها برای آزمایشکنندگان خود را خودکار کنید و از CI/CD استفاده میکنید، توصیه میکنیم از fastlane یا Gradle استفاده کنید. گزینه دیگر استفاده از Firebase CLI است که به شما امکان می دهد به مجموعه وسیعی از محصولات Firebase دسترسی داشته باشید.
از fastlane استفاده کنید
با استفاده از fastlane، یک ابزار منبع باز که ساخت و انتشار برنامههای iOS و Android را خودکار میکند، App Distribution در خط لوله CI/CD خود ادغام کنید. با ساختن و توزیع خودکار آخرین نسخههای خود برای آزمایشکنندگان، مطمئن میشوید که آزمایشکنندگان همیشه بهروزترین نسخه آزمایشی برنامه شما را دارند.
برای یادگیری نحوه ادغام App Distribution با fastlane، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از fastlane مراجعه کنید.
از Gradle استفاده کنید
از Gradle برای ادغام App Distribution در فرآیند ساخت اندروید خود با استفاده از افزونه App Distribution Gradle استفاده کنید. این افزونه به شما امکان میدهد آزمایشکنندهها و یادداشتهای انتشار را در فایل build.gradle
برنامه خود مشخص کنید، که به شما امکان میدهد توزیعها را برای انواع ساخت و انواع مختلف برنامه خود پیکربندی کنید.
برای آشنایی با نحوه ادغام App Distribution با Gradle، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از Gradle مراجعه کنید.
از Firebase CLI استفاده کنید
از ابزارهای Firebase CLI که App Distribution ارائه می کند برای توزیع برنامه ها بین آزمایش کنندگان استفاده کنید. میتوانید آزمایشکنندهها را مشخص کنید و یادداشتهایی را برای یک ساخت منتشر کنید.
با مشخص کردن شناسه برنامه Firebase برنامه، اضافه کردن اختیاری یادداشت انتشار و فایلی حاوی ایمیلهای آزمایشکنندگان، آخرین نسخه اندروید خود را توزیع کنید:
firebase appdistribution:distribute test.aab \
--app 1:1234567890:android:0a1b2c3d4e5f67890 \
--release-notes "Bug fixes and improvements" --testers-file testers.txt
برای کسب اطلاعات بیشتر درباره استفاده از Firebase CLI برای خودکارسازی ساختهای خود، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از Firebase CLI مراجعه کنید.
از اعتبار سرویس برای احراز هویت استفاده کنید
از افزونه App Distribution fastlane ، پلاگین Gradle یا Firebase CLI با حسابهای سرویس استفاده کنید. حساب سرویس نوعی حساب Google است که برنامهها را نمایش میدهد (برخلاف کاربران). سیستم CI شما میتواند از حسابهای سرویس برای اجرای بارهای کاری App Distribution شما استفاده کند. برای کسب اطلاعات بیشتر، به تأیید اعتبار با یک حساب سرویس مراجعه کنید.
اگر از فدراسیون هویت حجم کاری استفاده میکنید، میتوانید به جای کلید حساب سرویس، یک فایل پیکربندی اعتبارنامه ایجاد و استفاده کنید.
محدودیت های انتشار را در نظر داشته باشید
App Distribution حداکثر از 1000 نسخه در هر برنامه را پشتیبانی می کند. این بدان معناست که وقتی از محدودیت انتشار فراتر میروید، App Distribution بهطور خودکار قدیمیترین نسخههای بالاتر از حد را حذف میکند. برای آشنایی با نحوه مدیریت محدودیتهای انتشار، به مدت زمان انتشار برنامهها مراجعه کنید؟
همان مجموعه آزمایشکنندهها را به چند نسخه اضافه کنید
اگر میخواهید تعداد زیادی آزمایشکننده به نسخههای خود اضافه کنید، از عملکرد مدیریت آزمایشکننده انبوه App Distribution استفاده کنید.
توصیه میکنیم از گروهها برای افزودن آزمایشکنندگان یکسان به چند نسخه استفاده کنید. یک گروه به عنوان یک لیست کنترل دسترسی عمل می کند. وقتی آزمایشکنندهای را از گروهی حذف میکنید، دسترسی به همه نسخههای توزیع شده در آن گروه را از دست میدهد. برای کسب اطلاعات بیشتر، به افزودن و حذف آزمایشکنندگان از یک گروه مراجعه کنید.
اگر آزمایشکنندههای زیادی برای مدیریت دارید، میتوانید آزمایشکنندگان را با استفاده از کنسول Firebase انبوه اضافه و حذف کنید . برای خودکار کردن افزودن و حذف آزمایشکنندگان، از Firebase CLI ، fastlane ، Gradle یا API عمومی Firebase App Distribution استفاده کنید.
محدودیت های تستر را در نظر داشته باشید
App Distribution تعداد آزمایشکنندگانی را که میتوانید به یک پروژه Firebase یا یک گروه App Distribution اضافه کنید، محدود میکند. وقتی از این محدودیتها فراتر رفتید، نمیتوانید برنامه خود را بین آزمایشکنندگان دیگر توزیع کنید. برای کسب اطلاعات بیشتر درباره محدودیتهای آزمایشکننده، ببینید آیا محدودیتهایی برای افزودن آزمایشکنندهها به برنامه من وجود دارد؟
آزمایش کنندگان بالقوه را فعال کنید تا برای آزمایش خود ثبت نام کنند
برای سهولت در توزیع برنامه خود بین آزمایشگران بیشتر، توصیه می کنیم از پیوندهای دعوت استفاده کنید. پیوند دعوت یک URL منحصربهفرد است که به آزمایشکنندگان اجازه میدهد آدرس ایمیل خود را برای ثبتنام برای آزمایش یک برنامه وارد کنند. فعال کردن کاربران برای اضافه کردن خود به لیست آزمایشکنندگان برنامه، راهی بینظیر برای افزایش پایگاه تست داخلی شما است.
موارد استفاده از پیوندهای دعوت شامل برنامههای آزمایشی شرکت، سازمانهایی با تیمهای بزرگ QA و گروههای توسعهدهنده است که میخواهند مشتریان فردی بتوانند دسترسی آزمایشکننده را کنترل کنند.
توصیه می کنیم یک پیوند دعوت برای یک گروه ایجاد کنید. هر آزمایش کننده ای که با استفاده از پیوند دعوت ثبت نام کند، به طور خودکار به نسخه های بعدی اضافه می شود.
برای کسب اطلاعات بیشتر، به ایجاد پیوندهای دعوت و افزودن و حذف آزمایش کنندگان از یک گروه مراجعه کنید.
مطمئن شوید که آزمایشکنندگان نسخه مورد نظر شما را آزمایش میکنند
هنگامی که نسخه جدیدی آپلود می شود، آزمایش کنندگان شما از طریق ایمیل مطلع می شوند. برای تکمیل این اعلان، میتوانید از ویژگیهای زیر - پیوندهای انتشار و هشدارهای درونبرنامه - استفاده کنید تا مطمئن شوید که آزمایشکنندگان شما نسخه برنامه خاصی را که برای شما مهم است آزمایش میکنند:
- پیوندهای انتشار: زمانی که می خواهید نسخه خاصی را با آزمایش کنندگان به اشتراک بگذارید از این ویژگی استفاده کنید. برای یادگیری نحوه استفاده از پیوندهای انتشار، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از کنسول Firebase مراجعه کنید. این پیوندها با ابزارهای Firebase ، fastlane و Gradle خط فرمان (CLI) ما برای استفاده با ابزارهای اتوماسیون ساخت شما در دسترس هستند.
- هشدارهای درون برنامه ای: از این هشدارها زمانی استفاده کنید که می خواهید مطمئن شوید آزمایش کنندگان شما آخرین نسخه برنامه شما را آزمایش می کنند. با ادغام Firebase App Distribution Android SDK، میتوانید هشدارها را مستقیماً در داخل برنامه برای آزمایشکنندگان خود در صورت در دسترس بودن نسخههای جدید برنامهتان نمایش دهید. برای آشنایی با نحوه افزودن هشدارهای درونبرنامه، به آزمایشکنندگان اطلاعرسانی درباره ساختهای جدید مراجعه کنید.
دسترسی آزمایشکنندگانی که شرکت را ترک میکنند بهطور خودکار حذف شود
وقتی جریان تست داخلی CI/CD شما راه اندازی و اجرا می شود، باید مطمئن شوید که افرادی که شرکت را ترک می کنند دیگر به ساخت های داخلی شما دسترسی ندارند. برای کمک به مدیریت دسترسی تستر به ساختها، App Distribution گزینههای زیر را ارائه میکند:
- fastlane: از فایل Fastfile خود استفاده کنید یا به طور مستقیم اقدامات fastlane را اجرا کنید. برای کسب اطلاعات بیشتر، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از fastlane مراجعه کنید.
- Firebase CLI: از عمل
firebase appdistribution:testers:remove
استفاده کنید. برای کسب اطلاعات بیشتر، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از Firebase CLI مراجعه کنید. - Gradle: اگر از Gradle برای حذف آزمایشکنندگان استفاده میکنید،
appDistributionRemoveTesters
با آرگومانهای
و-- PROJECT_NUMBER
در فایل-- EMAILSbuild.gradle
خود ارسال کنید. برای کسب اطلاعات بیشتر، به توزیع برنامههای Android برای آزمایشکنندگان با استفاده از Gradle مراجعه کنید. - Public Firebase App Distribution API : از
testers.batchRemove
endpoint استفاده کنید.