قم بتوزيع الإصدار التجريبي من نظام التشغيل iOS الخاص بك بشكل أسرع مع توزيع التطبيقات والمسار السريع

1. قبل أن تبدأ

4cddd34bd261cea0.png

في معمل الرموز هذا ، ستتعلم كيفية استخدام Firebase App Distribution والمكون الإضافي fastlane الخاص به لتوزيع تطبيق iOS على المختبرين ، وجمع معرّفات UDID الخاصة بالجهاز ، وتسجيلها في ملف تعريف التزويد بالتطبيق الخاص بك ، حتى تتمكن من إنشاء Ad Hoc بسرعة في المختبرين اليدين.

ماذا ستتعلم

  • كيفية تحميل وتوزيع تطبيق iOS التجريبي (Ad Hoc) للمختبرين باستخدام Firebase App Distribution و fastlane .
  • كيفية التسجيل كمختبِر وتنزيل التطبيق الموزع على جهاز اختبار.
  • كيفية تسجيل أجهزة الاختبار بسرعة عن طريق تصدير UDIDs لجهاز الاختبار باستخدام المكون الإضافي Fastlane الخاص بتوزيع التطبيقات.
  • كيفية تحديث ملف التوفير لتطبيقك وإعادة تحميله للتوزيع.

ماذا ستحتاج

  • حساب جوجل
  • جهاز Apple مثبت عليه XCode 11.7+
  • تطبيق iOS Ad Hoc قبل الإصدار مضمن في Xcode
  • حساب مطور Apple مدفوع
  • جهاز iOS المادي للاختبار.

سيعمل تطبيق iOS simulator مع معظم مختبر الرموز ، ولكن لا يمكن لأجهزة المحاكاة تنزيل الإصدارات.

لا يزال بإمكانك التحقق من عمل الإعداد من خلال التحقق من ظهور زر "تنزيل" في تطبيق ويب اختبار توزيع التطبيقات.

2. ابدأ

قم بإعداد Fastlane

يتكامل توزيع التطبيقات مع Fastlane لتمكينك من أتمتة توزيع إصدارات ما قبل الإصدار لتطبيقك. يتكامل توزيع التطبيق مع تكوين المسار السريع الخاص بك.

  1. تثبيت وتثبيت Fastlane .
  2. قم بتشغيل fastlane init في الدليل الجذر لمشروعك أثناء الإعداد ، واختر "Manual setup". سترى دليلًا فرعيًا يسمى fastlane يحتوي على Fastfile و Appfile و Pluginfile ، والذي ستستخدمه لتكوين المسار السريع .

قم بتثبيت Firebase CLI

ستحتاج أيضًا إلى تثبيت Firebase CLI . إذا كنت تستخدم macOS أو Linux ، فيمكنك تشغيل أمر cURL التالي:

curl -sL https://firebase.tools | bash

إذا كنت تستخدم Windows ، فاقرأ إرشادات التثبيت للحصول على ثنائي مستقل أو للتثبيت عبر npm .

بمجرد تثبيت CLI ، فإن تشغيل firebase --version يجب أن يبلغ عن إصدار 12.0.0 أو أعلى:

$ firebase --version
12.0.0

3. بناء التطبيق الخاص بك مع Fastlane

بناء التطبيق الخاص بك

  1. قم بتعيين بعض المتغيرات العامة للمسار السريع في ملف ./fastlane/Appfile. قم بتضمين معرف التطبيق الخاص بك ومعرف Apple الخاص بك:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. أنشئ مسارك الأول واستخدم إجراء build_app الخاص بـ fastlane (المعروف أيضًا باسم gym ) لإنشاء تطبيقك عن طريق إضافة ما يلي إلى ./fastlane/Fastfile :
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. وقع التطبيق الخاص بك للتوزيع.

بالنسبة لمعمل الرموز هذا ، ستدير شهادتك الخاصة وملفك الشخصي باستخدام get_certificates (المعروف أيضًا باسم cert ) ، والذي ينشئ شهادات التوقيع محليًا ويخزن كل شيء في macOS Keychain الخاص بك. عادة ، ومع ذلك ، سترغب في استخدام الإجراء السريع 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. [اختياري] إذا لم تشغل تطبيقك من قبل ، فقم بتشغيل الأمر التالي لإنشاء تطبيقك في وحدة تحكم مطوري Apple:

$ fastlane produce --skip_itc

  1. أخيرًا ، أنشئ تطبيقك عن طريق تشغيل المسار.

سيُطلب منك معرف Apple وكلمة المرور (المخزنة في Keychain الخاصة بك) ومعرف حزمة التطبيق الخاص بك.

$ fastlane build

إذا واجهت أي مشكلة ، فالرجاء الاطلاع على دليل استكشاف الأخطاء وإصلاحها في الخط السريع .

4. قم بتحميل تطبيقك إلى Firebase

الآن بعد أن أنشأت تطبيقك ، فأنت جاهز لتحميله إلى توزيع التطبيقات.

إنشاء مشروع Firebase وإعداده

  1. سجّل الدخول إلى Firebase.
  2. في وحدة تحكم Firebase ، أنشئ مشروعًا جديدًا أو أضفه ، ثم قم بتسمية مشروعك "UDID Export Codelab".

لست بحاجة إلى تمكين Google Analytics لهذا المشروع.

  1. انقر فوق إنشاء مشروع .

أضف تطبيق iOS الخاص بك إلى المشروع

  1. انقر فوق رمز iOS لإنشاء تطبيق Firebase iOS جديد ، وأدخل معرف حزمة التطبيق الخاص بك.

9c26c130a6c42212.png

  1. تخطي الخطوات القليلة التالية ، ثم انقر فوق "متابعة" لوحدة التحكم . ستضيف حزم SDK إلى تطبيقك لاحقًا.

مشروعك وتطبيقك متاحان الآن في صفحة نظرة عامة على المشروع .

66f79cc8a97fa8e9.png

تفعيل توزيع التطبيق

  1. ضمن قسم الإصدار والمراقبة ، انقر فوق توزيع التطبيق .
  2. بعد قبول الشروط ، انقر فوق "البدء" لتمكين توزيع التطبيقات لتطبيقك.

460213326c2784ae.png

قم بإعداد التوزيع في المسار السريع

  1. قم بتشغيل الأمر التالي من جذر مشروع iOS الخاص بك لإضافة توزيع التطبيق إلى تكوين المسار السريع الخاص بك.

إذا طالبك الأمر بخيار ، فحدد الخيار 3: RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. تأكد من تثبيت المكون الإضافي:

$ fastlane

يجب أن يُظهر الإخراج fastlane-plugin-firebase_app_distribution في قائمة المكونات الإضافية المثبتة.

  1. بعد التأكد من تثبيت المكون الإضافي ، اختر الخيار 0 للإلغاء.

مصادقة مشروع Firebase الخاص بك

لاستخدام المكون الإضافي fastlane ، عليك أولاً مصادقة مشروع Firebase الخاص بك.

  1. قم بتشغيل الأمر التالي لتوصيل CLI بحساب Google الخاص بك:

$ firebase login

  1. عندما يقوم الأمر بطباعة ارتباط المصادقة ، افتح الرابط في المستعرض.
  2. عند المطالبة ، سجّل الدخول إلى حسابك في Google وامنح الإذن للوصول إلى مشروع Firebase.

توزيع التطبيق الخاص بك

أنت الآن جاهز لتوزيع تطبيقك.

  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. بعد ذلك ، يمكن الوصول إلى الإصدارات التي أصبحت متاحة لك من تطبيق الويب لاختبار توزيع التطبيقات ، باستخدام مقطع الويب الذي تمت إضافته إلى الشاشة الرئيسية لجهازك.

  1. على جهاز اختبار iOS الخاص بك ، افتح البريد الإلكتروني المرسل من Firebase App Distribution وانقر على رابط البدء . تأكد من فتح الرابط في Safari.
  2. أنت الآن في تطبيق الويب لاختبار توزيع التطبيقات. في الصفحة التي تظهر ، قم بتسجيل الدخول باستخدام حساب Google الخاص بك وانقر فوق قبول الدعوة.

d833407de251b89f.png

  1. يمكنك الآن مشاهدة الإصدارات التي تمت دعوتك إليها. انقر فوق تسجيل الجهاز ضمن أحد الإصدارات.

fd141215e54a938d.png

  1. عند المطالبة ، قم بتنزيل ملف تعريف Firebase ، ثم قم بتثبيت ملف التعريف في تطبيق الإعدادات.

يمنح تثبيت ملف التعريف Firebase إذنًا لـ:

  • سجل جهاز الاختبار عن طريق جمع معرف الجهاز الفريد (UDID).

يرسل Firebase إلى جميع مالكي ومحرري مشروع Firebase بريدًا إلكترونيًا يتضمن UDID لجهاز الاختبار.

  • قم بتثبيت مقطع ويب على الشاشة الرئيسية لجهاز الاختبار. يفتح مقطع الويب تطبيق الويب الخاص باختبار توزيع التطبيقات ، والذي يسمح لك بتثبيت جميع تطبيقاتك التجريبية والوصول إليها.

في تطبيق الويب الخاص باختبار توزيع التطبيقات ، تم الآن تسجيل جهاز الاختبار الخاص بك لإصدار تطبيقك.

fe93d649dfa25877.png

الآن بعد أن شاركت UDID لجهاز الاختبار الخاص بك مع Firebase ، يمكنك الآن استئناف العمل كمطور. في علامة التبويب "المختبرين" بلوحة تحكم توزيع التطبيق ، تظهر الآن معلومات المختبِر أسفل إصدار تطبيقك بالحالة "مقبول":

7b9f665a63a384cf.png

في القسم التالي ، ستضيف UDID للجهاز إلى ملف تعريف توفير التطبيق الخاص بك ، ثم تنشئ إصدارًا من تطبيقك يعمل مع جهاز الاختبار الخاص بك.

قم بتصدير معرفات UDID الخاصة بجهاز الاختبار

بصفتك المطور ، ستتلقى رسالة بريد إلكتروني من Firebase تحتوي على UDID لجهاز الاختبار. كخيار ، يسهّل توزيع التطبيقات تجميع عدة معرفات UDID جديدة للأجهزة في وقت واحد عن طريق السماح لك بتصديرها مباشرةً من وحدة تحكم Firebase كملف نصي خام.

  1. لتصدير جميع UDIDs ، افتح علامة التبويب المختبرون والمجموعات .

241a9936898a2fc0.png

  1. انقر فوق تصدير Apple UDIDs .

bcf0c26c522d9b4e.png

يجب أن يحتوي الملف على UDID لجهاز الاختبار الخاص بك.

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

يمكن أيضًا تصدير UDIDs من سطر الأوامر باستخدام fastlane ، وهو ما ستفعله في القسم التالي.

6. قم بتحديث ملف تعريف إدارة التطبيق الخاص بك وأعد بنائه

الآن ، ستضيف UDID لجهاز الاختبار الخاص بك إلى ملف تعريف توفير التطبيق الخاص بك ، وإعادة إنشاء إصدار من التطبيق الخاص بك يعمل مع جهازك ، وتوزيع الإصدار الجديد.

إضافة ممر تصدير UDID

  1. أضف متغيرًا آخر في الجزء العلوي من Fastfile الخاص بك ، واضبطه على مسار ملف حيث سيتم تنزيل UDIDs لجهاز المختبرين.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. قم بإعداد ممر جديد يستخدم إجراء تصدير UDID الخاص بالمكون الإضافي App Distribution لتنزيل UDIDs للاختبار ، تمامًا كما فعلت من وحدة التحكم.
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. اطبع الملف الذي تم تنزيله ، والذي يجب أن يحتوي على UDIDs لجهاز الاختبار.

$ cat tester_udids.txt

أجهزة dd إلى وحدة تحكم مطوري Apple

  1. أنشئ المسار التالي لإضافة معرفات UDID إلى قائمة أجهزتك في وحدة تحكم مطوري Apple ، بحيث يمكنك إضافتها إلى ملف تعريف التزويد الخاص بك باستخدام إجراء 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. على جهاز الاختبار الخاص بك ، ارجع إلى تطبيق اختبار توزيع التطبيقات على الويب باستخدام الرابط الموجود في البريد الإلكتروني ، أو الرمز الموجود على الشاشة الرئيسية للجهاز.

عندما تنتقل إلى تطبيق codelab UDID ، يمكنك أن ترى أن الإصدار جاهز للتنزيل.

dad6d03b6ad78746.png

  1. إذا كنت تستخدم جهازًا ماديًا ، فاضغط على تنزيل ، ثم قم بتثبيت التطبيق وتشغيله!

7. مبروك

لقد قمت الآن بتهيئة توزيع التطبيق والمسار السريع لأتمتة عملية اختبار الإصدار التجريبي. الآن ، عندما تريد دعوة مختبرين إضافيين ، أو إضافة UDIDs الخاصة بهم إلى تطبيقك ، فستحتاج فقط إلى تشغيل أمر واحد: fastlane distribute .

لذلك لم تعد تقوم بجمع معرفات UDID بشكل فردي من المختبرين ، أو الذهاب إلى وحدة تحكم مطوري Apple لتحديث قوائم الأجهزة أو ملفات تعريف التوفير. لا تحتاج حتى إلى فتح XCode!

من السهل إعداد سير العمل هذا للتشغيل كل ساعة أو يوميًا في بيئة التكامل المستمر.

قراءة متعمقة