نقوم بأتمتة تجميع تطبيقات iOS باستخدام Fastlane


كم مرة يتعين على مطوري iOS إنشاء تطبيق لتنزيله iTunes Connect App Store Connect ؟ أثناء مرحلة الاختبار التجريبي النشط للتطبيق ، تحتاج إلى إصلاح الأخطاء بسرعة وتقديم تجميع محدث للاختبار. من الضروري أيضًا تنزيل الشهادات وملفات تعريف Provision والنقر على الكثير من علامات الاختيار والأزرار المختلفة لكل بنية جديدة.


لحسن الحظ ، هناك أداة رائعة مثل fastlane تساعدنا في أتمتة الإجراءات اليدوية لمطور الجوال.


في هذا المنشور ، سأخبرك ما هو الخط السريع وكيفية البدء في استخدامه بسرعة في مشاريع iOS الخاصة بك.


مقدمة


ما هذا


Fastlane هي أداة لأتمتة التجميع والتخطيط لتطبيقات iOS و Android المحمولة ، والتي تتضمن أيضًا إنشاء لقطات شاشة وتشغيل اختبارات الوحدة / واجهة المستخدم وإرسال الرسائل إلى Slack والاتصال بـ Crashlytics والعديد من الأشياء المفيدة الأخرى التي تجعل الحياة أسهل.


ما هو الربح؟


لن يستغرق الأمر أكثر من ساعتين لتكوين الأوامر الأساسية لأتمتة حساب التطبيق ، على سبيل المثال ، للنشر على App Store أو على TestFlight ، ومع ذلك ، سيوفر هذا الكثير من الوقت في المستقبل ، حيث سيتم إطلاق العملية برمتها في مكالمة واحدة من سطر الأوامر.


تنبيه: يلزم اشتراك Apple Developer لاستكمال جميع الخطوات ، حيث إن الوصول إلى App Store Connect غير متاح للحسابات المجانية.


التثبيت


قم بتثبيت fastlane نفسه


للبدء ، قم بتثبيت / ترقية إلى أحدث إصدار من أدوات أوامر Xcode:


$ xcode-select --install 

تثبيت fastlane جوهرة:


 $ sudo gem install fastlane -NV #   brew $ brew cask install fastlane 

أضف إلى المشروع


في الدليل الجذر للمشروع ، قم بتشغيل:


 $ sudo fastlane init 

ستقدم لنا Fastlane خيارات للنصوص البرمجية المثبتة مسبقًا اعتمادًا على ما نريده:



سنختار الخيار 4 ، كما سنقرر جميع الأوامر اللازمة لوضعنا:



انتهى! تم تثبيت مجلد fastlane وملف gemfile بنجاح في مشروعنا.


قبل أن نواصل


إذا لم يكن ملف تعريف shell المحلي هو UTF-8 ، فستكون هناك مشاكل في البناء والتحميل. نذهب إلى ملف ملف تعريف الصدفة ( ~ / .bashrc ، ~ / .bash_profile ، ~ / .profile أو ~ / .zshrc ) ونضيف الأسطر التالية:


 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 

أنت الآن جاهز لكتابة الخطوات الفورية لأتمتة التجميع.


كيف يعمل


أولاً ، اكتشف ما يفعله الخط السريع: أوامره الرئيسية وكيف نصف ما يجب القيام به.


أوامر (إجراءات)


يأتي Fastlane بالعديد من الأوامر المفيدة التي تجعل الحياة أسهل للمطور:


  • سيرت : يقوم تلقائيًا بتنزيل وتثبيت الشهادات اللازمة (التوزيع والتطوير) لتوقيع التطبيقات المجمعة ؛
  • increment_build_number : يزيد رقم البنية بمقدار 1 ، أو يتغير إلى القيمة المحددة في معلمة build_number
  • تنهيدة : تنزيل وتثبيت جميع ملفات تعريف التوفير اللازمة تلقائيًا ؛
  • لقطة : يدير اختبارات واجهة المستخدم ويأخذ لقطات شاشة يمكن استخدامها عند الإرسال للمراجعة في App Store ؛
  • صالة الألعاب الرياضية : يجمع الأرشيف ، وهنا ، IPA النهائي لتطبيقك ؛
  • مسح : كل ​​شيء بسيط - يطلق هدف اختبار ؛
  • تقديم : يرسل ipa ولقطات الشاشة والبيانات الوصفية مباشرة إلى App Store ؛
  • طيار : يرفع ipa جديدة لاختبار بيتا في TestFlight. يمكنك أيضًا إدارة المختبرين باستخدام هذا الأمر.
  • وغيرها الكثير

فاست فايل


يحتوي مجلد fastlane على Fastfile و Appfile . في Appfile ، سنصف القيم اللازمة للتجميع والنشر: معرفات الحزم ، معرف التطبيق ، معرف الفريق وغيرها. في Fastfile سنقوم بوصف نصوصنا. بعد التثبيت الأولي ، يبدو كما يلي:


 default_platform(:ios) platform :ios do desc "Description of what the lane does" lane :custom_lane do # add actions here: https://docs.fastlane.tools/actions end end 

  • default_platform (: ios) - قم بتعيين النظام الأساسي الافتراضي حتى لا يتم تحديده من سطر الأوامر.
  • النظام الأساسي: ios do ... النهاية - "الممرات" لمنصة iOS موصوفة هنا.
  • desc "وصف ما تقوم به الحارة" - وصف قصير لـ "حارة". يمكن عرض قائمة جميع "الممرات" مع الأوصاف باستخدام الأمر $ fastlane lanes .
  • lane: custom_lane do ... النهاية : المسار (المسار ، الشريط) هو ، ببساطة ، طريقة. لها اسم ومعلمات وهيكل. في الجسم ، $ fastlane [lane_name] [parameters] الأوامر التي نحتاجها لإنشاء ، تخطيط ، تشغيل الاختبارات ، إلخ. يتم استدعاء الممرات من سطر الأوامر عن طريق استدعاء $ fastlane [lane_name] [parameters] . بدعوة من أحد الممرات تبدأ الخطوات الآلية.

تحميل تلقائي إلى TestFlight


لنبدأ بتعيين اسم مألوف للممر الخاص بنا. إعادة تسمية Custom_lane إلى testflight_lane . من الواضح الآن أن نتيجة تنفيذ هذا النص البرمجي ستكون تجميعًا جديدًا محملًا في TestFlight .


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do # Actions end end 

تكوين ملف التطبيق


لكي لا تدخل حزمة التطبيق ومعرف Apple في كل مرة تقوم فيها بتشغيل البرنامج النصي ، اكتبها في ملف التطبيق :


 app_identifier "ru.ee.shishko.TheHatGame" apple_id "ee.shishko@gmail.com" 

الشهادات وملفات التعريف


قم بإضافة أوامر الشهادة والتنهد لتثبيت الشهادات وملفات تعريف التزويد ، على التوالي:
( تنبيه : إذا لم يكن التطبيق الخاص بك في App Store Connect ، فأنت بحاجة إلى إضافة أمر إنتاج مع معلمة app_name )


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do #      App Store Connect: # produce ( # app_name: "MyAppName" # ) cert sigh end end 

قم بتشغيل برنامجنا النصي باستخدام الأمر $ fastlane testflight_lane


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




الآن يتم تنزيل وتثبيت ملفات تعريف الشهادة والتزويد. يبقى وضع الهدف المنشود في المساهمة العامة:




بناء التطبيق


قم بإضافة الأمر increment_build_number لزيادة رقم البنية. إذا لم يكن ملف .xcodeproj الرئيسي موجودًا في المجلد الجذر ، فحدد المسار الخاص به في معلمة xcodeproj :


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number #   .xcodeproj     , : # # increment_build_number( # xcodeproj: "./path/to/MyApp.xcodeproj" # ) end end 

لزيادة رقم الإصدار ، انتقل إلى إنشاء الإعدادات / الإصدار وتعيين نظام الإصدار في Apple العام وإصدار المشروع الحالي على 1 :




قم بإضافة الأمر gym ، الذي يجمع ملف ipa لتطبيقنا :




من بين المعلمات ، يمكنك تحديد مكان وضع ipa ( output_directory ) ، واسم ipa ( output_name ) ، ونظام ( مخطط ) ، وما إذا كان يجب إجراء التنظيف ( نظيف ) وبعض العناصر الأخرى. لن نحدد أي شيء في المعلمات - سيقوم fastlane بتعيين المعلمات بشكل افتراضي ، وجمع وتوقيع ipa ، ولكن مرة أخرى: إذا رغبت في ذلك وضرورة ، يمكن تحديد كل شيء بالتفصيل:


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym #    : # # gym( # workspace: "TheHatGame.xcworkspace", # scheme: "TheHatGame", # configuration: "Release", # clean: true, # output_directory: "./build", # output_name: "TheHatGame.ipa", # codesigning_identity: "iPhone Distribution: Evgeny Shishko" # ) end end 

تحميل إلى TestFlight


لتحميل ipa في TestFlight ، سنستخدم Pilot :



مع Pilot ، يمكنك:


  • تنزيل وتوزيع التجميعات
  • إضافة وإزالة اختبار بيتا ؛
  • تلقي معلومات حول المختبرين والأجهزة التي يستخدمونها ؛
  • تصدير معلومات المختبرين إلى .csv لاستيرادها إلى مشروع آخر.

سنستخدم وظيفته الرئيسية: إرسال التجميعات إلى Apple Store Connect .


قم بإضافة test_light uploadlto لاستدعاء upload_to_testflight مع معلمات skip_submission ( سنستخدمه فقط لتحميل ملف ipa) و skip_waiting_for_build_processing (لا ننتظر حتى تنتهي المعالجة):


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym upload_to_testflight( skip_submission: true, skip_waiting_for_build_processing: true ) end end 

قم بتشغيل البرنامج النصي النهائي


نحفظ تغييراتنا ونعمل من وحدة التحكم:


 $ fastlane testflight_lane 

في مرحلة الإرسال إلى testflight ، ستحتاج إلى إدخال كلمة المرور الخاصة بالتطبيق في وحدة التحكم (وهو مطلوب للتفويض في أداة تحميل التطبيق ). يمكنك العثور عليه في حساب Apple ID الخاص بك عن طريق إنشائه بالنقر على "إنشاء كلمة مرور":



بعد إدخال كلمة المرور ، سيتم تحميل التجميع الجديد بنجاح في TestFlight وستنتهي fastlane هناك:




يمكن الاطلاع على حالة الإصدار الجديد في App Store Connect:




الخلاصة


هذا كل شيء! أود أن ألفت الانتباه إلى حقيقة أننا في هذه المقالة ، في الحالة العامة ، حاولنا قدرات fastlane. في هذا الصدد ، أرفق استبيانًا: هل ستهتم أنت ، خبروفيتس ، بالمشاركات حول الاستخدام التفصيلي للأوامر المذكورة وغيرها المفيدة في الخطوط السريعة والميزات المتقدمة في إعداد البرامج النصية؟


يمكن العثور على التطبيق مع إعداد fastlane المعروض هنا .

Source: https://habr.com/ru/post/ar424023/


All Articles