این صفحه، راهنمایی برای عیبیابی و پاسخ به سوالات متداول در مورد توزیع و آزمایش برنامهها با استفاده از App Distribution ارائه میدهد.
توزیع برنامهها
از نکات زیر برای عیبیابی مشکلاتی که ممکن است هنگام توزیع برنامهها به آزمایشکنندگان خود با آنها مواجه شوید، استفاده کنید.
هنگام آپلود برنامه، ممکن است با این خطا مواجه شوید:
«ما نتوانستیم ایمیل تماس برای app <app-id> پیدا کنیم. لطفاً برای تنظیم آن، به App Distribution در کنسول Firebase مراجعه کنید.»
در صورت وجود، یک ایمیل تماس در کنسول Firebase تنظیم کنید. اگر مشکل همچنان ادامه داشت، با پشتیبانی Firebase تماس بگیرید.
اگر در حین آمادهسازی، مرتباً با خطاهای ۴۰۰، ۴۰۹ یا ۵۰۰ مواجه شدید، با پشتیبانی Firebase تماس بگیرید. شماره پروژه Firebase و شناسه برنامه خود را به پشتیبانی ارائه دهید.
حجم فایل APK را بررسی کنید. حداکثر حجم مجاز برای همه فایلهای باینری ۲۰۴۸ مگابایت است که کمی بیش از ۲ گیگابایت میشود.
اگر اندازه APK در محدوده اندازه فایل است و قابل تکرار است، با پشتیبانی Firebase تماس بگیرید.
با استفاده از موارد زیر، تأیید کنید که APK امضا شده است:
apksigner verify --verbose ~/app-distro/app-distro-apps/[path_name]/app/ build/outputs/apk/debug/app-debug.apk
توزیع بستههای برنامه Android (AAB)
وقتی یک AAB را در App Distribution آپلود میکنید، گوگل پلی به طور خودکار APK تولید شده را با استفاده از گواهی کلید امضای برنامه آزمایشی، لغو میکند. در صورت درخواست، اگر میخواهید به استفاده از خدمات شخص ثالث آنها ادامه دهید، باید برنامه خود را در ارائه دهندگان API ثبت کنید. پس از امضا، گواهی تست برنامه شما را میتوان در کنسول Firebase مشاهده کرد.
نسخههای AAB که در App Distribution آپلود میکنید، در حساب توسعهدهنده Google Play شما نمایش داده نمیشوند (این شامل App Bundle Explorer و اشتراکگذاری داخلی برنامه نیز میشود).
اگر یک برنامه اندروید Firebase از Google Play جدا شود، موارد زیر اتفاق میافتد:
شما نمیتوانید بستههای برنامه جدید را در App Distribution آپلود کنید و از طریق ادغام App Distribution با Google Play، آنها را به Google Play صادر کنید.
نسخههای موجود همچنان در داشبورد Firebase App Distribution و برای آزمایشکنندگان شما در دسترس خواهند بود.
هر دادهای که قبلاً بین Firebase و Google Play صادر شده باشد، در هر دو محصول قابل دسترسی خواهد بود.
برای توزیع یک بسته نرمافزاری اندروید (AAB) از طریق App Distribution و پیوند خودکار AABهای آپلود شده به پروژه Firebase و حساب توسعهدهنده Google Play خود، مطمئن شوید که شرایط زیر را برآورده میکنید:
حساب توسعهدهنده گوگل پلی شما یکی از سطوح دسترسی زیر را دارد: مالک (Owner) یا مدیر (Admin).
برای پروژه Firebase خود، یکی از نقشهای زیر را دارید: مالک یا مدیر Firebase .
برنامه شما در Firebase و حساب توسعهدهنده Google Play شما ثبت شده است. این بدان معناست که شما هم یک برنامه اندروید Firebase و هم یک برنامه Google Play دارید.
برنامه موجود در گوگل پلی و برنامه اندروید فایربیس هر دو با نام بسته یکسانی ثبت شدهاند.
برنامه در گوگل پلی در داشبورد برنامه تنظیم شده و در یکی از مسیرهای گوگل پلی (تست داخلی، تست بسته، تست باز یا تولید) توزیع میشود.
بررسی برنامه در گوگل پلی کامل شده و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیتهای زیر را نشان دهد، برنامه شما منتشر شده است: تست داخلی (نه تست داخلی پیشنویس)، تست بسته، تست باز یا تولید.
اگر برنامهای را آپلود کردهاید که قبلاً معیارهای ذکر شده در بالا برای لینک شدن را نداشته است، اما اکنون دارد، میتوانید دوباره سعی کنید برنامه اندروید Firebase خود را به Google Play لینک دهید .
نصب و آزمایش برنامهها
از نکات زیر برای عیبیابی مشکلاتی که ممکن است آزمایشکنندگان شما هنگام نصب و آزمایش برنامههای شما با آن مواجه شوند، استفاده کنید.
وقتی کاربری یک حساب گوگل ایجاد میکند، بهطور خودکار یک آدرس جیمیل دریافت میکند.
اگر آزمایشکننده آدرس Google Workspace یا Gmail ندارد، یا اگر ترجیح میدهد از آدرس ایمیل دیگری برای ورود به سیستم استفاده کند، از آزمایشکننده بخواهید یک آدرس ایمیل غیر Gmail را به حساب کاربری خود متصل کند و از آن ایمیل برای ورود به سیستم استفاده کند.
هنگام انتخاب ایمیل جایگزین، آزمایشکننده باید این دستورالعملها را دنبال کند:
- از آدرس جیمیل استفاده نکنید.
- از آدرس ایمیلی که قبلاً به یک حساب گوگل دیگر مرتبط است استفاده نکنید.
- به یاد داشته باشید هنگام ورود به سیستم با این آدرس ایمیل، از رمز عبور حساب گوگل خود استفاده کنید.
برای اطلاعات بیشتر، به «ورود به حساب گوگل خود با آدرس ایمیل دیگر» مراجعه کنید.
اگر آزمایشکننده دعوتنامه ایمیلی را با آدرس ایمیلی متفاوت از آنچه دعوتنامه به آن ارسال شده بود، بپذیرد، ممکن است آزمایشکننده نتواند برنامهها یا نسخههای درست را ببیند.
ایمیلی که توسعهدهنده برای آن دعوتنامه میفرستد و به نسخههای جدید اضافه میکند (ایمیل A) میتواند با ایمیلی که آزمایشکننده برای پذیرش دعوتنامه استفاده میکند (ایمیل B) متفاوت باشد. این کار در پشت صحنه یک لینک ایجاد میکند. هر زمان که ایمیل A به نسخههای جدید اضافه میشود، در واقع ایمیل B است که به آنها دسترسی پیدا میکند.
اگر آزمایشکننده دعوتنامه ایمیلی را با آدرس ایمیل دیگری پذیرفت، برای حل مشکل این مراحل را دنبال کنید:
تستر را از بخش « مشاهده همه تسترها» در تب «تستکنندگان و گروهها» در صفحه App Distribution » کنسول Firebase حذف کنید. دعوتنامههای موجود حذف میشوند.
دوباره از تستر دعوت کنید تا برنامه شما را آزمایش کند. تستر باید یک ایمیل دعوت دریافت کند.
مطمئن شوید که آزمایشکننده دعوتنامه را با همان آدرس ایمیل قبول میکند.
اگر یکی از موارد زیر رخ دهد، ممکن است آزمایشکنندگان اعلانهای ایمیلی دریافت نکنند:
اعلانهای ایمیل به پوشههای هرزنامه ارسال میشوند.
فیلترهای ایمیل تنظیم شدهاند.
دعوتنامه به یک حساب ایمیل ارسال شده است، اما آزمایشکننده با یک حساب ایمیل دیگر آن را پذیرفته است. آزمایشکننده ایمیلهای انتشار جدید را برای حساب ایمیلی که دعوتنامه در ابتدا به آن ارسال شده بود، دریافت میکند.
آزمایشکننده قبلاً دعوت شده بود اما دعوت اولیه را نپذیرفت. اگر آزمایشکننده به نسخههای بعدی اضافه شود، App Distribution به طور خودکار اعلانهای انتشار را برای آن آزمایشکننده ارسال نمیکند زیرا آزمایشکننده دعوت اولیه را نپذیرفته است.
راه حل ۱
از آزمایشکننده بخواهید پوشه هرزنامه و هرگونه فیلتر ایمیلی که در سرویس ایمیل خود تنظیم کرده است را بررسی کند.
اگر آزمایشکننده اشتراک خود را از ایمیلها لغو کرد، از آزمایشکننده بخواهید موارد زیر را انجام دهد:
- ایمیلی را پیدا کنید که آزمایشکننده قبلاً از برنامه دریافت کرده است.
- روی مدیریت تنظیمات ایمیل در پایین کلیک کنید و روی اجازه دادن به ایمیلها برای اشتراک مجدد کلیک کنید.
راه حل ۲
اگر آزمایشکننده نمیخواهد اعلانهای ایمیلی دریافت کند اما میخواهد دعوتنامههای برنامه را بپذیرد، میتواند دعوتنامههای در انتظار برنامه را مستقیماً در برنامه آزمایشکننده برنامه ( دستورالعملهای دانلود ) مشاهده کند.
راه حل ۳
تستر را از بخش « مشاهده همه تسترها» در تب «تسترها و گروهها» در صفحه App Distribution در کنسول Firebase حذف کنید. این عمل دعوتنامههای موجود را حذف میکند.
دوباره از آزمایشکننده دعوت کنید تا برنامه شما را آزمایش کند. آزمایشکننده باید یک ایمیل دعوت دریافت کند. مطمئن شوید که آزمایشکننده دعوت را با همان آدرس ایمیلی که دعوتنامه به آن ارسال شده است، میپذیرد.
اگر یک آزمایشکننده نسخهای را دانلود و نصب کند اما رابط کاربری جزئیات برنامه نشان ندهد که برنامه نصب شده است، این یک مشکل شناخته شده است. در برخی موارد، شناسه بسته در برنامه Firebase با شناسه بسته APK مطابقت ندارد.
تأیید کنید که شناسه بسته APK با شناسه بسته برنامه Firebase که برای آپلود توزیع استفاده کردهاید، مطابقت دارد.
اگر به برنامه یا مرورگر در حال اجرا شما هنوز اجازه نصب برنامههای خارج از Google Play داده نشده باشد، هشدار Android ظاهر میشود. برای اعطای مجوز:
اندروید نسخه ۸ یا بالاتر : در برنامه تنظیمات ، روی «مجاز کردن از این منبع» ضربه بزنید.
اندروید نسخه ۷ یا پایینتر : در برنامه تنظیمات ، روی امنیت (Security) ضربه بزنید و منابع ناشناس (Unknown sources) را انتخاب کنید. وقتی پیام ظاهر شد، روی تأیید (OK) > اعتماد (Trust) ضربه بزنید.
اگر یک APK آزمایشی روی دستگاه آزمایشکننده نصب نشد:
- تأیید کنید که گواهی(های) موجود در نسخه جدید با گواهیهای موجود در نسخه نصب شده روی دستگاه آزمایشکننده مطابقت داشته باشد. سیستم اندروید فقط در صورت مطابقت گواهیها، به برنامه اجازه بهروزرسانی میدهد. برای کسب اطلاعات بیشتر، به بخش «ملاحظات امضا» مراجعه کنید.
- مطمئن شوید که نسخه سیستم عامل دستگاه تستر توسط برنامه پشتیبانی میشود (
minSdkVersionرا بررسی کنید).
اگر برنامه App Tester مانع از ورود شما به سیستم میشود و شما را به صفحه ورود به سیستم هدایت میکند، ممکن است از Google Workspace (که قبلاً GSuite نام داشت) استفاده میکنید که شامل تنظیمات محدودیت است.
برای حذف تنظیمات محدودیت خود:
در برگه برنامهها (Apps) در Google Workspace خود، مطمئن شوید که Firebase App Distribution روی Access: Blocked تنظیم نشده باشد.
در تب Services ، مطمئن شوید که Cloud Platform بدون محدودیت باشد.
پس از حذف تنظیمات، دوباره سعی کنید وارد سیستم شوید.
این خطا میتواند زمانی رخ دهد که برنامهای که نصب میشود با برنامهای که از قبل روی دستگاه نصب شده است، تداخل داشته باشد. برای مثال، میتواند نوع متفاوتی از همان برنامه با همان مجوز سفارشی یا نام ContentProvider باشد.
میتوانید از آزمایشکننده بخواهید بلافاصله پس از مواجهه با مشکل، گزارش اشکال را جمعآوری کند و گزارش را برای اطلاعات بیشتر در مورد علت بررسی کند. آزمایشکننده باید قبل از نصب برنامه جدید، هرگونه برنامه متناقض را حذف کند.
وقتی با خطای ۴۰۳ مواجه میشوید، به این معنی است که حسابی که استفاده میکنید مجوز نصب و آزمایش برنامهها را ندارد. دسترسی توسط سرپرست دامنه حساب شما در Google Workspace تعیین میشود.
اگر معتقدید که باید مجوز نصب و آزمایش برنامهها را داشته باشید، از مدیر حساب Google Workspace خود بخواهید تنظیمات حساب شما را تغییر دهد. مدیر شما باید دستورالعملهای موجود در «مدیریت دسترسی به سرویسهایی که به صورت جداگانه کنترل نمیشوند» را دنبال کند.
اگر چندین حساب کاربری دارید، سعی کنید با یک حساب کاربری دیگر که محدودیت نصب و آزمایش برنامهها را ندارد، وارد شوید.
اگر برای اولین بار است که تست میکنید، به بخش «به عنوان تستر راهاندازی شوید» مراجعه کنید.
اگر شما یک تستر App Distribution هستید و یک دستگاه اندروید جدید برای تست روی آن تهیه کردهاید، به جای اینکه دوباره کل جریان تستر جدید را طی کنید، این مراحل را دنبال کنید:
در دستگاه اندروید خود به appdistribution.firebase.google.com بروید.
با حساب کاربری تستر فعلی خود وارد شوید و برای نصب برنامه تستر برنامه اندروید، روی دکمه دانلود تستر برنامه در پایین صفحه کلیک کنید.
فعال کردن ویژگیهای تستر با SDK اندروید App Distribution
از نکات زیر برای عیبیابی مشکلاتی که شامل فعال کردن هشدارهای ساخت جدید درون برنامهای یا ارسال بازخورد درون برنامهای با استفاده از App Distribution Android SDK میشود، استفاده کنید.
اگر قبلاً SDK اندروید App Distribution را در برنامه خود برای پشتیبانی از بازخورد درون برنامهای تنظیم کردهاید و آزمایشکنندگان شما قادر به ارسال بازخورد نیستند، این مراحل را دنبال کنید:
فعال کردن ثبت وقایع مفصل (verbose logging) برای SDK اندروید App Distribution (App Distribution Android SDK) در برنامه شما:
adb shell setprop log.tag.FirebaseAppDistribution VERBOSEبا فیلتر کردن عبارت "FirebaseAppDistribution" پیامهای خطا را در گزارشهای برنامه خود بررسی کنید.
تأیید کنید که آزمایشکننده به نسخه نصبشده دسترسی دارد:
اگر گزارشها نشان دهند که «آزمایشگر به این منبع دسترسی ندارد»، ممکن است آزمایشگر شما به برنامه دعوت نشده باشد، یا ممکن است به نسخه منتشر شده دسترسی نداشته باشد.
در داشبورد App Distribution کنسول Firebase ، نسخه دقیقی را که روی دستگاه آزمایشکننده در حال اجرا است پیدا کنید و مطمئن شوید که آزمایشکننده در برگه آزمایشکنندگان روی کارت انتشار فهرست شده و در حالت پذیرفتهشده قرار دارد.
اگر هنوز بازخوردی دریافت نمیکنید، این مراحل را دنبال کنید:
در دستگاه آزمایشی، با استفاده از App Tester یا برنامه وب Tester وارد Firebase App Distribution شوید. حتماً حساب گوگلی را که برای اولین بار هنگام پذیرش دعوت برای آزمایش برنامه استفاده کردید، انتخاب کنید.
برنامه را دوباره با استفاده از App Tester یا برنامه وب آزمایشی نصب کنید تا مطمئن شوید که آزمایشکننده به نسخه منتشر شده دسترسی دارد.
سعی کنید بازخورد خود را ارسال کنید، و دوباره مطمئن شوید که با همان حساب گوگل وارد سیستم میشوید.
مطمئن شوید که API مربوط به آزمایشکنندگان برنامهی Firebase را فعال کردهاید. برای اطلاعات بیشتر، به «فعال کردن API آزمایشکنندهی توزیع برنامه» مراجعه کنید.
در بخش محدودیتهای کلیدی (Key restrictions )، مطمئن شوید که API مربوط به Firebase App Testers در فهرست APIهای مجاز قرار دارد.
اگر هنگام ارسال بازخورد با این پیام مواجه شدید: «میخواستم بازخورد ارسال کنم، اما به دلیل حالت توسعه این کار را نکردم»، با اجرای این دستور، حالت توسعهدهنده را در دستگاه غیرفعال کنید:
adb shell setprop debug.firebase.appdistro.devmode falseفایل
google-services.jsonخود را بررسی کنید تا مطمئن شوید که بازخورد را برای پروژه و برنامه صحیح ارسال میکنید.فعال کردن ثبت وقایع مفصل (verbose logging) برای SDK اندروید App Distribution (App Distribution Android SDK) در برنامه شما:
adb shell setprop log.tag.FirebaseAppDistribution VERBOSEبا فیلتر کردن عبارت "FirebaseAppDistribution" پیامهای خطا را در گزارشهای برنامه خود بررسی کنید.
اگر قبلاً SDK اندروید App Distribution Android SDK) را در برنامه خود تنظیم کردهاید و آزمایشکنندگان شما هشدارهای درون برنامهای دریافت نمیکنند، این مراحل را دنبال کنید:
با اتصال یک
OnFailureListenerبه Task برگردانده شده توسط API App Distribution Firebase، پیامهای خطا را بررسی کنید.جاوا
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener ( e -> { if (e instanceof FirebaseAppDistributionException) { // Log exception here }});کاتلین
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener { e -> if (e is FirebaseAppDistributionException) { // Log exception here } }بررسی کنید که آزمایشکننده به نسخه جدید دسترسی داشته باشد:
حالت اشکالزدایی (debug mode) را در برنامه خود فعال کنید. برای یادگیری نحوهی انجام این کار، به مستندات گوگل آنالیتیکس مراجعه کنید.
برنامه خود را در یک شبیهساز اجرا کنید و عبارت "FirebaseAppDistribution" را جستجو کنید.
اگر گزارشها نشان دهند که هیچ نسخهای یافت نشده است، یا اینکه آزمایشکننده دسترسی ندارد، ممکن است آزمایشکننده شما هنوز با نسخه جدید مرتبط نشده باشد.
در داشبورد App Distribution کنسول Firebase )، مطمئن شوید که تستر شما در توزیع ساخت (build distribution) شما گنجانده شده و در حالت پذیرفته شده (Accepted ) قرار دارد.
اگر تستر شما هنوز هشداری دریافت نمیکند، از او بخواهید نکات زیر را دنبال کند تا مطمئن شوید که دعوت برای تست برنامه شما را پذیرفته و دستگاه تست خود را به درستی تنظیم کرده است:
در دستگاه آزمایشی، از طریق App Tester یا از طریق برنامه وب Tester وارد Firebase App Distribution شوید. به یاد داشته باشید که حساب گوگلی را که برای اولین بار هنگام پذیرش دعوت برای آزمایش برنامه استفاده کردید، انتخاب کنید.
بررسی کنید تا مطمئن شوید که نسخه جدید برنامه در App Tester یا برنامه وب تستر موجود است.
به طور پیشفرض، آزمایشکنندگان شما فقط باید یک بار وارد حساب گوگل خود شوند تا ویژگیهای آزمایش را فعال کنند. اگر آزمایشکنندگان شما پس از بستن و باز کردن مجدد برنامه، دوباره از آنها خواسته میشود وارد سیستم شوند، این نکات را دنبال کنید تا مطمئن شوید پیکربندی App Distribution شما به درستی تنظیم شده است:
بررسی کنید که آیا API مربوط به آزمایشکنندگان برنامهی Firebase را فعال کردهاید یا خیر. برای اطلاعات بیشتر، به بخش «فعال کردن API آزمایشکنندهی توزیع برنامه» مراجعه کنید.
در بخش محدودیتهای کلیدی (Key restrictions )، مطمئن شوید که API مربوط به Firebase App Testers در فهرست APIهای مجاز قرار دارد.
اگر معمولاً هنگام خروج از سیستم، SharedPreferences را پاک میکنید، ممکن است وضعیت آزمایشکننده خود را نیز پاک کنید. App Distribution پرچمی را ذخیره میکند که نشان میدهد آیا آزمایشکننده شما قبلاً وارد برنامه شده است یا خیر. برای اطلاعات بیشتر، به مخزن GitHub مراجعه کنید.
پیشنمایش عامل تست برنامه
برای دسترسی به پیشنمایش App Testing agent، میتوانید از طریق بنر موجود در صفحه Releases در کنسول Firebase ، انتخاب کرده و شروع به استفاده از این ویژگی کنید.
اگر بنر را رد کردهاید و فقط تستهای هدایتشده توسط هوش مصنوعی روی یک نسخه اجرا میشوند، میتوانید از تب Automated Tester به App Testing agent (عامل تست برنامه) بپیوندید. یک ویرایشگر در پروژه شما میتواند یک نسخه جدید را آپلود کند و یک تست هدایتشده توسط هوش مصنوعی را روی نسخهای که تستهای خزش تصادفی ندارد، اجرا کند. اکنون میتوانید با رفتن به تب Automated Tester در آن نسخه، این گزینه را انتخاب کنید.
اگر هنوز در انتخاب این ویژگی مشکل دارید، با پشتیبانی فایربیس تماس بگیرید و پیام «درخواست دسترسی به App Distribution ، عامل تست برنامه» را ارسال کنید.
این فقط ویژگی را برای حساب شما فعال میکند.
مرورگر خود را رفرش کنید. اگر پس از رفرش مرورگر خود هنوز در مشاهده این ویژگی مشکل دارید، با پشتیبانی فایربیس تماس بگیرید و پیام "درخواست دسترسی به App Distribution ، عامل تست برنامه" را ارسال کنید.
موارد آزمون پیشنیاز به شما امکان میدهند موارد آزمون را به هم متصل کنید تا از تکرار مراحل در چندین آزمون، مانند یک جریان ورود مشترک یا ورود به سیستم، جلوگیری شود. وقتی یک پیشنیاز را به یک آزمون اختصاص میدهید، قبل از آزمون اصلی اجرا میشود. اگر هر مرحله از پیشنیاز با شکست مواجه شود، کل آزمون به عنوان یک شکست در نظر گرفته میشود. اجرای آزمون نهایی، مراحل هر دو آزمون پیشنیاز و اصلی را در یک نما نشان میدهد، بنابراین میتوانید کل اجرا را در یک مکان مشاهده کنید.
توجه داشته باشید که یک مورد آزمایشی که به عنوان پیشنیاز برای یک مورد آزمایشی دیگر استفاده میشود، تا زمانی که به عنوان پیشنیاز از مورد آزمایشی دیگر حذف نشود، قابل حذف نیست. میتوانید پیشنیازها را از موارد آزمایشی با انتخاب گزینه «هیچکدام» از منوی کشویی پیشنیاز در پنجره ویرایش مورد آزمایشی حذف کنید.
بله، عامل تست برنامه از برنامههای اندروید ساخته شده با استفاده از Flutter پشتیبانی میکند.
تستهای تصادفی خزش عامل تست برنامه از زیرساخت Firebase Test Lab استفاده میکنند و محدودیتها و قیمتگذاری آن یکسان است. سهمیههای تست با تعداد تستهای اجرا شده در روز اندازهگیری میشوند. برای کسب اطلاعات بیشتر در مورد سهمیههای تست و صورتحساب، به سطوح استفاده، سهمیهها و قیمتگذاری Test Lab مراجعه کنید.
اگر هنگام اجرای تستهای خزش تصادفی از سهمیه تجاوز کنید، خطاهای «تجاوز از سهمیه» را دریافت خواهید کرد. بازنشانی سهمیهها حدود ۲۴ ساعت طول میکشد، بنابراین باید از تلاشهای مجدد تا زمان آزادسازی سهمیه خودداری کنید. با این حال، اگر با خطاهای زیرساختی مواجه شدید، اگر بلافاصله دوباره امتحان کنید، احتمال موفقیت تماسها بیشتر است.
اگر از فضای ذخیرهسازی ابری پیشفرض گوگل (GCS) استفاده میکنید، باید نقش ویرایشگر (Editor) را در پروژه فایربیس داشته باشید.
اگر از یک سطل سفارشی استفاده میکنید، به نقش ویرایشگر نیازی ندارید. در عوض، به نقشی نیاز دارید که شامل مجوزهای زیر باشد:
- مدیر کیفیت فایربیس
- مدیر آزمایشگاه تست فایربیس
- کاربر شیء ذخیرهسازی
سطل سفارشی باید متعلق به یک پروژه با قابلیت صدور صورتحساب باشد و مشخص کردن یک سطل منجر به هزینههای صدور صورتحساب برای فضای ذخیرهسازی مورد استفاده خواهد شد.
تستهای هدایتشده توسط هوش مصنوعی دارای زمان انتظار ۵ دقیقهای هستند و تستهای خزش تصادفی دارای زمان انتظار ۱۰ دقیقهای میباشند.
سوالات متداول
Firebase App Distribution محدودیتهای تستر زیر را دارد:
حداکثر ۵۰۰ آزمایشکننده به یک پروژه Firebase اضافه کنید
حداکثر ۲۰۰ آزمایشکننده را به یک گروه App Distribution اضافه کنید
برای افزودن آزمایشکنندگان بیشتر، درخواست افزایش سقف بدون هزینه را بدهید.
آزمایشکنندگان 30 روز فرصت دارند تا دعوتنامه را برای آزمایش برنامه قبل از انقضا بپذیرند. وقتی 5 روز به انقضای دعوتنامه باقی مانده باشد، یک اعلان انقضا در کنسول Firebase در کنار آزمایشکننده در نسخه منتشر شده ظاهر میشود. دعوتنامه را میتوان با ارسال مجدد آن از طریق منوی کشویی در ردیف آزمایشکننده تمدید کرد.
در صورت بروز یکی از شرایط زیر، نسخههای برنامه از App Distribution حذف میشوند:
- نسخه برنامه قدیمیتر از ۱۵۰ روز است.
- شما از محدودیت ۱۰۰۰ نسخه برنامه عبور کردهاید و نسخه برنامه قدیمیتر از ۱۰۰۰ نسخه اخیر برنامه است.
برای اطلاعات بیشتر، به App Distribution حداکثر از ۱۰۰۰ نسخه پشتیبانی میکند» مراجعه کنید.
پس از اینکه برنامه به محدودیت انقضای ۱۵۰ روزه یا محدودیت انتشار ۱۰۰۰ نسخه رسید یا از آن عبور کرد، نسخه از داشبورد App Distribution و برنامه Firebase App Tester حذف میشود. اگر تستر شما نسخه را نصب کرده باشد، نسخه محلی برنامه همچنان اجرا میشود.
برای اینکه نسخه آزمایشی برنامه مدت بیشتری در دسترس باشد، از یکی از توصیههای زیر استفاده کنید:
- قبل از اینکه نسخه برنامه منقضی شود یا از محدودیت انتشار فراتر رود، APK یا AAB را دانلود کنید و نسخه را از داشبورد App Distribution حذف کنید. سپس، APK یا AAB را به عنوان یک نسخه جدید در App Distribution دوباره بارگذاری کنید.
- نسخه را دانلود کنید و برای بایگانی طولانی مدت، آن را در Cloud Storage آپلود کنید.
نسخههای منتشر شده از برنامهها پس از ۱۵۰ روز منقضی میشوند
وقتی نسخهای از برنامه خود را در Firebase آپلود میکنید، این نسخه به مدت ۱۵۰ روز، از تاریخ آپلود، در داشبورد App Distribution ظاهر میشود. پس از آپلود نسخه، میتوانید آن را بین آزمایشکنندگان توزیع کنید که نسخه را از برنامه Firebase App Tester روی دستگاه آزمایشی خود نصب میکنند.
وقتی ۳۰ روز از تاریخ انقضای انتشار گذشته باشد، یک اعلان انقضای انتشار برنامه در برنامه Firebase App Tester ظاهر میشود.
App Distribution حداکثر از ۱۰۰۰ نسخه پشتیبانی میکند
App Distribution حداکثر ۱۰۰۰ نسخه برای هر برنامه را مجاز میداند. وقتی برنامه شما به محدودیت ۱۰۰۰ نسخه برسد، App Distribution به طور خودکار قدیمیترین نسخههای بالاتر از حد مجاز را حذف میکند.
اگر میخواهید نسخههای برنامه خود را به صورت دستی مدیریت کنید، از API REST App Distribution برای فهرست کردن و حذف نسخههای برنامه به صورت عمده استفاده کنید.
اگر سوالی دارید، با پشتیبانی فایربیس تماس بگیرید.
اگر شما یک تستر هستید، توصیه میکنیم Firebase App Tester را دانلود کنید، برنامهای که به شما امکان میدهد به تمام نسخههای تست خود در یک مکان دسترسی داشته باشید.
برای حذف حساب کاربری تستر App Distribution و دادههای مرتبط با آن، این مراحل را به ترتیب دنبال کنید:
به آدرس https://appdistribution.firebase.google.com مراجعه کنید و با حساب گوگل خود وارد شوید.
در بالا سمت راست، روی ( مدیریت حساب ) کلیک کنید
حذف حساب کاربری .
اختیاری: در مجوزهای حساب گوگل خود، دسترسی از Firebase App Distribution را لغو کنید. توجه داشته باشید که لغو دسترسی بدون حذف اولیه حساب App Distribution ، حساب تستر یا دادههای شما را حذف نمیکند .
این صفحه، راهنمایی برای عیبیابی و پاسخ به سوالات متداول در مورد توزیع و آزمایش برنامهها با استفاده از App Distribution ارائه میدهد.
توزیع برنامهها
از نکات زیر برای عیبیابی مشکلاتی که ممکن است هنگام توزیع برنامهها به آزمایشکنندگان خود با آنها مواجه شوید، استفاده کنید.
هنگام آپلود برنامه، ممکن است با این خطا مواجه شوید:
"We could not find a contact email for app <app-id> . Please visit App Distribution within the Firebase console to set one up."
Set a Contact Email in the Firebase console, if available. If the issue persists, contact Firebase Support .
If you repeatedly encounter errors 400, 409, or 500 during provisioning, contact Firebase Support . Provide Support with your Firebase project number and app identifier.
Verify the size of the APK. The maximum file size limit for all binaries is 2048 MiB, which is a little over 2 GB.
If the APK size is within the file size limit and is reproducible, contact Firebase Support .
Verify that the APK is signed using the following:
apksigner verify --verbose ~/app-distro/app-distro-apps/[path_name]/app/ build/outputs/apk/debug/app-debug.apk
Distributing Android App Bundles (AABs)
When you upload an AAB to App Distribution , Google Play automatically resigns the generated APK using a test app signing key certificate. When prompted, you must register your app with API providers if you want to continue using their third-party services. Once signed, your app's test certificate can be viewed in the Firebase console.
AAB builds you upload to App Distribution do not appear in your Google Play developer account (this includes App Bundle Explorer and internal app sharing).
If a Firebase Android App is unlinked from Google Play, the following happens:
You will not be able to upload new app bundles to App Distribution and export them to Google Play via the App Distribution integration with Google Play.
Existing builds will continue to be available in the Firebase App Distribution dashboard and to your testers.
Any data previously exported between Firebase and Google Play will remain accessible in both products.
To distribute an Android App Bundle (AAB) through App Distribution and automatically link uploaded AABs to both your Firebase project and your Google Play developer account, make sure you meet the following requirements:
Your Google Play developer account has one of the following access levels : Owner or Admin.
For your Firebase project, you have one of the following roles: Owner or Firebase Admin .
Your app is registered with Firebase and your Google Play developer account. This means that you have both a Firebase Android app and a Google Play app.
برنامه موجود در گوگل پلی و برنامه اندروید فایربیس هر دو با نام بسته یکسانی ثبت شدهاند.
برنامه در گوگل پلی در داشبورد برنامه تنظیم شده و در یکی از مسیرهای گوگل پلی (تست داخلی، تست بسته، تست باز یا تولید) توزیع میشود.
بررسی برنامه در گوگل پلی کامل شده و برنامه منتشر شده است. اگر ستون وضعیت برنامه یکی از وضعیتهای زیر را نشان دهد، برنامه شما منتشر شده است: تست داخلی (نه تست داخلی پیشنویس)، تست بسته، تست باز یا تولید.
If you uploaded an app that previously didn't meet the criteria listed above for linking, but it does now, you can retry linking your Firebase Android App to Google Play .
Installing and testing apps
Use the following tips to troubleshoot issues that your testers might encounter when they install and test your apps.
When a user creates a Google account, they automatically receive a Gmail address.
If a tester doesn't have a Google Workspace or Gmail address, or if they would rather use another email address to sign in, ask the tester to link a non-Gmail email address to the account and use that email to sign in.
When choosing an alternate email, the tester must follow these guidelines:
- Don't use a Gmail address.
- Don't use an email address that's already linked to another Google account.
- Remember to use your Google Account password when signing in with this email address.
For more information, see Sign in to your Google Account with another email address .
If the tester accepted the email invitation with a different email address than the invite was sent to, the tester might not be able to see the right apps or builds.
The email that the developer sends invitations to and adds to new builds (Email A) can be different from the email that the tester uses to accept the invitation (Email B). This creates a link behind the scenes. Whenever Email A is added to new builds, it's actually Email B that's getting access.
If the tester accepted the email invitation with a different email address, follow these steps to resolve the issue:
Delete the tester from the View all testers section of the Testers & Groups tab in the App Distribution page of the Firebase console. Existing invitations are removed.
Re-invite the tester to test your app. The tester should receive an invitation email.
Make sure that the tester accepts the invitation with the same email address.
Testers might not receive email notifications if one of the following occurs:
Email notifications are sent to spam folders.
Email filters are set.
The invite was sent to one email account, but the tester accepted with a different email account. The tester receives new release emails for the email account to which the invitation was originally sent.
The tester was previously invited but did not accept the initial invitation. If the tester is added to subsequent releases, App Distribution won't automatically send release notifications to that tester because the tester didn't accept the initial invitation.
راه حل ۱
Ask the tester to check their spam folder and any email filters they set in their email service.
If the tester unsubscribed from the emails, ask the tester to do the following:
- Find an email that the tester previously received from the app.
- Click Manage email settings at the bottom and click Allow emails to resubscribe.
راه حل ۲
If the tester doesn't want email notifications but wants to be able to accept app invitations, they can view pending app invitations directly in the App Tester app ( download instructions ).
Solution 3
Delete the tester from the View all testers section of the Testers & Groups tab in the App Distribution page in the Firebase console. This action removes existing invitations.
Re-invite the tester to test your app. The tester should receive an invitation email. Make sure that the tester accepts the invitation with the same email address that the invitation was sent to.
If a tester downloads and installs a release but the app details user interface does not show that the app is installed, this is a known issue. In some cases, the bundle ID in the Firebase app does not match the bundle ID of the APK.
Verify that the bundle ID of the APK matches the bundle ID of the Firebase app you used to upload the distribution.
The Android alert appears if your running app or browser hasn't yet been given permission to install apps outside of Google Play. To grant permission:
Android version 8 or later : In the Settings app, tap Allow from this source .
Android version 7 or earlier : In the Settings app, tap Security and select Unknown sources . When the prompt appears, tap OK > Trust .
If a test APK fails to install on a tester's device:
- Verify that the certificate(s) in the new version match those in the version installed on the tester's device. The Android system only allows the app to update if the certificates match. To learn more, see Signing considerations .
- Ensure that the OS version of the tester device is supported by the app (check the
minSdkVersion).
If the App Tester app prevents you from signing in and redirects you back to the signin screen, you may be using a Google Workspace (formerly GSuite) that includes restriction settings.
To remove your restriction settings:
In the Apps tab of your Google Workspace, make sure Firebase App Distribution is not set to Access: Blocked .
In the Services tab , make sure Cloud Platform is unrestricted.
Once the settings are removed, try signing in again.
This error can happen when the app being installed conflicts with an app already installed on the device. For example, it could be a different variant of the same app with the same custom permission or ContentProvider name .
You can ask the tester to collect a bug report immediately after experiencing the issue, and inspect the report for more information about the cause. The tester must delete any conflicting apps before the new app can be installed.
When you encounter a 403 error, this means that the account you're using doesn't have permission to install and test apps. Access is determined by the administrator of your account's domain in Google Workspace.
If you believe you should have permission to install and test apps, ask your Google Workspace account admin to change your account settings. Your admin should follow the instructions in Manage access to services that aren't controlled individually .
If you have multiple accounts, try logging in with a different account that is not restricted from installing and testing apps.
If you're a first-time tester, see Get set up as a tester .
If you're an existing App Distribution tester and you get a new Android device to test on, instead of going through the entire new tester flow again, follow these steps:
Navigate to appdistribution.firebase.google.com on your Android device.
Sign in with your existing tester account, and click the Download App Tester button at the bottom of the screen to install the Android App Tester app.
Enabling tester features with the App Distribution Android SDK
Use the following tips to troubleshoot issues that involve enabling in-app new build alerts or submitting in-app feedback using the App Distribution Android SDK.
If you already set up the App Distribution Android SDK in your app to support in-app feedback and your testers are unable to submit feedback, follow these steps:
Enable verbose logging for the App Distribution Android SDK in your app:
adb shell setprop log.tag.FirebaseAppDistribution VERBOSECheck for error messages in your app logs by filtering for "FirebaseAppDistribution".
Confirm that the tester has access to the installed release:
If the logs indicate that "the tester does not have access to this resource," your tester may not have have been invited to the app, or may not have access to the release.
In the App Distribution dashboard of the Firebase console, find the exact release that is running on the tester's device, and make sure the tester is listed in the Testers tab on the release card and is in the Accepted state.
If you still aren't receiving feedback, follow these steps:
On the test device, sign into Firebase App Distribution using App Tester or the tester web app. Be sure to select the Google account you first used when you accepted the invitation to test the app.
Install the app again using App Tester or the test web app to ensure that the tester has access to the release.
Try to submit feedback, again making sure to sign in with the same Google account.
Make sure you enabled the Firebase App Testers API. For more information, see Enable the App Distribution Tester API .
Under Key restrictions , make sure that the Firebase App Testers API is included in the list of allowed APIs.
If you see this message when submitting feedback, "Would have sent feedback, but did not due to development mode," disable developer mode on the device by running this command:
adb shell setprop debug.firebase.appdistro.devmode falseCheck your
google-services.jsonfile to make sure you are submitting feedback for the correct project and app.Enable verbose logging for the App Distribution Android SDK in your app:
adb shell setprop log.tag.FirebaseAppDistribution VERBOSECheck for error messages in your app logs by filtering for "FirebaseAppDistribution".
If you have already set up the App Distribution Android SDK in your app and your testers aren't receiving in-app alerts, follow these steps:
Check for error messages by attaching an
OnFailureListenerto the Task returned by the Firebase App Distribution API.جاوا
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener ( e -> { if (e instanceof FirebaseAppDistributionException) { // Log exception here }});کاتلین
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener { e -> if (e is FirebaseAppDistributionException) { // Log exception here } }Check that the tester has access to the new release:
Enable debug mode in your app. To learn how, see the Google Analytics documentation .
Run your app in a simulator and search for the string "FirebaseAppDistribution".
If the logs indicate that no release was found, or that the tester does not have access, your tester may not yet be associated with the new release.
In the App Distribution dashboard of the Firebase console, make sure your tester is included in your build distribution and is in the Accepted state.
If your tester still isn't receiving alerts, have them follow the tips below to make sure they accepted the invitation to test your app and that they set up their testing device properly:
On the test device, sign into Firebase App Distribution via App Tester or via the tester web app. Remember to select the Google account you first used when you accepted the invitation to test the app.
Check to make sure the new app release is available in App Tester or the tester web app.
By default, your testers only need to sign in to their Google account once to enable testing features. If your testers are being prompted to sign in again after closing and re-opening your app, follow these tips to make sure your App Distribution configuration is set up properly:
Check to make sure you've enabled the Firebase App Testers API. For more information, see Enable the App Distribution Tester API .
Under Key restrictions , make sure that the Firebase App Testers API is included in the list of allowed APIs.
If you typically clear SharedPreferences on logout, you may be clearing your tester's state. App Distribution stores a flag that indicates whether your tester has already signed into the app. For more information, see the GitHub repository .
App Testing agent preview
To access the App Testing agent preview, you can opt in and start using the feature through the banner on the Releases page in the Firebase console .
If you've dismissed the banner and there are only AI-guided tests run on a release, you can opt in to the App Testing agent from the Automated Tester tab. An editor on your project can upload a new release and run an AI-guided test on a release that does not have random crawl tests. You should now be able to opt-in by going to the Automated Tester tab on that Release.
If you're still having trouble opting in to the feature, reach out to Firebase Support with the message: "Requesting access to App Distribution App Testing agent".
This will only enable the feature for your account.
Try refreshing your browser. If you still have trouble viewing the feature after refreshing your browser, reach out to Firebase Support with the message: "Requesting access to App Distribution App Testing agent".
Prerequisite test cases let you chain test cases together to avoid duplicating steps across multiple tests, such as for a common login or onboarding flow. When you assign a prerequisite to a test, it runs before the main test. If any step in the prerequisite fails, the entire test is considered a failure. The final test run shows the steps from both the prerequisite and the main test in a single view, so you can see the entire execution in one place.
Note that a test case that is used as a prerequisite for another test case cannot be deleted until it's removed as a prerequisite from the other test case. You can remove prerequisites from test cases by selecting None from the prerequisite drop-down menu in the edit test case dialog.
Yes, the App Testing agent supports Android apps built using Flutter.
App Testing agent's random crawl tests use Firebase Test Lab infrastructure, and its limits and pricing are the same. Testing quotas are measured by the number of tests run per day. To learn more about testing quotas and billing, see Usage levels, quotas, and pricing for Test Lab .
If you exceed quota when running random crawl tests, you'll receive quota exceeded errors. Quotas take about 24 hours to reset, so you should avoid retries until quota is released. However, if you receive infrastructure errors, calls are more likely to succeed if you re-try immediately.
If you use the default Google Cloud Storage (GCS) bucket, you must have the Editor role on the Firebase project.
If you use a custom bucket, you don't need the Editor role. Instead, you need a role that contains the following permissions:
- مدیر کیفیت فایربیس
- Firebase Test Lab Admin
- Storage Object User
The custom bucket must be owned by a billing-enabled project, and specifying a bucket will result in billing charges for the storage used.
AI-guided tests have a timeout of 5 minutes, and random crawl tests have a timeout of 10 minutes.
سوالات متداول
Firebase App Distribution has the following tester limits:
Add a maximum of 500 testers to a Firebase project
Add a maximum of 200 testers to an App Distribution group
To add more testers, request a no-cost limit increase .
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 via the drop-down menu on the tester row.
App releases are removed from App Distribution if one of the following conditions occurs:
- The app release is older than 150 days.
- You exceed the 1,000 app release limit, and the app release is older than the 1,000 most recent app releases.
For more information, see App Distribution supports a maximum of 1,000 releases .
After the app reaches or exceeds the 150-day expiration limit or the 1,000 release limit, the release is removed from the App Distribution dashboard and the Firebase App Tester app. If your tester has installed the release, the local version of the app continues to run.
To keep the app release available longer, use one of the following recommendations:
- Before the app release expires or exceeds the release limit, download the APK or AAB and delete the release from the App Distribution dashboard. Then, re-upload the APK or AAB as a new build to App Distribution .
- Download the release and upload it to Cloud Storage for long-term archiving.
App releases expire after 150 days
When you upload a release of your app to Firebase, the release appears in the App Distribution dashboard for 150 days, starting from the upload date. After you upload the release, you can distribute it to testers, who install the release from the Firebase App Tester app on their testing device.
When the release is 30 days from the expiration date, an app release expiration notification appears on your release in the Firebase App Tester app.
App Distribution supports a maximum of 1,000 releases
App Distribution allows a maximum of 1,000 releases per app. When your app reaches the 1,000 app release limit, App Distribution automatically deletes the oldest releases above the limit.
If you want to manually manage your app releases, use the App Distribution REST API to list and delete app releases in bulk.
If you have questions, contact Firebase Support .
If you're a tester, we recommend downloading Firebase App Tester , an app that lets you access all your test builds in one place.
To delete your App Distribution tester account and its associated data, follow these steps in order:
Visit https://appdistribution.firebase.google.com and sign in with your Google account.
In the top-right, click ( Manage account )
Delete account .
Optional: In your Google account permissions , revoke access from Firebase App Distribution . Note that revoking access without first deleting your App Distribution account does not delete your tester account or data.