با App Distribution و fastlane بیلدهای iOS پیش از انتشار خود را سریعتر توزیع کنید

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

1. قبل از شروع

4cddd34bd261cea0.png

در این کد لبه، نحوه استفاده از Firebase App Distribution و پلاگین fastlane آن را برای توزیع یک برنامه iOS در بین آزمایش‌کنندگان، جمع‌آوری UDID‌های دستگاه آزمایشی، و ثبت آن‌ها در نمایه تأمین‌کننده برنامه‌تان، استفاده می‌کنید تا بتوانید به‌سرعت ساخت‌های Ad Hoc را در آزمایش‌کنندگان دریافت کنید. ' دست ها.

چیزی که یاد خواهید گرفت

  • چگونه با استفاده از Firebase App Distribution و fastlane یک برنامه پیش‌انتشاری iOS (Ad Hoc) را برای آزمایش‌کنندگان آپلود و توزیع کنیم.
  • نحوه ثبت نام به عنوان آزمایش کننده و دانلود برنامه توزیع شده در دستگاه آزمایشی.
  • نحوه ثبت سریع دستگاه های آزمایشی با صادرات UDID دستگاه های آزمایشی با افزونه fastlane App Distribution.
  • چگونه نمایه تهیه برنامه خود را به روز کنید و آن را برای توزیع مجدد آپلود کنید.

آنچه شما نیاز دارید

  • یک حساب کاربری گوگل
  • دستگاه اپل با XCode 11.7+ نصب شده است
  • یک برنامه پیش‌انتشار موقت iOS که در Xcode ساخته شده است
  • یک حساب توسعه دهنده اپل پولی
  • یک دستگاه iOS فیزیکی برای آزمایش.

برنامه شبیه‌ساز iOS برای اکثر نرم‌افزارهای کد کار می‌کند، اما شبیه‌سازها نمی‌توانند نسخه‌های منتشر شده را دانلود کنند.

همچنان می‌توانید با تأیید اینکه دکمه «دانلود» در برنامه وب آزمایش‌کننده توزیع App ظاهر می‌شود، تأیید کنید که راه‌اندازی کار کرده است.

2. شروع کنید

راه اندازی سریع السیر

App Distribution با fastlane ادغام می‌شود تا به شما امکان می‌دهد توزیع نسخه‌های قبل از انتشار برنامه خود را خودکار کنید. App Distribution با پیکربندی fastlane شما ادغام می شود.

  1. fastlane را نصب و راه اندازی کنید .
  2. در حین راه اندازی، fastlane init را در دایرکتوری ریشه پروژه خود اجرا کنید و "راه اندازی دستی" را انتخاب کنید. یک زیر شاخه به نام fastlane خواهید دید که حاوی یک فایل Appfile Fastfile Pluginfile است که از آنها برای پیکربندی fastlane استفاده خواهید کرد.

3. اپلیکیشن خود را با fastlane بسازید

اپلیکیشن خود را بسازید

  1. چند متغیر سراسری برای fastlane در ./fastlane/Appfile. شناسه برنامه و Apple ID خود را وارد کنید:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. اولین خط خود را ایجاد کنید و با افزودن موارد زیر به ./fastlane/Fastfile خود، از اکشن build_app fastlane (همچنین به عنوان gym نیز شناخته می شود) برای ساخت برنامه خود استفاده کنید:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. برنامه خود را برای توزیع امضا کنید.

برای این نرم افزار کد، گواهینامه و نمایه خود را با استفاده از get_certificates (که به عنوان cert نیز شناخته می شود) مدیریت خواهید کرد، که گواهی های امضا را به صورت محلی تولید می کند و همه چیز را در MacOS Keychain شما ذخیره می کند. با این حال، معمولاً می‌خواهید از اقدام fastlane sync_code_signing action (همچنین به عنوان match ) برای مدیریت ایمن گواهی‌ها و نمایه‌های امضای کد تیم خود استفاده کنید.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. با استفاده از اقدام get_provisioning_profile (همچنین به عنوان sigh نیز شناخته می شود) یک نمایه تامین برای برنامه خود تنظیم کنید. این به شما امکان می دهد برنامه خود را با آزمایش کنندگان به اشتراک بگذارید.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [اختیاری] اگر قبلاً برنامه خود را اجرا نکرده اید، دستور زیر را برای ایجاد برنامه خود در کنسول توسعه دهنده اپل اجرا کنید:

$ fastlane produce --skip_itc

  1. در نهایت، اپلیکیشن خود را با اجرای لاین بسازید.

از شما خواسته می‌شود که Apple ID، رمز عبور (که در Keychain شما ذخیره می‌شود) و شناسه بسته برنامه‌تان را وارد کنید.

$ fastlane build

اگر به مشکلی برخوردید، لطفاً راهنمای عیب‌یابی fastlane را ببینید.

4. برنامه خود را در Firebase آپلود کنید

اکنون که برنامه خود را ساخته اید، آماده آپلود آن در App Distribution هستید.

یک پروژه Firebase ایجاد و راه اندازی کنید

  1. وارد Firebase شوید.
  2. در کنسول Firebase، یک پروژه جدید ایجاد یا اضافه کنید و سپس نام پروژه خود را "UDID Export Codelab" بگذارید.

برای این پروژه نیازی به فعال کردن Google Analytics ندارید.

  1. روی ایجاد پروژه کلیک کنید.

اپلیکیشن iOS خود را به پروژه اضافه کنید

  1. برای ایجاد یک برنامه جدید Firebase iOS، روی نماد iOS کلیک کنید و شناسه بسته برنامه خود را وارد کنید.

9c26c130a6c42212.png

  1. از چند مرحله بعدی رد شوید، سپس روی Continue to console کلیک کنید. بعداً SDK ها را به برنامه خود اضافه خواهید کرد.

پروژه و برنامه شما اکنون در صفحه نمای کلی پروژه در دسترس هستند.

66f79cc8a97fa8e9.png

توزیع برنامه را فعال کنید

  1. در بخش Release & Monitor، روی App Distribution کلیک کنید.
  2. پس از پذیرفتن شرایط، روی «شروع به کار» کلیک کنید تا توزیع برنامه برای برنامه شما فعال شود.

460213326c2784ae.png

یک توزیع را در fastlane تنظیم کنید

  1. دستور زیر را از ریشه پروژه iOS خود اجرا کنید تا App Distribution را به پیکربندی fastlane خود اضافه کنید.

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

$ fastlane add_plugin firebase_app_distribution

  1. تأیید کنید که افزونه نصب شده است:

$ fastlane

خروجی باید fastlane-plugin-firebase_app_distribution را در لیست پلاگین های نصب شده نشان دهد.

  1. پس از تایید نصب افزونه، گزینه 0 را برای لغو انتخاب کنید.

پروژه Firebase خود را احراز هویت کنید

برای استفاده از افزونه fastlane ، ابتدا پروژه Firebase خود را احراز هویت می‌کنید.

  1. دستور زیر را اجرا کنید:

$ fastlane run firebase_app_distribution_login

  1. هنگامی که دستور یک پیوند احراز هویت را چاپ می کند، پیوند را در یک مرورگر باز کنید.
  2. وقتی از شما خواسته شد، وارد حساب Google خود شوید و اجازه دسترسی به پروژه Firebase خود را بدهید.

کد به دست آمده را از مرورگر لاگین کپی کرده و در خط فرمان قرار دهید.

  1. سپس اقدام ورود به سیستم یک نشانه تازه‌سازی را چاپ می‌کند، که افزونه App Distribution از آن برای احراز هویت با Firebase استفاده می‌کند:

dbd61c40c4131158.png

  1. با تنظیم متغیر محیطی FIREBASE_TOKEN ، رمز را ارسال کنید:

$ export FIREBASE_TOKEN= <token>

برنامه خود را توزیع کنید

اکنون برای توزیع برنامه خود آماده هستید.

  1. در بالای ./fastlane/Fastfile خود، متغیری به نام firebase_app_id تعریف کنید. <your_app_id> را با شناسه برنامه Firebase برای برنامه ای که ایجاد کرده اید جایگزین کنید (این مورد را می توانید در صفحه تنظیمات پروژه پیدا کنید).

Fastfile به زبان Ruby نوشته شده است، بنابراین از دستور Ruby برای تعریف متغیرها استفاده کنید.

firebase_app_id = "<your_app_id>"
  1. یک خط جدید به نام distribute اضافه کنید که خط ساخت را فراخوانی می کند و سپس برنامه شما را با استفاده از عمل firebase_app_distribution توزیع می کند.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. خط جدید را اجرا کنید تا برنامه خود را بسازید و یک توزیع ایجاد کنید.

$ fastlane distribute

در این مرحله، Fastfile شما باید به شکل زیر باشد:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

پس از بازخوانی کنسول Firebase، نسخه جدید برنامه خود را خواهید دید.

c59dc1a94de3bf3c.png

5. از آزمایش کنندگان دعوت کنید تا برنامه شما را دانلود کنند

هنگامی که یک آزمایش‌کننده دعوتنامه‌ای را برای آزمایش یک ساخت Ad Hoc می‌پذیرد، از او اجازه می‌خواهد تا UDID خود را به اشتراک بگذارد. اگر موافق باشند، App Distribution اطلاعات دستگاه آنها را جمع آوری می کند و از طریق ایمیل به شما اطلاع می دهد. در این بخش، خود را به عنوان آزمایش‌کننده اضافه می‌کنید تا اپلیکیشنی را که توزیع کرده‌اید دانلود و آزمایش کنید.

خود را به عنوان آزمایش کننده به نسخه اضافه کنید

  1. در زیر firebase_app_id در بالای Fastfile خود، یک متغیر برای نگه داشتن آزمایش‌کنندگان ایجاد کنید و آدرس ایمیل خود و همچنین آدرس‌های ایمیل اختیاری دیگری را که می‌خواهید امتحان کنید، در آن قرار دهید.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. از روش Ruby's Array#join استفاده کنید تا آرایه app_testers را به رشته ای جدا شده با کاما تبدیل کنید، که پارامتر testers انتظار دارد. سپس، نتیجه را به پارامتر testers firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

در این مرحله، Fastfile شما باید به شکل زیر باشد:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. دوباره خط را بدوید.

$ fastlane distribute

وقتی خط را اجرا کردید، آزمایش‌کنندگانی که اضافه کردید ایمیلی دعوت از App Distribution دریافت می‌کنند که آنها را از نسخه جدید در دسترس مطلع می‌کند. در کنسول Firebase، اکنون می‌توانید آزمایش‌کنندگانی را که در نسخه برنامه خود اضافه کرده‌اید ببینید.

2e0fc9603b868af8.png

از آنجایی که آدرس ایمیل خود را وارد کرده اید، ایمیلی از Firebase App Distribution دریافت خواهید کرد که از شما دعوت می کند برنامه را آزمایش کنید. شما اکنون اولین آزمایش کننده هستید! بخش زیر را ادامه دهید تا به عنوان آزمایش کننده در دستگاه آزمایشی خود راه اندازی شوید.

دستگاه تست خود را ثبت کنید

به عنوان یک آزمایش‌کننده، برای دسترسی به نسخه‌های برنامه‌ای که برای آزمایش دعوت شده‌اید، باید در دستگاه آزمایشی خود وارد Google شوید. از آنجایی که نسخه آزمایشی شما یک نسخه Ad Hoc است، باید با نصب نمایه Firebase دستگاه آزمایشی خود را نیز ثبت کنید. پس از آن، با استفاده از کلیپ وب که به صفحه اصلی دستگاه شما اضافه شده است، می‌توانید از برنامه وب آزمایش‌کننده توزیع App، به نسخه‌هایی که در دسترس شما قرار می‌گیرند، دسترسی پیدا کنید.

  1. در دستگاه تست iOS خود، ایمیل ارسال شده از Firebase App Distribution را باز کنید و روی پیوند Get Started ضربه بزنید. حتما لینک را در سافاری باز کنید.
  2. اکنون در برنامه وب آزمایش کننده توزیع برنامه هستید. در صفحه ای که ظاهر می شود، با حساب Google خود وارد شوید و روی Accept invitation ضربه بزنید.

d833407de251b89f.png

  1. اکنون می توانید نسخه هایی را که به آنها دعوت شده اید مشاهده کنید. روی ثبت دستگاه در زیر یکی از نسخه‌ها ضربه بزنید.

fd141215e54a938d.png

  1. هنگامی که از شما خواسته شد، نمایه Firebase را دانلود کنید، سپس نمایه را در برنامه تنظیمات نصب کنید.

نصب نمایه به Firebase اجازه می دهد:

  • دستگاه تست را با جمع آوری شناسه دستگاه منحصر به فرد (UDID) ثبت کنید.

Firebase به همه مالکان و ویرایشگران پروژه Firebase ایمیلی ارسال می کند که شامل UDID دستگاه آزمایشی است.

  • یک کلیپ وب را در صفحه اصلی دستگاه تست نصب کنید. کلیپ وب برنامه وب آزمایش کننده توزیع App را باز می کند، که به شما امکان می دهد همه برنامه های آزمایشی خود را نصب کرده و به آنها دسترسی داشته باشید.

در برنامه وب آزمایش کننده توزیع برنامه، دستگاه آزمایشی شما اکنون برای انتشار برنامه شما ثبت شده است.

fe93d649dfa25877.png

اکنون که UDID دستگاه آزمایشی خود را با Firebase به اشتراک گذاشته‌اید، اکنون می‌توانید به‌عنوان یک توسعه‌دهنده از سر بگیرید. در برگه آزمایش‌کنندگان داشبورد توزیع برنامه ، اطلاعات آزمایش‌کننده شما اکنون در زیر نسخه برنامه‌تان با وضعیت «پذیرفته‌شده» ظاهر می‌شود:

7b9f665a63a384cf.png

در بخش بعدی، UDID دستگاه را به نمایه تهیه برنامه خود اضافه می‌کنید و سپس نسخه‌ای از برنامه خود را می‌سازید که با دستگاه آزمایشی شما کار می‌کند.

UDID های دستگاه تستر خود را صادر کنید

به عنوان توسعه‌دهنده، ایمیلی از Firebase دریافت خواهید کرد که حاوی UDID دستگاه آزمایشی است. به عنوان یک گزینه، App Distribution جمع آوری چندین UDID دستگاه جدید را به طور همزمان آسان می کند و به شما امکان می دهد آنها را مستقیماً از کنسول Firebase به عنوان یک فایل متنی خام صادر کنید.

  1. برای صادر کردن همه UDID ها، تب Testers & Groups را باز کنید.

241a9936898a2fc0.png

  1. روی Export Apple UDIDs کلیک کنید.

bcf0c26c522d9b4e.png

فایل باید حاوی UDID دستگاه تست شما باشد.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

UDID ها همچنین می توانند از خط فرمان با استفاده از fastlane صادر شوند، که در بخش بعدی انجام خواهید داد.

6. نمایه ارائه برنامه خود را به روز کنید و آن را دوباره بسازید

اکنون، UDID دستگاه آزمایشی خود را به نمایه تأمین برنامه خود اضافه می‌کنید، نسخه‌ای از برنامه خود را که برای دستگاه شما کار می‌کند، بازسازی می‌کنید و نسخه جدید را توزیع می‌کنید.

خط صادرات UDID را اضافه کنید

  1. متغیر دیگری را در بالای Fastfile خود اضافه کنید و آن را روی مسیر فایلی قرار دهید که در آن UDID های دستگاه آزمایش کننده شما دانلود می شود.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. یک خط جدید راه‌اندازی کنید که از اقدام صادراتی UDID افزونه توزیع برنامه برای دانلود UDID‌های آزمایش‌کننده استفاده می‌کند، درست مانند کاری که از کنسول انجام دادید.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. برای دانلود UDID ها، خط زیر را اجرا کنید.

$ fastlane download_udids

  1. فایل دانلود شده را که باید حاوی UDID های دستگاه تست باشد پرینت بگیرید.

$ cat tester_udids.txt

یک دستگاه dd به کنسول توسعه دهنده اپل

  1. خط زیر را برای افزودن UDID ها به لیست دستگاه های خود در کنسول توسعه دهنده اپل ایجاد کنید، بنابراین می توانید آنها را با استفاده از اقدام register_devices fastlane به نمایه تأمین خود اضافه کنید:
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. سپس، خط را اجرا کنید:

$ fastlane add_new_devices

سپس باید دستگاه های جدید را در لیست دستگاه های کنسول برنامه نویس خود مشاهده کنید.

دستگاه‌ها را به نمایه تأمین‌کننده خود اضافه کنید

  1. آرگومان force را به مرحله نمایه تدارکات در خط build خود اضافه کنید تا هر بار که می‌سازید مجبور شوید دستگاه‌های جدیدی را انتخاب کند.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

برای ساخت و آپلود لاین را دوباره اجرا کنید

اکنون، خط distribute خود را با خطوط جدید به‌روزرسانی می‌کنید تا دستگاه‌ها را به نمایه تأمین‌کننده اضافه کنید، برنامه را دوباره بسازید و سپس آن را توزیع کنید.

  1. با خطوط جدید از distribute تماس بگیرید:
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. خط distribute را اجرا کنید:

$ fastlane distribute

در این مرحله، Fastfile شما باید به شکل زیر باشد:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

نسخه را از دستگاه تست دانلود کنید

اکنون که برنامه شما شامل UDID های دستگاه آزمایشی است، می توان آنها را روی دستگاه های آزمایشی نصب کرد.

e275f73d57cc8fb1.png

  1. در دستگاه آزمایشی خود، با استفاده از پیوند موجود در ایمیل یا نماد موجود در صفحه اصلی دستگاه، به برنامه وب آزمایش کننده توزیع برنامه بازگردید.

وقتی به برنامه UDID codelab بروید، می‌بینید که نسخه آماده دانلود است.

dad6d03b6ad78746.png

  1. اگر در یک دستگاه فیزیکی هستید، دانلود را فشار دهید، سپس برنامه را نصب و اجرا کنید!

7. تبریک می گویم

شما اکنون App Distribution و fastlane را برای خودکارسازی فرآیند آزمایش قبل از انتشار خود پیکربندی کرده اید. اکنون، وقتی می‌خواهید آزمایش‌کننده‌های دیگری را دعوت کنید، یا UDID‌های آن‌ها را به برنامه خود اضافه کنید، فقط باید یک دستور را اجرا کنید: fastlane distribute .

بنابراین دیگر نیازی به جمع آوری UDID ها به صورت جداگانه از آزمایش کنندگان، یا رفتن به کنسول توسعه دهنده اپل برای به روز رسانی لیست دستگاه ها یا تهیه نمایه ها نیست. شما حتی نیازی به باز کردن XCode ندارید!

تنظیم این گردش کار برای اجرای ساعتی یا روزانه در محیط ادغام مداوم شما آسان است.

بیشتر خواندن