میتوانید بااستفاده از fastlane، پلاتفرم متنبازی که ساخت و انتشار برنامههای iOS و Android را خودکار میکند، نسخههای ساخت را بین آزمونگران توزیع کنید. این راهنما از دستورالعملهای تعریفشده در Fastfile پیروی میکند. پساز راهاندازی fastlane و
Fastfile، میتوانید App Distribution را با پیکربندی fastlane
ادغام کنید.
قبل از شروع
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Apple خود اضافه کنید.
اگر از هیچ محصول Firebase دیگری استفاده نمیکنید، فقط باید پروژهای ایجاد کنید و برنامهتان را ثبت کنید. بااینحال، اگر تصمیم گرفتید در آینده از محصولات دیگری استفاده کنید، حتماً همه مراحل موجود در صفحه پیوندشده در بالا را تکمیل کنید.
صفحه App Distribution کنسول Firebase را باز کنید. وقتی از شما خواسته شد، پروژه Firebase خود را انتخاب کنید، برنامهتان را بااستفاده از تعویضکننده برنامه انتخاب کنید، و روی شروع به کار کلیک کنید.
مرحله ۱. راهاندازی fastlane
برای افزودن App Distribution به پیکربندی fastlane، فرمان زیر را از ریشه پروژه iOS خود اجرا کنید:
fastlane add_plugin firebase_app_distribution
اگر فرمان گزینهای را به شما پیشنهاد داد،
Option 3: RubyGems.orgرا انتخاب کنید.
مرحله ۲. اصالتسنجی با Firebase
قبلاز اینکه بتوانید از افزایه fastlane استفاده کنید، ابتدا باید با یکی از روشهای زیر در پروژه Firebase خود اصالتسنجی کنید. بهطور پیشفرض، اگر از روش اصالتسنجی دیگری استفاده نشود، افزونه fastlane اعتبارنامهها را در Firebase CLI جستجو میکند.
مرحله ۳. راهاندازی Fastfile و توزیع برنامه
- در ردیف
./fastlane/Fastfile، یک بلوکfirebase_app_distributionاضافه کنید. از پارامترهای زیر برای پیکربندی توزیع استفاده کنید:پارامترهای firebase_app_distribution appفقط درصورتی لازم است که برنامهتان حاوی فایل پیکربندی Firebase (
GoogleService-Info.plist) نباشد: شناسه برنامه Firebase برنامهتان. میتوانید «شناسه برنامه» را در کنسول Firebase، در صفحه تنظیمات کلی پیدا کنید.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathمسیر فایل
GoogleService-Info.plistشما، نسبتبه مسیر محصول بایگانیشده. بهطور پیشفرض رویGoogleService-Info.plistتنظیم شده است.اگر پارامتر
appمشخص نشده باشد، از این فایل برای دریافت شناسه برنامه Firebase برنامهتان استفاده میشود.firebase_cli_tokenژتون بازآوری که هنگام اصالتسنجی محیط CI با Firebase CLI چاپ میشود (برای اطلاعات بیشتر، استفاده از CLI با سیستمهای CI را بخوانید).
service_credentials_fileمسیر فایل json حساب سرویس Google شما. برای اطلاع از نحوه اصالتسنجی بااستفاده از اعتبارنامههای حساب سرویس، به بالا مراجعه کنید.
ipa_pathجایگزین
apk_path(منسوخشده) میشود. مسیر قطعی به فایل IPA که میخواهید بارگذاری کنید. اگر مشخص نشده باشد، fastlane مکان فایل را از مسیری که فایل در آن تولید شده است تعیین میکند.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"
test_devices
test_devices_file
دستگاههای آزمایشی که میخواهید آزمایشهای عامل آزمایش برنامه روی آنها اجرا شود.
میتوانید دستگاههای آزمایشی را بهصورت فهرستی از مشخصات دستگاه که با نقطهویرگول از هم جدا شدهاند مشخص کنید:
test_devices: "model=shiba,version=34,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 بروید. اگر این پرچم تنظیم نشده باشد، فرمان تا زمانی که آزمایشها تکمیل نشوند مسدود خواهد شد و اگر هرکدام از آزمایشها ناموفق باشد، با کد ناموفق خارج میشود.
debugپرچم بولی. میتوانید این را روی
trueتنظیم کنید تا خروجی اشکالزدایی پرجزئیات چاپ شود.
برای مثال:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
برای دردسترس قرار دادن ساخت برای آزمایشکنندگان، lane خود را اجرا کنید:
fastlane <lane>
مقدار برگشتی کنش، درهمسازی است که نسخه پخش بارگذاریشده را نشان میدهد. این
درهمسازی بااستفاده از
lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] نیز دردسترس است. برای اطلاعات بیشتر درباره فیلدهای دردسترس در این درهمسازی، به سند REST API مراجعه کنید.
افزونه fastlane پساز بارگذاری نسخه پخش، پیوندهای زیر را خروجی میدهد. این پیوندها به شما کمک میکنند تا باینریها را مدیریت کنید و مطمئن شوید که آزمایشکنندگان و توسعهدهندگان دیگر نسخه پخش مناسب را دارند:
- پیوندی به کنسول Firebase که یک نسخه پخش را نمایش میدهد. میتوانید این پیوند را با توسعهدهندگان دیگر در سازمانتان همرسانی کنید.
- پیوندی به نسخه پخش در تجربه آزمایشکننده (کلیپ وب iOS) که به آزمایشکنندگان امکان میدهد یادداشتهای انتشار را مشاهده کنند و برنامه را در دستگاهشان نصب کنند. آزمایشکننده برای استفاده از پیوند باید به نسخه پخش دسترسی داشته باشد.
- پیوند امضاشدهای که فایل دودویی برنامه (فایل IPA) را مستقیماً بارگیری و نصب میکند. این پیوند پساز یک ساعت منقضی میشود.
پساز توزیع ساخت، این ساخت بهمدت ۱۵۰ روز در داشبورد App Distribution در کنسول Firebase دردسترس است. وقتی ۳۰ روز به انقضای ساخت باقی مانده باشد، اعلان انقضا در کنسول و در فهرست ساختهای آزمایشکننده در دستگاه آزمایشی او نشان داده میشود.
آزمایشگرانی که قبلاً برای آزمایش برنامه دعوت نشدهاند، دعوتنامههای ایمیلی برای شروع دریافت میکنند. آزمایشکنندگان فعلی اعلانهای ایمیلی دریافت میکنند که ساخت جدیدی برای آزمایش آماده است. برای آشنایی با نحوه نصب برنامه آزمایشی، به راهاندازی بهعنوان آزمایشکننده مراجعه کنید. میتوانید وضعیت هر آزمایشکننده را در کنسول Firebase پایش کنید تا ببینید آیا دعوت را پذیرفتهاند و آیا برنامه را بارگیری کردهاند یا نه.
(اختیاری) برای افزایش خودکار شماره ساخت هر بار که نسخه پخش جدیدی در App Distribution ایجاد میکنید، میتوانید از کنش firebase_app_distribution_get_latest_release و کنش increment_build_number استفاده کنید.
کد زیر مثالی از نحوه افزایش خودکار شماره ساخت ارائه میدهد:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
برای کسب اطلاعات بیشتر درباره این ویژگی افزونه fastlane، به دریافت اطلاعات درباره جدیدترین نسخه برنامهتان مراجعه کنید.
مرحله ۴ (اختیاری). مدیریت کردن آزمایشگران برای توزیع
میتوانید بااستفاده از فایل Fastfile یا با اجرای مستقیم کنشهای fastlane، آزمایشکنندگان را به پروژه یا گروهتان اضافه یا از آن حذف کنید. اجرای مستقیم کنشها
مقادیر تنظیمشده در Fastfile را لغو میکند.
وقتی آزمایشگری به پروژه Firebase شما اضافه شد، میتوانید او را به نسخههای پخش تکی اضافه کنید. آزمایشگرانی که از پروژه Firebase شما برداشته میشوند دیگر به نسخههای پخش در پروژه شما دسترسی ندارند، اما ممکن است برای مدتی دسترسی به نسخههای پخش شما را حفظ کنند.
اگر تعداد زیادی آزمایشکننده دارید، بهتر است از گروهها استفاده کنید.
استفاده از Fastfile
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testersاجرای کنشهای fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"fastlane run firebase_app_distribution_delete_group alias:"qa-team"
همچنین میتوانید بهجای --emails، بااستفاده از --file="/path/to/testers.txt آزمایشکنندگان را مشخص کنید.
تکالیف firebase_app_distribution_add_testers و
firebase_app_distribution_remove_testers آرگومانهای زیر را نیز
میپذیرند:
-
project_number: شماره پروژه Firebase شما. group_alias(اختیاری): اگر مشخص شده باشد، آزمایشکنندگان به گروه مشخصشده اضافه (یا از آن برداشته) میشوند.-
service_credentials_file: مسیر فایل اطلاعات کاربری سرویس Google شما. -
firebase_cli_token: کد اصالتسنجی برای Firebase CLI.
service_credentials_file و firebase_cli_token همان
آرگومانهایی هستند که کنش بارگذاری استفاده میکند.
مرحله ۵ (اختیاری). دریافت اطلاعات درباره جدیدترین نسخه پخش برنامه
میتوانید از کنش firebase_app_distribution_get_latest_release
برای واکشی اطلاعات مربوط به جدیدترین نسخه برنامهتان در «توزیع برنامه» استفاده کنید،
ازجمله اطلاعات نسخه برنامه، یادداشتهای انتشار، و زمان ایجاد. موارد استفاده
شامل افزایش خودکار نسخه و انتقال یادداشتهای انتشار
از نسخه پخش قبلی است.
مقدار بازگشتی کنش، درهمسازی است که جدیدترین نسخه پخش را نشان میدهد. این
درهمسازی بااستفاده از
lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] نیز دردسترس است. برای کسب اطلاعات بیشتر درباره فیلدهای دردسترس در این درهمسازی، به سند REST API مراجعه کنید.
پارامترها
| پارامترهای firebase_app_distribution_get_latest_release | |
|---|---|
app
|
فقط درصورتی لازم است که برنامهتان حاوی فایل پیکربندی Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
مسیر فایل
اگر پارامتر |
firebase_cli_token
|
ژتون بازآوری که هنگام اصالتسنجی محیط CI با Firebase CLI چاپ میشود (برای اطلاعات بیشتر، استفاده از CLI با سیستمهای CI را بخوانید). |
service_credentials_file
|
مسیر فایل json حساب سرویس Google شما. برای اطلاع از نحوه اصالتسنجی بااستفاده از اعتبارنامههای حساب خدمات، به اسناد قبلی مراجعه کنید. |
service_credentials_json_data
|
محتوای فایل json حساب سرویس Google. برای اطلاع از نحوه اصالتسنجی بااستفاده از اعتبارنامههای حساب خدمات، به اسناد قبلی مراجعه کنید. |
debug
|
پرچم بولی. میتوانید این را روی |
مراحل بعدی
برای ثبت دستگاههای بیشتر بهصورت دستی یا برنامهای، ثبت دستگاههای iOS بیشتر را ببینید.
با روالهای مطلوب برای توزیع برنامههای Apple برای آزمایشکنندگان تضمین کیفیت بااستفاده از CI/CD و fastlane آشنا شوید.