میتوانید با استفاده از fastlane ، یک پلتفرم منبع باز که ساخت و انتشار برنامههای iOS و Android را خودکار میکند، ساختها را بین آزمایشکنندگان توزیع کنید. از دستورالعمل های ساده تعریف شده در Fastfile
پیروی می کند. پس از راه اندازی fastlane و Fastfile
خود، می توانید App Distribution با پیکربندی fastlane خود ادغام کنید.
مرحله 1. راه اندازی fastlane
برای افزودن App Distribution به پیکربندی fastlane خود، دستور زیر را از ریشه پروژه iOS خود اجرا کنید:
fastlane add_plugin firebase_app_distribution
اگر فرمان گزینه ای را از شما می خواهد،
Option 3: RubyGems.org
را انتخاب کنید.
مرحله 2. با Firebase احراز هویت
قبل از اینکه بتوانید از افزونه fastlane استفاده کنید، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر احراز هویت کنید. بهطور پیشفرض، اگر از روش احراز هویت دیگری استفاده نشود، افزونه fastlane به دنبال اعتبار از Firebase CLI میگردد.
از اعتبار حساب سرویس Firebase استفاده کنید
احراز هویت با یک حساب سرویس به شما این امکان را می دهد که به طور انعطاف پذیر از افزونه با سیستم یکپارچه سازی پیوسته (CI) خود استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:
- فایل کلید حساب سرویس خود را به اکشن
firebase_app_distribution
منتقل کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید. - متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کردهاید، ممکن است این روش را ترجیح دهید.
- در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید.
- نقش مدیر Firebase App Distribution را اضافه کنید.
- یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد.
- اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید.
اطلاعات حساب سرویس خود را ارائه یا پیدا کنید:
- برای ارسال کلید حساب سرویس خود به اقدام
firebase_app_distribution
خط خود، پارامترservice_credentials_file
را با مسیر فایل JSON کلید خصوصی خود تنظیم کنید. برای تعیین مکان اعتبار خود با ADC، متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
را روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.
- برای ارسال کلید حساب سرویس خود به اقدام
با استفاده از Firebase CLI وارد شوید
برای اطلاع از نحوه احراز هویت پروژه، به ورود با Firebase CLI مراجعه کنید.
مرحله 3. 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 حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس به بالا مراجعه کنید.
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;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 مراجعه کنید.
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 API مراجعه کنید.
افزونه fastlane لینک های زیر را پس از آپلود انتشار خروجی می دهد. این پیوندها به شما کمک میکنند فایلهای باینری را مدیریت کنید و اطمینان حاصل کنید که آزمایشکنندگان و سایر توسعهدهندگان نسخه مناسبی دارند:
- پیوندی به کنسول Firebase که یک نسخه را نمایش میدهد. می توانید این پیوند را با سایر توسعه دهندگان در سازمان خود به اشتراک بگذارید.
- پیوندی به نسخه در تجربه آزمایشکننده (کلیپ وب iOS) که به آزمایشکنندگان اجازه میدهد یادداشتهای انتشار را مشاهده کرده و برنامه را روی دستگاه خود نصب کنند. آزمایشکننده برای استفاده از پیوند نیاز به دسترسی به انتشار دارد.
- پیوند امضا شده ای که مستقیماً برنامه باینری (فایل IPA) را دانلود و نصب می کند. لینک بعد از یک ساعت منقضی می شود.
پس از توزیع ساخت، به مدت 150 روز در داشبورد App Distribution کنسول Firebase در دسترس است. وقتی ساخت 30 روز از انقضا میگذرد، یک اخطار انقضا در کنسول و در لیست ساختهای تستر روی دستگاه آزمایشی ظاهر میشود.
آزمایشکنندگانی که قبلاً برای آزمایش برنامه دعوت نشدهاند، دعوتنامههای ایمیلی را برای شروع دریافت میکنند. آزمایشکنندگان موجود، اعلانهای ایمیلی مبنی بر آماده بودن ساخت جدید برای آزمایش دریافت میکنند. برای آشنایی با نحوه نصب برنامه آزمایشی، به راه اندازی به عنوان آزمایشگر مراجعه کنید. میتوانید وضعیت هر آزمایشکننده را کنترل کنید تا مشخص کنید آیا دعوتنامه را قبول کردهاند یا خیر و آیا برنامه را در کنسول 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، به دریافت اطلاعات درباره آخرین نسخه برنامه خود مراجعه کنید.
مرحله 4 (اختیاری). آزمایش کننده ها را برای توزیع مدیریت کنید
میتوانید با استفاده از فایل 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_name
: شماره پروژه Firebase شما. -
group_alias
(اختیاری): اگر مشخص شده باشد، آزمایش کننده ها به گروه مشخص شده اضافه می شوند (یا از آنها حذف می شوند). -
service_credentials_file
: مسیر فایل اعتبار سرویس Google شما. -
firebase_cli_token
: رمز تأیید برای Firebase CLI.
service_credentials_file
و firebase_cli_token
همان آرگومانهایی هستند که در عمل آپلود استفاده میشوند.
مرحله 5 (اختیاری). درباره آخرین نسخه برنامه خود اطلاعاتی دریافت کنید
میتوانید از کنش firebase_app_distribution_get_latest_release
برای واکشی اطلاعات درباره آخرین نسخه برنامهتان در App Distribution، از جمله اطلاعات نسخه برنامه، یادداشتهای انتشار و زمان ایجاد، استفاده کنید. موارد استفاده شامل افزایش خودکار نسخه و حمل یادداشتهای انتشار نسخه قبلی است.
مقدار بازگشتی اکشن یک هش است که آخرین نسخه را نشان می دهد. این هش با استفاده از 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 حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس، به اسناد قبلی مراجعه کنید. |
service_credentials_json_data | محتوای فایل json حساب سرویس گوگل. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس، به اسناد قبلی مراجعه کنید. |
debug | یک پرچم بولی میتوانید این را روی |
مراحل بعدی
برای ثبت دستگاه های بیشتر به صورت دستی یا برنامه ای، به ثبت دستگاه های iOS اضافی مراجعه کنید.
با استفاده از CI/CD و fastlane، بهترین روشها را برای توزیع برنامههای Apple به آزمایشکنندگان QA بیاموزید.
میتوانید با استفاده از fastlane ، یک پلتفرم منبع باز که ساخت و انتشار برنامههای iOS و Android را خودکار میکند، ساختها را بین آزمایشکنندگان توزیع کنید. از دستورالعمل های ساده تعریف شده در Fastfile
پیروی می کند. پس از راه اندازی fastlane و Fastfile
خود، می توانید App Distribution با پیکربندی fastlane خود ادغام کنید.
مرحله 1. راه اندازی fastlane
برای افزودن App Distribution به پیکربندی fastlane خود، دستور زیر را از ریشه پروژه iOS خود اجرا کنید:
fastlane add_plugin firebase_app_distribution
اگر فرمان گزینه ای را از شما می خواهد،
Option 3: RubyGems.org
را انتخاب کنید.
مرحله 2. با Firebase احراز هویت
قبل از اینکه بتوانید از افزونه fastlane استفاده کنید، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر احراز هویت کنید. بهطور پیشفرض، اگر از روش احراز هویت دیگری استفاده نشود، افزونه fastlane به دنبال اعتبار از Firebase CLI میگردد.
از اعتبار حساب سرویس Firebase استفاده کنید
احراز هویت با یک حساب سرویس به شما این امکان را می دهد که به طور انعطاف پذیر از افزونه با سیستم یکپارچه سازی پیوسته (CI) خود استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:
- فایل کلید حساب سرویس خود را به اکشن
firebase_app_distribution
منتقل کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید. - متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کردهاید، ممکن است این روش را ترجیح دهید.
- در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید.
- نقش مدیر Firebase App Distribution را اضافه کنید.
- یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد.
- اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید.
اطلاعات حساب سرویس خود را ارائه یا پیدا کنید:
- برای ارسال کلید حساب سرویس خود به اقدام
firebase_app_distribution
خط خود، پارامترservice_credentials_file
را با مسیر فایل JSON کلید خصوصی خود تنظیم کنید. برای تعیین مکان اعتبار خود با ADC، متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.
- برای ارسال کلید حساب سرویس خود به اقدام
با استفاده از Firebase CLI وارد شوید
برای اطلاع از نحوه احراز هویت پروژه، به ورود با Firebase CLI مراجعه کنید.
مرحله 3. 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 حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس به بالا مراجعه کنید.
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;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 مراجعه کنید.
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 API مراجعه کنید.
افزونه fastlane لینک های زیر را پس از آپلود انتشار خروجی می دهد. این پیوندها به شما کمک میکنند فایلهای باینری را مدیریت کنید و اطمینان حاصل کنید که آزمایشکنندگان و سایر توسعهدهندگان نسخه مناسبی دارند:
- پیوندی به کنسول Firebase که یک نسخه را نمایش میدهد. می توانید این پیوند را با سایر توسعه دهندگان در سازمان خود به اشتراک بگذارید.
- پیوندی به نسخه در تجربه آزمایشکننده (کلیپ وب iOS) که به آزمایشکنندگان اجازه میدهد یادداشتهای انتشار را مشاهده کرده و برنامه را روی دستگاه خود نصب کنند. آزمایشکننده برای استفاده از پیوند نیاز به دسترسی به انتشار دارد.
- پیوند امضا شده ای که مستقیماً برنامه باینری (فایل IPA) را دانلود و نصب می کند. لینک بعد از یک ساعت منقضی می شود.
پس از توزیع ساخت، به مدت 150 روز در داشبورد App Distribution کنسول Firebase در دسترس است. وقتی ساخت 30 روز از انقضا میگذرد، یک اخطار انقضا در کنسول و در لیست ساختهای تستر روی دستگاه آزمایشی ظاهر میشود.
آزمایشکنندگانی که قبلاً برای آزمایش برنامه دعوت نشدهاند، دعوتنامههای ایمیلی را برای شروع دریافت میکنند. آزمایشکنندگان موجود، اعلانهای ایمیلی مبنی بر آماده بودن ساخت جدید برای آزمایش دریافت میکنند. برای آشنایی با نحوه نصب برنامه آزمایشی، به راه اندازی به عنوان آزمایشگر مراجعه کنید. میتوانید وضعیت هر آزمایشکننده را کنترل کنید تا مشخص کنید آیا دعوتنامه را قبول کردهاند یا خیر و آیا برنامه را در کنسول 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، به دریافت اطلاعات درباره آخرین نسخه برنامه خود مراجعه کنید.
مرحله 4 (اختیاری). آزمایش کننده ها را برای توزیع مدیریت کنید
میتوانید با استفاده از فایل 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_name
: شماره پروژه Firebase شما. -
group_alias
(اختیاری): اگر مشخص شده باشد، آزمایش کننده ها به گروه مشخص شده اضافه می شوند (یا از آنها حذف می شوند). -
service_credentials_file
: مسیر فایل اعتبار سرویس Google شما. -
firebase_cli_token
: رمز تأیید برای Firebase CLI.
service_credentials_file
و firebase_cli_token
همان آرگومانهایی هستند که در عمل آپلود استفاده میشوند.
مرحله 5 (اختیاری). درباره آخرین نسخه برنامه خود اطلاعاتی دریافت کنید
میتوانید از کنش firebase_app_distribution_get_latest_release
برای واکشی اطلاعات درباره آخرین نسخه برنامهتان در App Distribution، از جمله اطلاعات نسخه برنامه، یادداشتهای انتشار و زمان ایجاد، استفاده کنید. موارد استفاده شامل افزایش خودکار نسخه و حمل یادداشتهای انتشار نسخه قبلی است.
مقدار بازگشتی اکشن یک هش است که آخرین نسخه را نشان می دهد. این هش با استفاده از 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 حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس، به اسناد قبلی مراجعه کنید. |
service_credentials_json_data | محتوای فایل json حساب سرویس گوگل. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس، به اسناد قبلی مراجعه کنید. |
debug | یک پرچم بولی میتوانید این را روی |
مراحل بعدی
برای ثبت دستگاه های بیشتر به صورت دستی یا برنامه ای، به ثبت دستگاه های iOS اضافی مراجعه کنید.
با استفاده از CI/CD و fastlane، بهترین روشها را برای توزیع برنامههای Apple به آزمایشکنندگان QA بیاموزید.
میتوانید با استفاده از fastlane ، یک پلتفرم منبع باز که ساخت و انتشار برنامههای iOS و Android را خودکار میکند، ساختها را بین آزمایشکنندگان توزیع کنید. از دستورالعمل های ساده تعریف شده در Fastfile
پیروی می کند. پس از راه اندازی fastlane و Fastfile
خود، می توانید App Distribution با پیکربندی fastlane خود ادغام کنید.
مرحله 1. راه اندازی fastlane
برای افزودن App Distribution به پیکربندی fastlane خود، دستور زیر را از ریشه پروژه iOS خود اجرا کنید:
fastlane add_plugin firebase_app_distribution
اگر فرمان گزینه ای را از شما می خواهد،
Option 3: RubyGems.org
را انتخاب کنید.
مرحله 2. با Firebase احراز هویت
قبل از اینکه بتوانید از افزونه fastlane استفاده کنید، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر احراز هویت کنید. بهطور پیشفرض، اگر از روش احراز هویت دیگری استفاده نشود، افزونه fastlane به دنبال اعتبار از Firebase CLI میگردد.
از اعتبار حساب سرویس Firebase استفاده کنید
احراز هویت با یک حساب سرویس به شما این امکان را می دهد که به طور انعطاف پذیر از افزونه با سیستم یکپارچه سازی پیوسته (CI) خود استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:
- فایل کلید حساب سرویس خود را به اکشن
firebase_app_distribution
منتقل کنید. اگر از قبل فایل کلید حساب سرویس خود را در محیط ساخت خود داشته باشید، ممکن است این روش را راحت بیابید. - متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به فایل کلید حساب سرویس شما اشاره کند. اگر قبلاً Application Default Credentials (ADC) را برای سرویس Google دیگری (مثلاً Google Cloud ) پیکربندی کردهاید، ممکن است این روش را ترجیح دهید.
- در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب سرویس جدید ایجاد کنید.
- نقش مدیر Firebase App Distribution را اضافه کنید.
- یک کلید json خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. مطمئن شوید که این فایل را در جایی امن نگه دارید ، زیرا به سرپرست اجازه دسترسی به App Distribution در پروژه Firebase شما می دهد.
- اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کرده اید، از این مرحله رد شوید: در کنسول Google APIs، Firebase App Distribution API را فعال کنید. هنگامی که از شما خواسته شد، پروژه ای را با همان نام پروژه Firebase خود انتخاب کنید.
اطلاعات حساب سرویس خود را ارائه یا پیدا کنید:
- برای ارسال کلید حساب سرویس خود به اقدام
firebase_app_distribution
خط خود، پارامترservice_credentials_file
را با مسیر فایل JSON کلید خصوصی خود تنظیم کنید. برای تعیین مکان اعتبار خود با ADC، متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
را روی مسیر فایل JSON کلید خصوصی تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای اطلاعات بیشتر در مورد احراز هویت با ADC، ارائه اعتبارنامه به برنامه خود را بخوانید.
- برای ارسال کلید حساب سرویس خود به اقدام
با استفاده از Firebase CLI وارد شوید
برای اطلاع از نحوه احراز هویت پروژه، به ورود با Firebase CLI مراجعه کنید.
مرحله 3. 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 حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس به بالا مراجعه کنید.
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;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 مراجعه کنید.
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 API مراجعه کنید.
افزونه fastlane لینک های زیر را پس از آپلود انتشار خروجی می دهد. این پیوندها به شما کمک میکنند فایلهای باینری را مدیریت کنید و اطمینان حاصل کنید که آزمایشکنندگان و سایر توسعهدهندگان نسخه مناسبی دارند:
- پیوندی به کنسول Firebase که یک نسخه را نمایش میدهد. می توانید این پیوند را با سایر توسعه دهندگان در سازمان خود به اشتراک بگذارید.
- پیوندی به نسخه در تجربه آزمایشکننده (کلیپ وب iOS) که به آزمایشکنندگان اجازه میدهد یادداشتهای انتشار را مشاهده کرده و برنامه را روی دستگاه خود نصب کنند. آزمایشکننده برای استفاده از پیوند نیاز به دسترسی به انتشار دارد.
- پیوند امضا شده ای که مستقیماً برنامه باینری (فایل IPA) را دانلود و نصب می کند. لینک بعد از یک ساعت منقضی می شود.
پس از توزیع ساخت، به مدت 150 روز در داشبورد App Distribution کنسول Firebase در دسترس است. وقتی ساخت 30 روز از انقضا میگذرد، یک اخطار انقضا در کنسول و در لیست ساختهای آزمایشکننده در دستگاه آزمایشیشان ظاهر میشود.
آزمایشکنندگانی که قبلاً برای آزمایش برنامه دعوت نشدهاند، دعوتنامههای ایمیلی را برای شروع دریافت میکنند. آزمایشکنندگان موجود، اعلانهای ایمیلی مبنی بر آماده بودن ساخت جدید برای آزمایش دریافت میکنند. برای آشنایی با نحوه نصب برنامه آزمایشی، به راه اندازی به عنوان آزمایشگر مراجعه کنید. میتوانید وضعیت هر آزمایشکننده را کنترل کنید تا مشخص کنید آیا دعوتنامه را قبول کردهاند یا خیر و آیا برنامه را در کنسول 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، به دریافت اطلاعات درباره آخرین نسخه برنامه خود مراجعه کنید.
مرحله 4 (اختیاری). آزمایش کننده ها را برای توزیع مدیریت کنید
میتوانید با استفاده از فایل 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_name
: شماره پروژه Firebase شما. -
group_alias
(اختیاری): اگر مشخص شده باشد، آزمایش کننده ها به گروه مشخص شده اضافه می شوند (یا از آنها حذف می شوند). -
service_credentials_file
: مسیر فایل اعتبار سرویس Google شما. -
firebase_cli_token
: رمز تأیید برای Firebase CLI.
service_credentials_file
و firebase_cli_token
همان آرگومانهایی هستند که در عمل آپلود استفاده میشوند.
مرحله 5 (اختیاری). درباره آخرین نسخه برنامه خود اطلاعاتی دریافت کنید
میتوانید از کنش firebase_app_distribution_get_latest_release
برای واکشی اطلاعات درباره آخرین نسخه برنامهتان در App Distribution، از جمله اطلاعات نسخه برنامه، یادداشتهای انتشار و زمان ایجاد، استفاده کنید. موارد استفاده شامل افزایش خودکار نسخه و حمل یادداشتهای انتشار نسخه قبلی است.
مقدار بازگشتی اکشن یک هش است که آخرین نسخه را نشان می دهد. این هش با استفاده از 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 ACCOUNT Google Service شما. مستندات قبلی را برای چگونگی تأیید اعتبار با استفاده از اعتبار حساب خدمات مشاهده کنید. |
service_credentials_json_data | محتوای پرونده JSON ACCOUNT Google Service. مستندات قبلی را برای چگونگی تأیید اعتبار با استفاده از اعتبار حساب خدمات مشاهده کنید. |
debug | یک پرچم بولی شما می توانید این را برای چاپ خروجی اشکال زدایی |
مراحل بعدی
برای ثبت دستگاه های بیشتر به صورت دستی یا برنامه ای ، به ثبت نام دستگاه های اضافی iOS مراجعه کنید.
بهترین شیوه ها را برای توزیع برنامه های اپل به آزمایش کنندگان QA با استفاده از CI/CD و Fastlane بیاموزید.
شما می توانید با استفاده از FastLane ، یک بستر منبع باز که ساخت و ساز و انتشار برنامه های iOS و Android را به صورت خودکار برای آزمایش کنندگان توزیع کنید. این دستورالعمل های ساده تعریف شده در یک Fastfile
را دنبال می کند. بعد از تنظیم FastLane و Fastfile
خود ، می توانید App Distribution با پیکربندی FastLane خود ادغام کنید.
مرحله 1. Fastlane را تنظیم کنید
برای افزودن App Distribution به پیکربندی FastLane خود ، دستور زیر را از ریشه پروژه iOS خود اجرا کنید:
fastlane add_plugin firebase_app_distribution
اگر این دستور با یک گزینه از شما درخواست می کند ،
Option 3: RubyGems.org
را انتخاب کنید.
مرحله 2. با Firebase تأیید کنید
قبل از اینکه بتوانید از افزونه FastLane استفاده کنید ، ابتدا باید با پروژه Firebase خود به یکی از روش های زیر تأیید کنید. به طور پیش فرض ، افزونه FastLane در صورت استفاده از روش تأیید هویت دیگر ، به دنبال اعتبارنامه از Firebase CLI است.
از اعتبارنامه حساب خدمات Firebase استفاده کنید
تأیید اعتبار با یک حساب سرویس به شما امکان می دهد با سیستم ادغام مداوم (CI) خود از افزونه استفاده کنید. دو روش برای ارائه اعتبار حساب خدمات وجود دارد:
- فایل کلید حساب خدمات خود را به عمل
firebase_app_distribution
منتقل کنید. اگر از قبل فایل کلید حساب خدمات خود را در محیط ساخت خود داشته باشید ، ممکن است این روش را راحت پیدا کنید. - متغیر محیط
GOOGLE_APPLICATION_CREDENTIALS
تنظیم کنید تا به پرونده کلید حساب خدمات خود اشاره کنید. اگر قبلاً اعتبار پیش فرض برنامه (ADC) را برای سرویس Google دیگر (به عنوان مثال ، Google Cloud ) تنظیم کنید ، ممکن است این روش را ترجیح دهید.
- در کنسول Google Cloud ، پروژه خود را انتخاب کرده و یک حساب خدمات جدید ایجاد کنید.
- نقش مدیر Firebase App Distribution را اضافه کنید.
- یک کلید JSON خصوصی ایجاد کنید و کلید را به مکانی که برای محیط ساخت شما قابل دسترسی است منتقل کنید. حتماً این پرونده را در جایی ایمن نگه دارید ، زیرا دسترسی به مدیر به App Distribution در پروژه Firebase شما را اعطا می کند.
- اگر برنامه خود را بعد از 20 سپتامبر 2019 ایجاد کردید ، از این مرحله پرش کنید: در کنسول Google APIS ، API Firebase App Distribution فعال کنید. در صورت درخواست ، پروژه را با همان نام پروژه Firebase خود انتخاب کنید.
اعتبار حساب خدمات خود را ارائه یا پیدا کنید:
- برای عبور کلید حساب خدمات خود به اقدامات
firebase_app_distribution
Lane ، پارامترservice_credentials_file
را با مسیر پرونده JSON کلید خصوصی خود تنظیم کنید. برای یافتن اعتبار خود با ADC ، متغیر محیط
GOOGLE_APPLICATION_CREDENTIALS
در مسیر پرونده Key Key JSON تنظیم کنید. به عنوان مثال:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
برای کسب اطلاعات بیشتر در مورد تأیید اعتبار با ADC ، ارائه اعتبار برای برنامه خود را بخوانید.
- برای عبور کلید حساب خدمات خود به اقدامات
با استفاده از CLI Firebase وارد شوید
برای راهنمایی در مورد چگونگی تأیید اعتبار پروژه خود ، با Firebase CLI وارد شوید .
مرحله 3. 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 ACCOUNT Google Service شما. در مورد نحوه تأیید اعتبار با استفاده از اعتبار حساب خدمات در بالا مراجعه کنید.
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;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 بازدید کنید.
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]
در دسترس است. برای کسب اطلاعات بیشتر در مورد زمینه های موجود در این هش ، به اسناد API REST مراجعه کنید.
افزونه Fastlane پس از بارگذاری انتشار ، پیوندهای زیر را خروجی می کند. این پیوندها به شما در مدیریت باینری ها کمک می کنند و اطمینان حاصل می کنند که آزمایش کنندگان و سایر توسعه دهندگان نسخه صحیح را دارند:
- پیوندی به کنسول Firebase که یک نسخه واحد را نشان می دهد. می توانید این پیوند را با سایر توسعه دهندگان در ارگ خود به اشتراک بگذارید.
- پیوندی برای انتشار در Tester Experience (کلیپ وب iOS) که به آزمایش کنندگان اجازه می دهد یادداشت های انتشار را مشاهده کنند و برنامه را بر روی دستگاه خود نصب کنند. تستر برای استفاده از لینک نیاز به دسترسی به نسخه دارد.
- پیوندی امضا شده که مستقیماً برنامه باینری برنامه (پرونده IPA) را بارگیری و نصب می کند. پیوند پس از یک ساعت منقضی می شود.
پس از توزیع ساخت و ساز خود ، به مدت 150 روز در داشبورد App Distribution کنسول Firebase در دسترس است. هنگامی که ساخت و ساز 30 روز از زمان انقضا است ، یک اعلامیه انقضا در کنسول و در لیست تستر ساخت در دستگاه تست آنها ظاهر می شود.
آزمایش کننده هایی که قبلاً برای آزمایش برنامه دعوت نشده بودند ، دعوت نامه های ایمیل را برای شروع کار دریافت می کنند. آزمایش کنندگان موجود اعلان های ایمیل دریافت می کنند که ساخت جدید آماده آزمایش است. برای یادگیری نحوه نصب برنامه تست ، به عنوان یک تستر تنظیم کنید . شما می توانید وضعیت هر تستر را کنترل کنید تا مشخص شود که آیا آنها دعوت را پذیرفته اند و آیا برنامه را در کنسول Firebase بارگیری کرده اند یا خیر.
(اختیاری) برای اینکه هر بار که نسخه جدیدی را در توزیع برنامه ایجاد می کنید ، شماره ساخت خود را به طور خودکار افزایش دهید ، می توانید از Action 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 ، اطلاعات مربوط به آخرین نسخه برنامه خود را دریافت کنید .
مرحله 4 (اختیاری). آزمایش کنندگان را برای توزیع مدیریت کنید
می توانید با استفاده از پرونده 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_name
: شماره پروژه Firebase شما. -
group_alias
(اختیاری): در صورت مشخص شدن ، آزمایش کنندگان به گروه مشخص شده (یا حذف شده از) اضافه می شوند. -
service_credentials_file
: مسیر پرونده اعتبارنامه خدمات Google شما. -
firebase_cli_token
: token token for Firebase cli.
service_credentials_file
و firebase_cli_token
همان آرگومان هایی هستند که توسط عمل بارگذاری استفاده می شوند.
مرحله 5 (اختیاری). در مورد آخرین نسخه برنامه خود اطلاعات کسب کنید
می توانید از اقدامات firebase_app_distribution_get_latest_release
استفاده کنید تا اطلاعات مربوط به آخرین نسخه برنامه خود را در توزیع برنامه ، از جمله اطلاعات نسخه برنامه ، یادداشت های انتشار و زمان ایجاد دریافت کنید. موارد استفاده شامل افزایش خودکار نسخه و حمل یادداشت های انتشار از نسخه قبلی است.
ارزش بازده این عمل هش است که آخرین نسخه را نشان می دهد. این هش همچنین با استفاده از lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
در دسترس است. برای کسب اطلاعات بیشتر در مورد زمینه های موجود در این هش ، به اسناد API REST مراجعه کنید.
پارامترها
پارامترهای 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 ACCOUNT Google Service شما. مستندات قبلی را برای چگونگی تأیید اعتبار با استفاده از اعتبار حساب خدمات مشاهده کنید. |
service_credentials_json_data | محتوای پرونده JSON ACCOUNT Google Service. مستندات قبلی را برای چگونگی تأیید اعتبار با استفاده از اعتبار حساب خدمات مشاهده کنید. |
debug | یک پرچم بولی شما می توانید این را برای چاپ خروجی اشکال زدایی |
مراحل بعدی
برای ثبت دستگاه های بیشتر به صورت دستی یا برنامه ای ، به ثبت نام دستگاه های اضافی iOS مراجعه کنید.
بهترین شیوه ها را برای توزیع برنامه های اپل به آزمایش کنندگان QA با استفاده از CI/CD و Fastlane بیاموزید.