قم بتوزيع إصدارات iOS السابقة للإصدار بشكل أسرع باستخدام App Distribution وfastlane

1. قبل أن تبدأ

4cddd34bd261cea0.png

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

  1. تثبيت وإعداد الخط السريع .
  2. قم بتشغيل 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

أنشئ تطبيقك

  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 الخاص بك. ومع ذلك، ستحتاج عادةً إلى استخدام إجراء 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. [اختياري] إذا لم تقم بتشغيل تطبيقك من قبل، فقم بتشغيل الأمر التالي لإنشاء تطبيقك في وحدة تحكم مطوري Apple:

$ fastlane produce --skip_itc

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

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

$ fastlane build

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

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

الآن بعد أن قمت بإنشاء تطبيقك، أصبحت جاهزًا لتحميله إلى App Distribution.

إنشاء وإعداد مشروع 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 الخاص بك لإضافة توزيع التطبيقات إلى تكوين Fastlane الخاص بك.

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

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

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

d833407de251b89f.png

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

fd141215e54a938d.png

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

يمنح تثبيت الملف الشخصي الإذن لـ Firebase بما يلي:

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

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

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

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

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

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

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

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

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

241a9936898a2fc0.png

  1. انقر على تصدير معرفات Apple UDID .

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 الخاص بك، وقم بتعيينه على مسار الملف حيث سيتم تنزيل 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 لتنزيل معرفات UDID الخاصة بالاختبار، تمامًا كما فعلت من وحدة التحكم.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. قم بتشغيل المسار التالي لتنزيل UDIDs.

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

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

أبي6d03b6ad78746.png

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

7. تهانينا

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

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

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

قراءة متعمقة