این راهنما نحوه توزیع بستههای نرمافزاری اندروید (AAB) را با استفاده از Firebase CLI به آزمایشکنندگان شرح میدهد. ابزار CLI به شما امکان میدهد آزمایشکنندگان و یادداشتهای انتشار را برای یک نسخه مشخص کنید، سپس نسخه بر اساس آن توزیع میشود.
App Distribution با سرویس اشتراکگذاری داخلی برنامه Google Play ادغام میشود تا AABهایی را که آپلود میکنید پردازش کند و APKهایی را که برای پیکربندی دستگاه آزمایشکنندگان شما بهینه شدهاند، ارائه دهد. توزیع AABها به شما امکان میدهد موارد زیر را انجام دهید:
APK های بهینه شده (ارائه شده توسط گوگل پلی) را که برای دستگاه های آزمایش کنندگان شما بهینه شده اند، اجرا کنید.
مشکلات خاص دستگاه را کشف و اشکالزدایی کنید.
ویژگیهای بسته برنامه مانند 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 به عنوان ادمین |
| AAB ها را در App Distribution آپلود کنید | firebaseappdistro.releases.update | یکی از نقشهای زیر: | –– |
قبل از اینکه شروع کنی
اگر هنوز Firebase را به پروژه اندروید خود اضافه نکردهاید، آن را اضافه کنید. در پایان این گردش کار، یک برنامه اندروید Firebase در پروژه Firebase خود خواهید داشت.
اگر از هیچ محصول Firebase دیگری استفاده نمیکنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. اگر تصمیم به استفاده از محصولات اضافی دارید، حتماً تمام مراحل افزودن Firebase به پروژه اندروید خود را انجام دهید.
برای ایجاد لینک فایربیس به گوگل پلی و آپلود AABها، مطمئن شوید که برنامه شما شرایط زیر را دارد:
برنامه موجود در گوگل پلی و برنامه اندروید فایربیس هر دو با نام بسته یکسانی ثبت شدهاند.
برنامه در گوگل پلی در داشبورد برنامه تنظیم شده و در یکی از مسیرهای گوگل پلی (تست داخلی، تست بسته، تست باز یا تولید) توزیع میشود.
بررسی برنامه در گوگل پلی کامل شده و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیتهای زیر را نشان دهد، برنامه شما منتشر شده است: تست داخلی (نه تست داخلی پیشنویس)، تست بسته، تست باز یا تولید.
اپلیکیشن اندروید فایربیس خود را به حساب توسعهدهنده گوگل پلی خود متصل کنید:
در کنسول Firebase ، به مسیر زیر بروید:
پروژه ، سپس برگه ادغامها را انتخاب کنید. در کارت گوگل پلی ، روی «پیوند» کلیک کنید.
اگر از قبل به گوگل پلی لینک دارید، روی مدیریت کلیک کنید.دستورالعملهای روی صفحه را دنبال کنید تا ادغام App Distribution را فعال کنید و انتخاب کنید که کدام برنامههای اندروید Firebase به Google Play پیوند داده شوند.
درباره پیوند دادن به Google Play بیشتر بدانید.
مرحله ۱. برنامه خود را بسازید
وقتی آماده توزیع نسخه پیشانتشار برنامه خود برای آزمایشکنندگان شدید، AAB خود را بسازید (برای دستورالعملها به مستندات اندروید استودیو مراجعه کنید).
مرحله ۲. برنامه خود را بین آزمایشکنندگان توزیع کنید
برای توزیع برنامه خود به آزمایشکنندگان، فایل برنامه خود را با استفاده از Firebase CLI آپلود کنید:
- آخرین نسخه Firebase CLI را نصب یا بهروزرسانی کنید (توصیه میکنیم فایل باینری مستقل مربوط به CLI مخصوص سیستم عامل خود را دانلود کنید). حتماً وارد سیستم شوید و بررسی کنید که آیا میتوانید به پروژههای خود دسترسی داشته باشید یا خیر.
دستور
appdistribution:distributeاجرا کنید تا برنامه خود را آپلود کرده و آن را بین آزمایشکنندگان توزیع کنید. از پارامترهای زیر برای پیکربندی توزیع استفاده کنید:appdistribution: گزینههای توزیع --appالزامی : شناسه برنامه Firebase شما. میتوانید شناسه برنامه را در کنسول Firebase ، در صفحه تنظیمات عمومی پیدا کنید.
--app 1:1234567890:android:0a1b2c3d4e5f67890
--tokenیک توکن بهروزرسانی که هنگام احراز هویت محیط CI خود با Firebase CLI چاپ میشود (برای اطلاعات بیشتر، بخش «استفاده از CLI با سیستمهای CI » را بخوانید).
--token "$FIREBASE_TOKEN"
--release-notes
--release-notes-fileیادداشتهای انتشار برای این نسخه.
میتوانید مستقیماً یادداشتهای انتشار را مشخص کنید:
--release-notes "Text of release notes"
یا، مسیر یک فایل متنی ساده را مشخص کنید:
--release-notes-file "/path/to/release-notes.txt"
--testers
--testers-fileآدرس ایمیل آزمایشکنندگانی که میخواهید دعوت کنید.
شما میتوانید آزمایشکنندگان را به صورت فهرستی از آدرسهای ایمیل که با کاما از هم جدا شدهاند، مشخص کنید:
--testers "ali@example.com, bri@example.com, cal@example.com"
یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از آدرسهای ایمیل که با کاما از هم جدا شدهاند را مشخص کنید:
--testers-file "/path/to/testers.txt"
--groups
--groups-fileگروههای آزمایشی که میخواهید دعوت کنید (به مدیریت آزمایشکنندگان مراجعه کنید). گروهها با استفاده از
نامهای مستعار گروه که میتوانید آن را در کنسول Firebase جستجو کنید.میتوانید گروهها را به صورت لیستی که با کاما از هم جدا شدهاند، مشخص کنید:
--groups "qa-team, trusted-testers"
یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از نامهای گروه که با کاما از هم جدا شدهاند را مشخص کنید:
--groups-file "/path/to/groups.txt"
--debugپرچمی که میتوانید برای چاپ خروجی لاگ طولانی (یا مفصل) اضافه کنید.
--test-devices
--test-devices-fileانواع توزیعهای زیر بخشی از ویژگی بتای تستر خودکار هستند.
دستگاههای آزمایشی که میخواهید نسخههای ساختهشده را روی آنها توزیع کنید (به بخش تستهای خودکار مراجعه کنید).
شما میتوانید آزمایشکنندگان را به صورت فهرستی از آدرسهای ایمیل که با کاما از هم جدا شدهاند، مشخص کنید:
--test-devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از دستگاههای آزمایشی که با نقطه ویرگول از هم جدا شدهاند را مشخص کنید:
--test-devices-file: "/path/to/test-devices.txt"
--test-usernameنام کاربری برای ورود خودکار که در طول تستهای خودکار استفاده میشود.
--test-password
--test-password-fileرمز عبور برای ورود خودکار که در طول تستهای خودکار استفاده میشود.
یا میتوانید مسیر یک فایل متنی ساده حاوی رمز عبور را مشخص کنید:
--test-password-file: "/path/to/test-password.txt"
--test-username-resourceنام منبع برای فیلد نام کاربری جهت ورود خودکار که در طول تستهای خودکار استفاده میشود.
--test-password-resourceنام منبع برای فیلد رمز عبور جهت ورود خودکار که در طول تستهای خودکار استفاده میشود.
--test-non-blockingتستهای خودکار را به صورت ناهمگام اجرا کنید. برای مشاهده نتایج تست خودکار، به کنسول Firebase مراجعه کنید.
برای مثال:
firebase appdistribution:distribute test.aab \ --app 1:1234567890:android:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txtرابط خط فرمان فایربیس (Firebase CLI) پس از آپلود نسخه، لینکهای زیر را در خروجی نمایش میدهد. این لینکها به شما در مدیریت فایلهای باینری و اطمینان از دریافت نسخه صحیح توسط آزمایشکنندگان و سایر توسعهدهندگان کمک میکنند:
-
firebase_console_uri- لینکی به کنسول Firebase که یک نسخه واحد را نمایش میدهد. میتوانید این لینک را با سایر توسعهدهندگان در سازمان خود به اشتراک بگذارید. -
testing_uri- لینکی به نسخه منتشر شده در محیط تستر (اپلیکیشن اندروید) که به تسترها اجازه میدهد یادداشتهای انتشار را مشاهده کرده و اپلیکیشن را روی دستگاه خود نصب کنند. تستر برای استفاده از لینک، نیاز به دسترسی به نسخه منتشر شده دارد. -
binary_download_uri- لینک امضا شدهای که مستقیماً فایل باینری برنامه (فایل APK یا AAB) را دانلود و نصب میکند. این لینک پس از یک ساعت منقضی میشود.
مدیریت آزمایشکنندگان و گروهها
علاوه بر توزیع نسخهها، میتوانید
appdistribution:testers:addوappdistribution:testers:removeبرای دعوت از آزمایشکنندگان جدید یا حذف آزمایشکنندگان موجود از پروژه Firebase خود نیز استفاده کنید.پس از اضافه شدن یک تستر به پروژه Firebase خود، میتوانید او را به نسخههای جداگانه اضافه کنید. پس از حذف یک تستر، دیگر به نسخههای موجود در پروژه شما دسترسی نخواهد داشت. توجه داشته باشید که تسترهایی که اخیراً حذف شدهاند، همچنان میتوانند برای مدت زمانی به نسخههای شما دسترسی داشته باشند.
برای مثال:
firebase appdistribution:testers:add anothertester@email.com moretesters@email.comfirebase appdistribution:testers:remove anothertester@email.com moretesters@email.comایمیلهای آزمایشکنندگان باید با یک فاصله از هم جدا شوند. همچنین میتوانید آزمایشکنندگان را با استفاده از
--file /path/to/testers.txtمشخص کنید.اگر تعداد زیادی آزمایشکننده دارید، باید استفاده از گروهها را در نظر بگیرید: میتوانید از
appdistribution:group:createوappdistribution:group:deleteبرای ایجاد یا حذف گروهها در پروژه Firebase خود استفاده کنید.--group-aliasبرای مشخص کردن یک گروه برای دستوراتappdistribution:testers:addوappdistribution:testers:removeاستفاده کنید.برای مثال:
firebase appdistribution:group:create "QA team" qa-teamfirebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.comfirebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.comfirebase appdistribution:group:delete qa-team-
پس از توزیع نسخه ساخته شده، به مدت ۱۵۰ روز (پنج ماه) در داشبورد App Distribution کنسول Firebase در دسترس قرار میگیرد. هنگامی که ۳۰ روز تا انقضای نسخه ساخته شده باقی مانده باشد، یک اعلان انقضا هم در کنسول و هم در لیست نسخههای ساخته شده توسط آزمایشکننده شما در دستگاه آزمایشیاش ظاهر میشود.
آزمایشکنندگانی که برای آزمایش برنامه دعوت نشدهاند، دعوتنامههای ایمیلی برای شروع دریافت میکنند و آزمایشکنندگان فعلی اعلانهای ایمیلی مبنی بر آماده بودن نسخه جدید برای آزمایش دریافت میکنند (برای دستورالعمل نحوه نصب برنامه آزمایشی، راهنمای راهاندازی آزمایشکننده را بخوانید). میتوانید وضعیت هر آزمایشکننده را در کنسول Firebase زیر نظر داشته باشید - اینکه آیا دعوت را پذیرفتهاند و آیا برنامه را دانلود کردهاند یا خیر.
آزمایشکنندگان 30 روز فرصت دارند تا دعوتنامه را برای آزمایش برنامه قبل از انقضا بپذیرند. وقتی 5 روز به انقضای دعوتنامه باقی مانده باشد، یک اعلان انقضا در کنسول Firebase در کنار آزمایشکننده در نسخه منتشر شده ظاهر میشود. دعوتنامه را میتوان با ارسال مجدد آن با استفاده از منوی کشویی در ردیف آزمایشکننده تمدید کرد.
مراحل بعدی
بازخورد درونبرنامهای را پیادهسازی کنید تا ارسال بازخورد درباره برنامه شما (از جمله اسکرینشاتها) برای آزمایشکنندگان آسان باشد.
بیاموزید که چگونه وقتی نسخههای جدید برنامه شما برای نصب در دسترس است، هشدارهای درون برنامهای را به آزمایشکنندگان خود نمایش دهید.
بهترین شیوهها برای توزیع برنامههای اندروید به آزمایشکنندگان QA با استفاده از CI/CD را بیاموزید.