1. قبل از شروع
در این لبه کد، نحوه استفاده از 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 شما ادغام می شود.
- fastlane را نصب و راه اندازی کنید .
- در حین راهاندازی،
fastlane init
در فهرست اصلی پروژه خود اجرا کنید و «راهاندازی دستی» را انتخاب کنید. یک زیر شاخه به نامfastlane
خواهید دید که حاوی یکFastfile
،Appfile
وPluginfile
است که از آنها برای پیکربندی fastlane استفاده خواهید کرد.
Firebase CLI را نصب کنید
همچنین باید Firebase CLI را نصب کنید. اگر از macOS یا Linux استفاده می کنید، می توانید دستور cURL زیر را اجرا کنید:
curl -sL https://firebase.tools | bash
اگر از ویندوز استفاده می کنید، دستورالعمل های نصب را بخوانید تا یک باینری مستقل دریافت کنید یا از طریق npm
نصب کنید.
پس از نصب CLI، اجرای firebase --version
باید نسخه 12.0.0
یا بالاتر را گزارش کند:
$ firebase --version 12.0.0
3. برنامه خود را با fastlane بسازید
اپلیکیشن خود را بسازید
- چند متغیر سراسری برای fastlane در
./fastlane/Appfile.
شناسه برنامه و Apple ID خود را وارد کنید:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- اولین خط خود را ایجاد کنید و با افزودن موارد زیر به فایل
./fastlane/Fastfile
خود از اکشنbuild_app
fastlane (همچنین به عنوانgym
نیز شناخته می شود) برای ساخت برنامه خود استفاده کنید:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- برنامه خود را برای توزیع امضا کنید.
برای این کد لبه، شما گواهینامه و نمایه خود را با استفاده از get_certificates
(که به عنوان cert
نیز شناخته میشود) مدیریت خواهید کرد، که گواهیهای امضا را به صورت محلی تولید میکند و همه چیز را در MacOS Keychain ذخیره میکند. با این حال، معمولاً میخواهید از sync_code_signing action
fastlane sync_code_signing (همچنین به عنوان match
) برای مدیریت ایمن گواهیها و نمایههای امضای کد تیم خود استفاده کنید.
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- با استفاده از اقدام
get_provisioning_profile
(همچنین به عنوانsigh
شناخته می شود) یک نمایه تامین برای برنامه خود تنظیم کنید. این به شما امکان می دهد برنامه خود را با آزمایش کنندگان به اشتراک بگذارید.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [اختیاری] اگر قبلاً برنامه خود را اجرا نکرده اید، دستور زیر را برای ایجاد برنامه خود در کنسول برنامه نویس اپل اجرا کنید:
$ fastlane produce --skip_itc
- در نهایت با اجرای lane اپلیکیشن خود را بسازید.
از شما خواسته می شود Apple ID، رمز عبور (که در Keychain شما ذخیره می شود) و شناسه بسته نرم افزاری خود را وارد کنید.
$ fastlane build
اگر به مشکلی برخوردید، لطفاً راهنمای عیبیابی fastlane را ببینید.
4. برنامه خود را در Firebase آپلود کنید
اکنون که برنامه خود را ساخته اید، آماده آپلود آن در App Distribution هستید.
یک پروژه Firebase ایجاد و راه اندازی کنید
- وارد Firebase شوید.
- در کنسول Firebase، یک پروژه جدید ایجاد یا اضافه کنید و سپس نام پروژه خود را "UDID Export Codelab" بگذارید.
برای این پروژه نیازی به فعال کردن Google Analytics ندارید.
- روی ایجاد پروژه کلیک کنید.
برنامه iOS خود را به پروژه اضافه کنید
- برای ایجاد یک برنامه جدید Firebase iOS، روی نماد iOS کلیک کنید و شناسه بسته برنامه خود را وارد کنید.
- از چند مرحله بعدی رد شوید، سپس روی Continue to console کلیک کنید. بعداً SDK را به برنامه خود اضافه خواهید کرد.
پروژه و برنامه شما اکنون در صفحه نمای کلی پروژه در دسترس است.
توزیع برنامه را فعال کنید
- در بخش Release & Monitor، روی App Distribution کلیک کنید.
- پس از پذیرفتن شرایط، روی «شروع به کار» کلیک کنید تا توزیع برنامه برای برنامه شما فعال شود.
یک توزیع در fastlane تنظیم کنید
- دستور زیر را از ریشه پروژه iOS خود اجرا کنید تا App Distribution را به پیکربندی fastlane خود اضافه کنید.
اگر فرمان گزینه ای را از شما می خواهد، گزینه 3 را انتخاب کنید: RubyGems.org :
$ fastlane add_plugin firebase_app_distribution
- تأیید کنید که افزونه نصب شده است:
$ fastlane
خروجی باید fastlane-plugin-firebase_app_distribution
در لیست پلاگین های نصب شده نشان دهد.
- پس از تایید نصب افزونه، گزینه 0 را برای لغو انتخاب کنید.
پروژه Firebase خود را احراز هویت کنید
برای استفاده از افزونه fastlane ، ابتدا پروژه Firebase خود را احراز هویت میکنید.
- دستور زیر را برای اتصال CLI به حساب Google خود اجرا کنید:
$ firebase login
- هنگامی که دستور یک پیوند احراز هویت را چاپ می کند، پیوند را در یک مرورگر باز کنید.
- وقتی از شما خواسته شد، وارد حساب Google خود شوید و اجازه دسترسی به پروژه Firebase خود را بدهید.
برنامه خود را توزیع کنید
اکنون برای توزیع برنامه خود آماده هستید.
- در بالای فایل
./fastlane/Fastfile
خود، متغیری به نامfirebase_app_id
تعریف کنید.<your_app_id>
با شناسه برنامه Firebase برای برنامه ای که ایجاد کرده اید جایگزین کنید (این مورد را می توانید در صفحه تنظیمات پروژه پیدا کنید).
Fastfile
به زبان Ruby نوشته شده است، بنابراین از دستور Ruby برای تعریف متغیرها استفاده کنید.
firebase_app_id = "<your_app_id>"
- یک خط جدید به نام
distribute
اضافه کنید که خط ساخت را فراخوانی می کند و سپس برنامه شما را با استفاده از عملfirebase_app_distribution
توزیع می کند.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- برای ساخت اپلیکیشن و ایجاد توزیع، خط جدید را اجرا کنید.
$ 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، نسخه جدید برنامه خود را خواهید دید.
5. از آزمایش کنندگان دعوت کنید تا برنامه شما را دانلود کنند
هنگامی که یک آزمایشکننده دعوتی را برای آزمایش یک ساخت موقت میپذیرد، از او اجازه میخواهد تا UDID خود را به اشتراک بگذارد. اگر موافق باشند، App Distribution اطلاعات دستگاه آنها را جمع آوری می کند و از طریق ایمیل به شما اطلاع می دهد. در این بخش، خود را به عنوان آزمایشکننده اضافه میکنید تا برنامهای را که توزیع کردهاید دانلود و آزمایش کنید.
خود را به عنوان آزمایش کننده به نسخه اضافه کنید
- در زیر
firebase_app_id
در بالای Fastfile خود، یک متغیر برای نگه داشتن آزمایشکنندگان ایجاد کنید و آدرس ایمیل خود و همچنین آدرسهای ایمیل اختیاری دیگری را که میخواهید امتحان کنید، در آن قرار دهید.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- از روش 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
- دوباره خط را بدوید.
$ fastlane distribute
وقتی خط را اجرا کردید، آزمایشکنندگانی که اضافه کردید ایمیلی دعوت از App Distribution دریافت میکنند که به آنها از نسخه جدید در دسترس اطلاع میدهد. در کنسول Firebase، اکنون میتوانید آزمایشکنندگانی را که در نسخه برنامه خود اضافه کردهاید ببینید.
از آنجایی که آدرس ایمیل خود را وارد کرده اید، ایمیلی از Firebase App Distribution دریافت خواهید کرد که از شما دعوت می کند برنامه را آزمایش کنید. شما اکنون اولین آزمایش کننده هستید! برای راهاندازی بهعنوان آزمایشکننده در دستگاه آزمایشی، بخش زیر را ادامه دهید.
دستگاه تست خود را ثبت کنید
به عنوان یک آزمایشکننده، برای دسترسی به نسخههای برنامهای که برای آزمایش دعوت شدهاید، باید در دستگاه آزمایشی خود وارد Google شوید. از آنجایی که ساخت آزمایشی شما یک نسخه Ad Hoc است، باید دستگاه آزمایشی خود را نیز با نصب نمایه Firebase ثبت کنید. پس از آن، با استفاده از کلیپ وب که به صفحه اصلی دستگاهتان اضافه شده است، میتوانید به نسخههایی که در دسترس شما قرار میگیرند، از برنامه وب آزمایشکننده توزیع برنامه دسترسی داشته باشید.
- در دستگاه تست iOS خود، ایمیل ارسال شده از Firebase App Distribution را باز کنید و روی پیوند Get Started ضربه بزنید. حتما لینک را در سافاری باز کنید.
- اکنون در برنامه وب آزمایش کننده توزیع برنامه هستید. در صفحه ای که ظاهر می شود، با حساب Google خود وارد شوید و روی Accept invitation ضربه بزنید.
- اکنون می توانید نسخه هایی را که به آنها دعوت شده اید مشاهده کنید. روی ثبت دستگاه در زیر یکی از نسخهها ضربه بزنید.
- هنگامی که از شما خواسته شد، نمایه Firebase را دانلود کنید، سپس نمایه را در برنامه تنظیمات نصب کنید.
نصب نمایه به Firebase اجازه می دهد:
- دستگاه تست را با جمع آوری شناسه دستگاه منحصر به فرد (UDID) ثبت کنید.
Firebase به همه مالکان و ویرایشگران پروژه Firebase ایمیلی ارسال می کند که شامل UDID دستگاه آزمایشی است.
- یک کلیپ وب را در صفحه اصلی دستگاه تست نصب کنید. کلیپ وب برنامه وب آزمایش کننده توزیع برنامه را باز می کند، که به شما امکان می دهد همه برنامه های آزمایشی خود را نصب کرده و به آنها دسترسی داشته باشید.
در برنامه وب آزمایش کننده توزیع برنامه، دستگاه آزمایشی شما اکنون برای انتشار برنامه شما ثبت شده است.
اکنون که UDID دستگاه آزمایشی خود را با Firebase به اشتراک گذاشتهاید، اکنون میتوانید به عنوان یک توسعهدهنده از سر بگیرید. در برگه آزمایشکنندگان داشبورد توزیع برنامه ، اطلاعات آزمایشکننده شما اکنون در زیر نسخه برنامهتان با وضعیت «پذیرفتهشده» ظاهر میشود:
در بخش بعدی، UDID دستگاه را به نمایه تهیه برنامه خود اضافه میکنید و سپس نسخهای از برنامه خود را میسازید که با دستگاه آزمایشی شما کار میکند.
UDID های دستگاه آزمایشگر خود را صادر کنید
به عنوان توسعه دهنده، ایمیلی از Firebase دریافت خواهید کرد که حاوی UDID دستگاه آزمایشی است. به عنوان یک گزینه، App Distribution جمع آوری چندین UDID دستگاه جدید را در یک زمان آسان می کند و به شما امکان می دهد آنها را مستقیماً از کنسول Firebase به عنوان یک فایل متنی خام صادر کنید.
- برای صادر کردن همه UDID ها، تب Testers & Groups را باز کنید.
- روی Export Apple UDIDs کلیک کنید.
فایل باید حاوی UDID دستگاه تست شما باشد.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
UDID ها همچنین می توانند از خط فرمان با استفاده از fastlane صادر شوند که در بخش بعدی انجام خواهید داد.
6. نمایه تهیه برنامه خود را به روز کنید و آن را دوباره بسازید
اکنون، UDID دستگاه آزمایشی خود را به نمایه تأمین برنامه خود اضافه میکنید، نسخهای از برنامه خود را که برای دستگاه شما کار میکند، بازسازی میکنید و نسخه جدید را توزیع میکنید.
خط صادرات UDID را اضافه کنید
- متغیر دیگری را در بالای Fastfile خود اضافه کنید و آن را روی مسیر فایلی قرار دهید که در آن UDID های دستگاه آزمایش کننده شما دانلود می شود.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- یک خط جدید راهاندازی کنید که از اقدام صادراتی UDID افزونه توزیع برنامه برای دانلود UDIDهای آزمایشکننده استفاده میکند، درست مانند کاری که از کنسول انجام دادید.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- برای دانلود UDID ها، خط زیر را اجرا کنید.
$ fastlane download_udids
- فایل دانلود شده را که باید حاوی UDID های دستگاه تست باشد پرینت بگیرید.
$ cat tester_udids.txt
یک دستگاه dd به کنسول توسعه دهنده اپل
- خط زیر را برای افزودن UDID ها به لیست دستگاه های خود در کنسول توسعه دهنده اپل ایجاد کنید، بنابراین می توانید با استفاده از اقدام
register_devices
fastlane آنها را به نمایه تأمین خود اضافه کنید:
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- سپس، خط را اجرا کنید:
$ fastlane add_new_devices
سپس باید دستگاه های جدید را در لیست دستگاه های کنسول توسعه دهنده خود مشاهده کنید.
دستگاهها را به نمایه تأمینکننده خود اضافه کنید
- آرگومان
force
را به مرحله نمایه تامین در خطbuild
خود اضافه کنید تا هر بار که میسازید مجبور شوید دستگاههای جدیدی را انتخاب کند.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
برای ساخت و آپلود لاین را دوباره اجرا کنید
اکنون، خط distribute
خود را با خطوط جدید بهروزرسانی میکنید تا دستگاهها را به نمایه تأمینکننده اضافه کنید، برنامه را دوباره بسازید و سپس آن را توزیع کنید.
- با خطوط جدید از
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
- خط
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 های دستگاه آزمایشی است، می توان آنها را روی دستگاه های آزمایشی نصب کرد.
- در دستگاه آزمایشی خود، با استفاده از پیوند موجود در ایمیل یا نماد موجود در صفحه اصلی دستگاه، به برنامه وب آزمایش کننده توزیع برنامه بازگردید.
وقتی به برنامه UDID codelab بروید، میبینید که نسخه آماده دانلود است.
- اگر در یک دستگاه فیزیکی هستید، دانلود را فشار دهید، سپس برنامه را نصب و اجرا کنید!
7. تبریک می گویم
اکنون App Distribution و fastlane را پیکربندی کردهاید تا فرآیند آزمایش قبل از انتشار را خودکار کنید. اکنون، وقتی میخواهید آزمایشکنندههای دیگری را دعوت کنید، یا UDIDهای آنها را به برنامه خود اضافه کنید، فقط باید یک دستور را اجرا کنید: fastlane distribute
.
بنابراین دیگر نیازی به جمعآوری جداگانه UDID از آزمایشکنندگان، یا رفتن به کنسول توسعهدهنده اپل برای بهروزرسانی لیست دستگاهها یا تهیه نمایهها نیست. شما حتی نیازی به باز کردن XCode ندارید!
تنظیم این گردش کار برای اجرای ساعتی یا روزانه در محیط ادغام مداوم شما آسان است.
در ادامه مطلب
- ویژگی های Firebase App Distribution ، از جمله SDK درون برنامه ای ما برای iOS را کاوش کنید
- درباره fastlane بیشتر بدانید
- امضای کد تیم خود را با
match
مدیریت کنید - fastlane را در CI خود ادغام کنید