1- قبل البدء
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية استخدام Firebase App Distribution والمكون الإضافي Fastlane الخاص به لتوزيع تطبيق iOS على المختبِرين وجمع المعرّفات الفريدة للأجهزة الاختبارية وتسجيلها في الملف الشخصي لتوفير المتطلبات اللازمة لتطبيقك كي تتمكّن من دمج Ad Hoc بسرعة في المختبِرين. يَدَان
المعلومات التي ستطّلع عليها
- كيفية تحميل تطبيق iOS بإصدار تجريبي (Ad Hoc) وتوزيعه على المختبِرين باستخدام Firebase App Distribution وFastlane
- كيفية الاشتراك كمختبِر وتنزيل التطبيق الموزّع على جهاز اختبار
- كيفية تسجيل أجهزة الاختبار بسرعة من خلال تصدير معرّفات UDID لأجهزة الاختبار باستخدام المكوّن الإضافي Fastlane الخاص بـ App Distribution.
- كيفية تعديل الملف الشخصي لإدارة الحسابات لتطبيقك وإعادة تحميله لتوزيعه
المتطلبات
- حساب Google
- جهاز Apple مُثبَّت عليه الإصدار XCode 11.7 أو أحدث
- تطبيق Ad Hoc تجريبي على iOS ومضمّن في Xcode
- حساب مطوّر برامج Apple مدفوع
- جهاز iOS فعلي للاختبار.
سيعمل تطبيق محاكي iOS في معظم الدروس التطبيقية حول الترميز، ولكن لا يمكن لمحاكيات Play تنزيل الإصدارات.
لا يزال بإمكانك التحقّق من نجاح الإعداد عن طريق التأكّد من أنّ الزر "تنزيل" في تطبيق الويب لاختبار "توزيع التطبيقات".
2- البدء
إعداد Fastlane
تتكامل ميزة App Distribution مع Fastlane لتتمكَّن من توزيع الإصدارات التجريبية من تطبيقك بشكل مبرمَج. تتكامل ميزة App Distribution مع إعدادات Fastlane.
- تثبيت وإعداد Fastlane.
- شغِّل
fastlane init
في الدليل الجذري لمشروعك أثناء عملية الإعداد، ثم اختَر "الإعداد اليدوي". سيظهر لك دليل فرعي باسمfastlane
يحتوي علىFastfile
وAppfile
وPluginfile
، ستستخدمه لإعداد خطّ سريع.
تثبيت واجهة سطر الأوامر في Firebase
ستحتاج أيضًا إلى تثبيت واجهة سطر الأوامر في Firebase. إذا كنت تستخدم نظام التشغيل macOS أو Linux، يمكنك تشغيل أمر cURL التالي:
curl -sL https://firebase.tools | bash
إذا كنت تستخدم نظام التشغيل Windows، اقرأ تعليمات التثبيت للحصول على برنامج ثنائي مستقل أو لتثبيته من خلال npm
.
بعد تثبيت واجهة سطر الأوامر، يجب أن يبلغ تشغيل firebase --version
عن إصدار 12.0.0
أو إصدار أحدث:
$ firebase --version 12.0.0
3- إنشاء تطبيقك باستخدام Fastlane
إنشاء تطبيقك
- اضبط بعض المتغيرات العمومية لـ Fastlane في
./fastlane/Appfile.
. ضمِّن معرّف تطبيقك ومعرّف Apple:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- أنشئ المسار الأول واستخدِم إجراء Fastlane
build_app
(المعروف أيضًا باسمgym
) لإنشاء تطبيقك من خلال إضافة ما يلي إلى./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- وقِّع تطبيقك لتوزيعه.
في هذا الدرس التطبيقي، ستتمكّن من إدارة شهادتك وملفك الشخصي باستخدام get_certificates
(المعروف أيضًا باسم cert
)، الذي ينشئ شهادات التوقيع محليًا ويخزّن كل العناصر في تطبيق macOS Keychain. مع ذلك، ستحتاج عادةً إلى استخدام Fastlane sync_code_signing action
(المعروف أيضًا باسم 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، أنشئ مشروعًا جديدًا أو أضِفه، ثم أدخِل اسم "درس تطبيقي حول ترميز تصدير المعرِّف الفريد للمنتج".
لا تحتاج إلى تفعيل "إحصاءات Google" لهذا المشروع.
- انقر على إنشاء مشروع.
إضافة تطبيق iOS إلى المشروع
- انقر على رمز iOS لإنشاء تطبيق جديد على iOS في Firebase، ثم أدخِل معرّف حزمة تطبيقك.
- عليك تخطّي الخطوات القليلة التالية، ثم النقر على متابعة إلى وحدة التحكّم. يمكنك إضافة حِزم تطوير البرامج (SDK) إلى تطبيقك لاحقًا.
يتوفّر مشروعك وتطبيقك الآن في صفحة نظرة عامة على المشروع.
تفعيل ميزة توزيع التطبيقات
- ضمن "الإصدار" قسم "المراقبة"، انقر على توزيع التطبيقات.
- بعد قبول البنود، انقر على "البدء". لتفعيل ميزة "توزيع التطبيقات" في تطبيقك
إعداد توزيع في Fastlane
- شغِّل الأمر التالي من جذر مشروع iOS لإضافة App Distribution إلى إعدادات Fastlane.
إذا ظهر لك الأمر خيارًا، اختَر الخيار 3: RubyGems.org:
$ fastlane add_plugin firebase_app_distribution
- تأكد من تثبيت المكوّن الإضافي:
$ fastlane
من المفترَض أن تظهر في الناتج "fastlane-plugin-firebase_app_distribution
" في قائمة المكوّنات الإضافية المثبَّتة.
- بعد التأكّد من تثبيت المكوّن الإضافي، حدِّد الخيار 0 للإلغاء.
مصادقة مشروع Firebase
لاستخدام المكوّن الإضافي Fastlane، عليك أولاً مصادقة مشروع Firebase.
- شغِّل الأمر التالي لربط واجهة سطر الأوامر بحسابك على 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",
]
- طبِّق طريقة Array#join من Ruby لتحويل مصفوفة
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.
- أنت الآن في تطبيق الويب لاختبار App Distribution. في الصفحة التي تظهر، سجِّل الدخول باستخدام حسابك على Google وانقر على قبول الدعوة.
- يمكنك الآن الاطّلاع على الإصدارات التي تمت دعوتك إليها. انقر على تسجيل الجهاز تحت أحد الإصدارات.
- نزِّل الملف الشخصي على Firebase ثم ثبِّته في تطبيق "الإعدادات" عندما يُطلب منك ذلك.
يؤدي تثبيت الملف الشخصي إلى منح Firebase الإذن لتنفيذ ما يلي:
- يمكنك تسجيل جهاز الاختبار من خلال جمع رقم التعريف الفريد للجهاز (UDID).
يُرسل Firebase رسالة إلكترونية إلى جميع مالكي ومحرري مشروع Firebase تتضمن المعرّف الفريد للجهاز الاختباري.
- تثبيت مقطع ويب على الشاشة الرئيسية للجهاز الاختباري يفتح مقطع الويب تطبيق الويب الخاص باختبار App Distribution، ما يتيح لك تثبيت جميع تطبيقات الاختبار والوصول إليها.
في تطبيق الويب الخاص بأداة اختبار App Distribution، تم تسجيل جهاز الاختبار الخاص بك الآن في إصدار تطبيقك.
الآن وبعد مشاركة رقم التعريف الفريد لجهازك الاختباري مع Firebase، يمكنك الآن استئناف العمل كمطوّر. في علامة التبويب "المختبِرون" في لوحة بيانات توزيع التطبيق، تظهر معلومات المختبِر الآن ضمن إصدار تطبيقك مع الحالة "مقبول":
في القسم التالي، ستضيف المعرّف الفريد للجهاز إلى الملف الشخصي لإدارة الحسابات لتطبيقك ثم ستنشئ إصدارًا من تطبيقك يعمل مع جهاز الاختبار.
تصدير معرّفات UDID لأجهزة المختبر
بصفتك المطوّر، ستتلقّى رسالة إلكترونية من Firebase تحتوي على المعرّف الفريد للجهاز الاختباري. كخيار، تسهّل ميزة App Distribution إمكانية جمع معرّفات UDID متعددة للأجهزة في وقت واحد بتصديرها مباشرةً من وحدة تحكم Firebase كملف نصي غير منسق.
- لتصدير جميع المعرّفات الفريدة للأجهزة (UDID)، افتح مختبِرو "المجموعات".
- انقر على تصدير معرّفات Apple UDIDs.
يجب أن يحتوي الملف على المعرّف الفريد للجهاز الاختباري.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
يمكن أيضًا تصدير المعرّفات الفريدة للجهاز من سطر الأوامر باستخدام Fastlane، وستنفّذ هذه الخطوة في القسم التالي.
6- تعديل الملف الشخصي لإدارة الحسابات لتطبيقك وإعادة إنشائه
والآن، ستضيف المعرّف 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 للمكوّن الإضافي App Distribution لتنزيل المعرّفات الفريدة للأجهزة (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
إضافة الأجهزة إلى Apple Developer Console
- أنشئ المسار التالي لإضافة معرّفات UDID إلى قائمة الأجهزة في Play Console من Apple، بحيث يمكنك إضافتها إلى الملف الشخصي لإدارة الحسابات باستخدام إجراء Fastlane
register_devices
:
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، يمكنك التأكّد من أنّ الإصدار جاهز للتنزيل.
- إذا كنت تستخدم جهازًا فعليًا، اضغط على "تنزيل" ثم ثبِّت التطبيق وشغِّله.
7- تهانينا
لقد ضبطت الآن ميزة App Distribution وFastlane على طريقة برمجة عملية اختبار الإصدار التجريبي. والآن، عندما تريد دعوة مختبِرين إضافيين أو إضافة أرقام التعريف الفريدة للأجهزة (UDID) إلى تطبيقك، ستحتاج إلى تشغيل أمر واحد فقط: fastlane distribute
.
لذا، ننصحك بعدم جمع المعرّفات الفريدة للأجهزة (UDID) بشكل فردي من المختبِرين، أو الانتقال إلى وحدة تحكّم المطوّرين من Apple لتعديل قوائم الأجهزة أو الملفات الشخصية لتوفير المتطلبات اللازمة. ولا تحتاج حتى إلى فتح XCode.
من السهل إعداد سير العمل هذا ليتم تشغيله كل ساعة أو يوميًا في بيئة الدمج المستمر.
محتوى إضافي للقراءة
- استكشِف ميزات Firebase App Distribution، بما في ذلك حزمة تطوير البرامج (SDK) داخل التطبيق لنظام التشغيل iOS.
- مزيد من المعلومات حول المترو السريع
- إدارة توقيع الرموز لفريقك باستخدام
match
- دمج خط النقل السريع في CI