برنامه های Android را با استفاده از fastlane بین آزمایش کنندگان توزیع کنید

این سند نحوه توزیع ساخت‌های APK را برای آزمایش‌کنندگان با استفاده از fastlane ، یک پلت‌فرم منبع باز که ساخت و انتشار برنامه‌های iOS و Android را خودکار می‌کند، توضیح می‌دهد. این سند از دستورالعمل های تعریف شده در Fastfile می کند. پس از راه اندازی fastlane و Fastfile خود، می توانید App Distribution را با پیکربندی fastlane خود ادغام کنید.

قبل از اینکه شروع کنی

اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید .

اگر از محصولات Firebase دیگر استفاده نمی کنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. با این حال، اگر تصمیم به استفاده از محصولات اضافی در آینده دارید، مطمئن شوید که تمام مراحل را در صفحه لینک بالا انجام دهید.

مرحله 1. راه اندازی fastlane

  1. fastlane را نصب و راه اندازی کنید .

  2. برای افزودن App Distribution به پیکربندی fastlane خود، دستور زیر را از ریشه پروژه اندروید خود اجرا کنید:

    fastlane add_plugin firebase_app_distribution

    اگر فرمان گزینه ای را از شما می خواهد، Option 3: RubyGems.org را انتخاب کنید.

مرحله 2. با Firebase احراز هویت

قبل از اینکه بتوانید از افزونه Fastlane استفاده کنید، ابتدا باید با پروژه Firebase خود احراز هویت کنید. سه راه برای رسیدن به این هدف وجود دارد:

مرحله 3. Fastfile خود را راه اندازی کنید و برنامه خود را توزیع کنید

  1. در یک خط ./fastlane/Fastfile ، یک بلوک firebase_app_distribution اضافه کنید. برای پیکربندی توزیع از پارامترهای زیر استفاده کنید:
    پارامترهای firebase_app_distribution
    app

    مورد نیاز : شناسه برنامه Firebase برنامه شما. می‌توانید شناسه برنامه را در کنسول Firebase، در صفحه تنظیمات عمومی پیدا کنید.

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    نشانه تازه‌سازی که هنگام اجرای عملیات ورود به سیستم افزونه چاپ می‌شود (به تأیید اعتبار با استفاده از حساب Google در بالا مراجعه کنید)، یا زمانی که محیط CI خود را با Firebase CLI احراز هویت می‌کنید (برای اطلاعات بیشتر ، استفاده از CLI با سیستم‌های CI را بخوانید).

    service_credentials_file

    مسیر فایل json حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس به بالا مراجعه کنید.

    android_artifact_type

    نوع فایل اندروید (APK یا AAB) را مشخص می کند.

    android_artifact_path

    جایگزین apk_path (منسوخ شده). مسیر مطلق به فایل APK یا AAB که می‌خواهید آپلود کنید. اگر مشخص نشده باشد، 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"
    debug

    یک پرچم بولی می‌توانید این را روی true تنظیم کنید تا خروجی اشکال زدایی کامل چاپ شود.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(...)
        # build_android_app is a built-in fastlane action.
        firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )
    end
end

برای در دسترس قرار دادن بیلد برای آزمایش‌کنندگان، خط خود را اجرا کنید:

fastlane <lane>

پس از توزیع ساخت، به مدت 150 روز در داشبورد توزیع برنامه کنسول Firebase در دسترس است. هنگامی که ساخت 30 روز از انقضای آن می گذرد، یک اخطار انقضا در کنسول و در لیست بیلدهای آزمایش کننده در دستگاه آزمایشی خود ظاهر می شود.

آزمایش‌کنندگانی که قبلاً برای آزمایش برنامه دعوت نشده‌اند، دعوت‌نامه‌های ایمیلی را برای شروع دریافت می‌کنند. آزمایش‌کنندگان موجود اعلان‌های ایمیلی مبنی بر آماده بودن ساخت جدید برای آزمایش دریافت می‌کنند. برای آشنایی با نحوه نصب برنامه آزمایشی، به راهنمای تنظیم تستر مراجعه کنید. می‌توانید وضعیت هر آزمایش‌کننده را کنترل کنید تا مشخص کنید آیا دعوت‌نامه را پذیرفته‌اند و آیا برنامه را در کنسول Firebase دانلود کرده‌اند یا خیر.

(اختیاری) برای افزایش خودکار شماره ساخت خود هر بار که نسخه جدیدی را در App Distribution ایجاد می کنید، می توانید از عمل firebase_app_distribution_get_latest_release و به عنوان مثال از افزونه increment_version_code fastlane استفاده کنید. کد زیر نمونه ای از نحوه افزایش خودکار شماره ساخت خود را ارائه می دهد:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

برای کسب اطلاعات بیشتر در مورد اقدام firebase_app_distribution_get_latest_release ، به دریافت اطلاعات درباره آخرین نسخه برنامه خود مراجعه کنید .

مرحله 4 (اختیاری). مدیریت تسترها برای توزیع

می‌توانید با استفاده از فایل Fastfile یا با اجرای مستقیم اقدامات fastlane، آزمایش‌کنندگان را از نسخه برنامه خود اضافه و حذف کنید. اجرای کنش‌ها مستقیماً مقادیر تنظیم‌شده در Fastfile شما را لغو می‌کند.

هنگامی که یک آزمایش‌کننده به پروژه Firebase شما اضافه شد، می‌توانید آنها را به نسخه‌های جداگانه اضافه کنید. آزمایش‌کنندگانی که از پروژه Firebase شما حذف می‌شوند، دیگر به نسخه‌های موجود در پروژه شما دسترسی ندارند، اما ممکن است برای مدتی به نسخه‌های شما دسترسی داشته باشند.

از Fastfile استفاده کنید

# Use lanes to add or remove testers from an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

اقدامات fastlane را اجرا کنید

fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

همچنین می‌توانید آزمایش‌کننده‌ها را با استفاده از --file="/path/to/testers.txt به جای --emails کنید.

وظایف firebase_app_distribution_add_testers و firebase_app_distribution_remove_testers آرگومان های زیر را نیز می پذیرند:

  • project_name : شماره پروژه Firebase شما.
  • 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 برنامه شما. می‌توانید شناسه برنامه را در کنسول Firebase، در صفحه تنظیمات عمومی پیدا کنید.

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

نشانه تازه‌سازی که هنگام اجرای عملیات ورود به سیستم افزونه چاپ می‌شود (به تأیید اعتبار با استفاده از حساب Google در بالا مراجعه کنید)، یا زمانی که محیط CI خود را با Firebase CLI احراز هویت می‌کنید (برای اطلاعات بیشتر ، استفاده از CLI با سیستم‌های CI را بخوانید).

service_credentials_file

مسیر فایل json حساب سرویس گوگل شما. برای نحوه احراز هویت با استفاده از اعتبار حساب سرویس به بالا مراجعه کنید.

debug

یک پرچم بولی می‌توانید این را روی true تنظیم کنید تا خروجی اشکال زدایی کامل چاپ شود.