1. قبل أن تبدأ
في هذا الدرس التطبيقي حول التعليمات البرمجية، ستتعلم كيفية استخدام Firebase App Distribution والمكون الإضافي Fastlane الخاص به لتوزيع تطبيق iOS على المختبرين، وجمع معرفات UDID لجهاز الاختبار، وتسجيلها في ملف تعريف توفير تطبيقك، حتى تتمكن من الحصول على إصدارات Ad Hoc بسرعة في المختبرين أيدي.
ما ستتعلمه
- كيفية تحميل وتوزيع الإصدار التجريبي من تطبيق iOS (Ad Hoc) على المختبرين باستخدام Firebase App Distribution و fastlane .
- كيفية التسجيل كمختبر وتنزيل التطبيق الموزع على جهاز اختبار.
- كيفية تسجيل أجهزة الاختبار بسرعة عن طريق تصدير UDIDs لجهاز الاختبار باستخدام البرنامج الإضافي Fastlane الخاص بتوزيع التطبيقات.
- كيفية تحديث ملف تعريف توفير تطبيقك وإعادة تحميله للتوزيع.
ماذا ستحتاج
- حساب جوجل
- جهاز Apple مثبت عليه XCode 11.7+
- تطبيق Ad Hoc للإصدار المسبق لنظام iOS مدمج في Xcode
- حساب مطور Apple مدفوع
- جهاز iOS فعلي للاختبار.
سيعمل تطبيق محاكاة iOS مع معظم دروس البرمجة التطبيقية، لكن لا تستطيع المحاكيات تنزيل الإصدارات.
لا يزال بإمكانك التحقق من نجاح الإعداد من خلال التحقق من ظهور الزر "تنزيل" في تطبيق الويب الخاص باختبار توزيع التطبيقات.
2. ابدأ
إعداد الخط السريع
يتكامل توزيع التطبيقات مع Fastlane لتمكينك من أتمتة توزيع إصدارات ما قبل النشر لتطبيقك. يتكامل توزيع التطبيقات مع تكوين Fastlane الخاص بك.
- تثبيت وإعداد الخط السريع .
- قم بتشغيل
fastlane init
في الدليل الجذر لمشروعك أثناء الإعداد، ثم اختر "الإعداد اليدوي". سيظهر لك دليل فرعي يسمىfastlane
يحتوي علىFastfile
وAppfile
وPluginfile
، والذي ستستخدمه لتكوين Fastlane .
قم بتثبيت Firebase CLI
ستحتاج أيضًا إلى تثبيت Firebase CLI . إذا كنت تستخدم نظام التشغيل macOS أو Linux، فيمكنك تشغيل أمر cURL التالي:
curl -sL https://firebase.tools | bash
إذا كنت تستخدم نظام التشغيل Windows، فاقرأ تعليمات التثبيت للحصول على ملف ثنائي مستقل أو للتثبيت عبر npm
.
بمجرد تثبيت سطر الأوامر، يجب أن يُبلغ تشغيل firebase --version
عن إصدار 12.0.0
أو أعلى:
$ firebase --version 12.0.0
3. أنشئ تطبيقك باستخدام Fastlane
أنشئ تطبيقك
- قم بتعيين بعض المتغيرات العامة للخط السريع في ملف
./fastlane/Appfile.
قم بتضمين معرف تطبيقك ومعرف Apple الخاص بك:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- قم بإنشاء المسار الأول الخاص بك واستخدم إجراء
build_app
الخاص بـ fastlane (المعروف أيضًا باسمgym
) لإنشاء تطبيقك عن طريق إضافة ما يلي إلى./fastlane/Fastfile
:
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
- [اختياري] إذا لم تقم بتشغيل تطبيقك من قبل، فقم بتشغيل الأمر التالي لإنشاء تطبيقك في وحدة تحكم مطوري Apple:
$ fastlane produce --skip_itc
- وأخيرًا، أنشئ تطبيقك عن طريق تشغيل المسار.
ستتم مطالبتك بمعرف Apple الخاص بك وكلمة المرور (المخزنة في Keychain) ومعرف حزمة تطبيقك.
$ fastlane build
إذا واجهت أي مشكلة، يرجى مراجعة دليل استكشاف أخطاء Fastlane وإصلاحها .
4. قم بتحميل تطبيقك إلى Firebase
الآن بعد أن قمت بإنشاء تطبيقك، أصبحت جاهزًا لتحميله إلى App Distribution.
إنشاء وإعداد مشروع Firebase
- قم بتسجيل الدخول إلى Firebase.
- في وحدة تحكم Firebase، أنشئ مشروعًا جديدًا أو أضفه، ثم قم بتسمية مشروعك "UDID Export Codelab".
لا تحتاج إلى تمكين Google Analytics لهذا المشروع.
- انقر فوق إنشاء مشروع .
أضف تطبيق iOS الخاص بك إلى المشروع
- انقر على أيقونة iOS لإنشاء تطبيق Firebase iOS جديد، وأدخل معرف حزمة تطبيقك.
- قم بتخطي الخطوات القليلة التالية، ثم انقر فوق متابعة لوحدة التحكم . ستضيف حزم SDK إلى تطبيقك لاحقًا.
مشروعك وتطبيقك متاحان الآن في صفحة نظرة عامة على المشروع .
تمكين توزيع التطبيقات
- ضمن قسم الإصدار والمراقبة، انقر فوق توزيع التطبيق .
- بعد قبول الشروط، انقر فوق "البدء" لتمكين توزيع التطبيق لتطبيقك.
قم بإعداد التوزيع في الخط السريع
- قم بتشغيل الأمر التالي من جذر مشروع iOS الخاص بك لإضافة توزيع التطبيقات إلى تكوين 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 على جهازك الاختباري حتى تتمكن من الوصول إلى إصدارات التطبيقات التي تمت دعوتك لاختبارها. نظرًا لأن الإصدار التجريبي الخاص بك هو إصدار مخصص، فستحتاج أيضًا إلى تسجيل جهازك الاختباري عن طريق تثبيت ملف تعريف Firebase. بعد ذلك، يمكن الوصول إلى الإصدارات التي أصبحت متاحة لك من تطبيق الويب لاختبار App Distribution، باستخدام مقطع الويب الذي تمت إضافته إلى الشاشة الرئيسية لجهازك.
- على جهاز اختبار iOS الخاص بك، افتح البريد الإلكتروني المرسل من Firebase App Distribution وانقر على رابط البدء . تأكد من فتح الرابط في Safari.
- أنت الآن في تطبيق الويب الخاص باختبار توزيع التطبيقات. في الصفحة التي تظهر، قم بتسجيل الدخول باستخدام حساب Google الخاص بك، ثم انقر فوق قبول الدعوة.
- يمكنك الآن رؤية الإصدارات التي تمت دعوتك إليها. انقر فوق تسجيل الجهاز ضمن أحد الإصدارات.
- عند المطالبة، قم بتنزيل ملف تعريف Firebase، ثم قم بتثبيت الملف الشخصي في تطبيق الإعدادات.
يمنح تثبيت الملف الشخصي الإذن لـ Firebase بما يلي:
- قم بتسجيل جهاز الاختبار من خلال جمع معرف الجهاز الفريد (UDID).
يرسل Firebase إلى جميع مالكي ومحرري مشروع Firebase بريدًا إلكترونيًا يتضمن معرف UDID الخاص بجهاز الاختبار.
- قم بتثبيت مقطع ويب على الشاشة الرئيسية لجهاز الاختبار. يفتح مقطع الويب تطبيق الويب الخاص باختبار App Distribution، والذي يسمح لك بتثبيت جميع تطبيقات الاختبار والوصول إليها.
في تطبيق الويب الخاص باختبار App Distribution، تم الآن تسجيل جهاز الاختبار الخاص بك لإصدار تطبيقك.
الآن بعد أن قمت بمشاركة UDID لجهازك الاختباري مع Firebase، يمكنك الآن استئناف العمل كمطور. في علامة التبويب "المختبرون" في لوحة معلومات توزيع التطبيق ، تظهر الآن معلومات المختبر ضمن إصدار تطبيقك بالحالة "مقبول":
في القسم التالي، ستضيف معرف الجهاز UDID إلى ملف تعريف توفير تطبيقك ثم تقوم بإنشاء إصدار من تطبيقك يعمل مع جهازك الاختباري.
قم بتصدير معرفات UDID لجهاز الاختبار الخاص بك
باعتبارك المطور، ستتلقى رسالة بريد إلكتروني من Firebase تحتوي على UDID لجهاز الاختبار. كخيار، تسهل ميزة App Distribution جمع عدة معرفات UDID جديدة للأجهزة مرة واحدة عن طريق السماح لك بتصديرها مباشرةً من وحدة تحكم Firebase كملف نصي أولي.
- لتصدير كافة معرفات UDID، افتح علامة التبويب "المختبرون والمجموعات" .
- انقر على تصدير معرفات Apple UDID .
يجب أن يحتوي الملف على UDID لجهاز الاختبار الخاص بك.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
يمكن أيضًا تصدير معرفات UDID من سطر الأوامر باستخدام Fastlane ، وهو ما ستفعله في القسم التالي.
6. قم بتحديث ملف تعريف توفير التطبيق الخاص بك وأعد بناءه
الآن، ستضيف UDID لجهازك الاختباري إلى ملف تعريف توفير تطبيقك، وتعيد إنشاء إصدار من تطبيقك يناسب جهازك، وتوزع الإصدار الجديد.
إضافة حارة تصدير UDID
- أضف متغيرًا آخر في الجزء العلوي من Fastfile الخاص بك، وقم بتعيينه على مسار الملف حيث سيتم تنزيل UDIDs لجهاز الاختبار الخاص بك.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- قم بإعداد مسار جديد يستخدم إجراء تصدير UDID الخاص بالمكون الإضافي App Distribution لتنزيل معرفات UDID الخاصة بالاختبار، تمامًا كما فعلت من وحدة التحكم.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- قم بتشغيل المسار التالي لتنزيل UDIDs.
$ fastlane download_udids
- اطبع الملف الذي تم تنزيله، والذي يجب أن يحتوي على UDIDs لجهاز الاختبار.
$ cat tester_udids.txt
أجهزة dd إلى وحدة تحكم مطور Apple
- قم بإنشاء المسار التالي لإضافة معرفات UDID إلى قائمة أجهزتك في وحدة تحكم مطوري Apple، حتى تتمكن من إضافتها إلى ملف تعريف التوفير الخاص بك باستخدام إجراء
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 لجهاز الاختبار، يمكن تثبيتها على أجهزة الاختبار.
- على جهازك الاختباري، ارجع إلى تطبيق الويب الخاص باختبار App Distribution باستخدام الرابط الموجود في البريد الإلكتروني، أو الرمز الموجود على الشاشة الرئيسية للجهاز.
عند الانتقال إلى تطبيق UDID codelab، يمكنك أن ترى أن الإصدار جاهز للتنزيل.
- إذا كنت تستخدم جهازًا فعليًا، فاضغط على "تنزيل"، ثم قم بتثبيت التطبيق وتشغيله!
7. تهانينا
لقد قمت الآن بتكوين App Distribution و fastlane لأتمتة عملية اختبار ما قبل الإصدار. الآن، عندما تريد دعوة مختبرين إضافيين، أو إضافة معرفات UDID الخاصة بهم إلى تطبيقك، ستحتاج فقط إلى تشغيل أمر واحد: fastlane distribute
.
لذلك لا مزيد من جمع معرفات UDID بشكل فردي من المختبرين، أو الذهاب إلى وحدة تحكم مطوري Apple لتحديث قوائم الأجهزة أو توفير الملفات الشخصية. لا تحتاج حتى إلى فتح XCode!
من السهل إعداد سير العمل هذا ليتم تشغيله كل ساعة أو يوميًا في بيئة التكامل المستمر الخاصة بك.
قراءة متعمقة
- استكشف ميزات Firebase App Distribution ، بما في ذلك حزمة SDK داخل التطبيق لنظام التشغيل iOS
- اعرف المزيد عن الخط السريع
- قم بإدارة توقيع الكود الخاص بفريقك باستخدام
match
- قم بدمج الخط السريع في CI الخاص بك