میتوانید ساختها را بااستفاده از
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 جستجو میکند.
مرحله ۳. «فایل سریع» خود را راهاندازی کنید و برنامهتان را توزیع کنید
- در یک خط
./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
برای دردسترس قرار دادن ساخت برای آزمایشگران، خط خود را اجرا کنید:
fastlane <lane>
مقدار برگشتی کنش یک درهمسازی است که نشاندهنده نسخه پخش بارگذاریشده است. این
درهمسازی بااستفاده از
lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] نیز دردسترس است. برای اطلاعات بیشتر
درباره فیلدهای دردسترس در این درهمسازی، به مستندات
میانای برنامهسازی کاربردی REST مراجعه کنید.
افزایه fastlane پساز بارگذاری نسخه پخش، پیوندهای زیر را برونداد میکند. این پیوندها به شما کمک میکنند فایلهای باینری را مدیریت کنید و مطمئن شوید که آزمایشکنندگان و توسعهدهندگان دیگر نسخه پخش صحیح را دارند:
- پیوندی به کنسول Firebase که یک نسخه پخش واحد را نمایش میدهد. میتوانید این پیوند را با توسعهدهندگان دیگر در سازمانتان همرسانی کنید.
- پیوندی به نسخه پخش در تجربه آزمایشگر (کلیپ وب iOS) که به آزمایشگران امکان میدهد یادداشتهای نسخه پخش را مشاهده کنند و برنامه را روی دستگاهشان نصب کنند. آزمونگر برای استفاده از پیوند باید به نسخه پخش دسترسی داشته باشد.
- پیوند امضاشدهای که فایل دودویی برنامه (فایل IPA) را مستقیماً بارگیری و نصب میکند. پیوند پساز یک ساعت منقضی میشود.
پساز توزیع کردن ساخت، ساخت شما بهمدت ۱۵۰ روز در داشبورد App Distribution کنسول Firebase دردسترس است. وقتی ساخت ۳۰ روز تا انقضا داشته باشد، اعلان انقضا در کنسول و در فهرست ساختهای آزمایشگر در دستگاه آزمایشی او نشان داده میشود.
آزمایشگرانی که قبلاً برای آزمایش برنامه دعوت نشدهاند دعوتنامههایی ازطریق ایمیل برای شروع دریافت میکنند. آزمایشگران فعلی اعلانهای ایمیلی دریافت میکنند که ساخت جدیدی برای آزمایش آماده است. برای آشنایی با نحوه نصب برنامه آزمایشی، به راهاندازی بهعنوان آزمایشگر مراجعه کنید. میتوانید وضعیت هر آزمایشکننده را نظارت کنید تا متوجه شوید دعوت را پذیرفته است یا نه و برنامه را در کنسول Firebase بارگیری کرده است یا نه.
(اختیاری) برای اینکه هر بار نسخه پخش جدیدی در «توزیع برنامه» ایجاد میکنید، شماره ساخت بهطور خودکار افزایش یابد، میتوانید از کنش 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"
همچنین میتوانید آزمایشگران را بااستفاده از --file="/path/to/testers.txt بهجای
--emails مشخص کنید.
تکالیف 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 آشنا شوید.