Fastlane: أتمتة iOS مع التحكم في السرعة

نشرت: 2022-03-11

يعد إنشاء برنامج لنظام iOS أكثر من مجرد كتابة كود Objective-C أو Swift: فهو يتضمن معرفة كيفية عمل UIKit وكيفية صنع الشهادات وكيفية نشر تطبيقك في المتجر وكيفية التعامل مع مراجعات التطبيق والمزيد. إذا وجدت قائمة المهام الأبدية هذه متعبة ، فإن بعض الأتمتة في سير عملك هي بالضبط ما تحتاجه.

تعرف على Fastlane ، الأداة المصممة لتوفير دقائق أو حتى ساعات في كل عملية نشر.

أتمتة التسليم مع Fastlane iOS

يساعدك Fastlane على أتمتة عملية إرسال إصدارات بيتا إلى Crashlytics و TestFlight و App Store وغير ذلك الكثير.

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

الابتداء مع Fastlane

هناك العديد من طرق التثبيت التي يمكنك الاختيار من بينها ، اعتمادًا على ما تجده أسهل. إذا كان لديك برنامج Homebrew مثبتًا ومهيئًا ، فإن تثبيت Fastlane يتطلب أمرًا واحدًا فقط:

 brew cask install fastlane

بخلاف ذلك ، يعتبر Fastlane أداة قائمة على Ruby ، ​​فإن gem دائمًا ما تكون خيارًا:

 sudo gem install fastlane -NV

أو يمكنك دائمًا تنزيل Fastlane من الموقع الرسمي.

بمجرد تثبيت Fastlane ، قم بتشغيل fastlane init في دليل المشروع الخاص بك واتبع التعليمات.

أتمتة النشر

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

أدوات Fastlane والإجراءات والمكونات الإضافية

يعمل Fastlane من خلال وجود أدوات في جوهره تساعدك في بناء تطبيقك. علاوة على أدوات البناء ، يوجد أكثر من 170 تكاملًا مدمجًا مع خدمات مثل Crashlytics و HockeyApp و TestFlight والمزيد من المكونات الإضافية التي تنشئها الجهات الخارجية وتنشرها حتى تتمكن من الاتصال بخدمات أخرى والمزيد.

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

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

الممرات

يستخدم Fastlane الممرات التي تجمع بشكل أساسي قائمة من الإجراءات أو المكونات الإضافية بشكل متسلسل بحيث يمكنك تحقيق نفس النتيجة في كل مرة.

عند تشغيل حارة ، سيصدر كل إجراء متغير بيئة ، وستحصل الإجراءات التالية تلقائيًا على هذه المتغيرات للحفاظ على استمرار العملية. على سبيل المثال ، سيؤدي استخدام إجراء gym إلى إنشاء مسار ملف .ipa ، وسيؤدي استخدام crashlytics إلى الوصول إلى موقع .ipa هذا لتحميل هذا الملف إلى نظام توزيع خدمة بيتا الخاص به.

استخدام Fastlane مع iOS

أنت تبدأ مع عميل Toptal جديد يريد تطبيقًا بسيطًا للغاية. تم الانتهاء من التصميم بالفعل ، ويمكن ترميز التطبيق في غضون أسابيع قليلة. الخطوة التالية هي البدء في ترميزها ، وأثناء عملية التكرار ، سترسل تطبيقًا تجريبيًا كل أسبوعين إلى العميل حتى يتمكن من رؤية تقدمك وإعطائك ملاحظات حول كيفية عمل الأشياء.

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

مع Fastlane ، كل هذا يمكن أن يحدث تلقائيًا الآن!

الإرسال إلى Crashlytics Beta

على سبيل المثال ، تحتاج إلى إنشاء شهادات التوقيع وملفات تعريف التوفير لمشاركة تطبيقك عبر Crashlytics Beta.

يحتوي Fastlane على إجراء يسمى match يقوم بما يلي بمجرد إعداده:

  1. إنشاء شهادات توقيع التوزيع.
  2. قم بإنشاء ملف تعريف توفير مخصص (مرفق بالشهادة من رقم 1).
  3. احفظ الشهادة وملف التعريف من # 1 و # 2 في مستودع Git ، المشفر باستخدام OpenSSL.

الإعداد بسيط.

أولاً ، قم بتشغيل fastlane match init للبدء ، وبمجرد تعيين Git repo الخاص بك ، ما عليك سوى الاتصال بـ fastlane match adhoc للحصول على ملف تعريف توفير مخصص أو تشغيل fastlane match appstore للحصول على شهادة App Store.

تتمثل مزايا استخدام match في أنه يمكنك مزامنة الشهادات بسهولة شديدة بين أجهزة الكمبيوتر - وبين زملائك في الفريق - دون الحاجة إلى إبطال الشهادات بعد الآن ، والسرعة التي تكتسبها. يمنحك تشغيل fastlane match appstore شهادة في بضع ثوانٍ.

حسنًا ، لدينا الآن الشهادات والتزويد الذي نحتاجه ، فلنقم بإصدار إصدار لـ Crashlytics.

يتضمن سير العمل النموذجي لإرسال تطبيقك إلى Crashlytics من Fabric الخطوات التالية:

  1. إنشاء شهادات توقيع التوزيع.
  2. قم بإنشاء ملف تعريف توفير مخصص (مرفق بالشهادة من رقم 1).
  3. قم بتعيين تطبيقك لاستخدام ملف التوفير من رقم 2.
  4. أرشفة تطبيقك.
  5. افتح Fabric واتبع الخطوات لإرسال التطبيق إلى مختبري الإصدار التجريبي.

يستبدل Fastlane العمل الروتيني بهذا:

 platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end

الآن ، سيؤدي تشغيل fastlane beta من جهازك الطرفي إلى تشغيل هذا البرنامج النصي.

سيؤدي هذا أولاً إلى match الاستدعاء ، وهو إجراء يتعامل مع إنشاء وتحديث شهادات التوقيع وملفات التوفير ، ثم استدعاء gym ، وهو إجراء يبني التطبيق ويجمعه نيابةً عنك ، باستخدام الشهادات وملفات التعريف نفسها التي تم إنشاؤها من قبل ، وأخيرًا ، crashlytics ، وهي ذاهب لأخذ .ipa الموقع وتحميله إلى خدمة Crashlytics.

يتم استدعاء كل هذه الخطوات ، دائمًا ، بنفس الترتيب ، مما يجعل الملف الناتج أكثر قابلية للتنبؤ ويقلل من الأخطاء.

 MacBook-Pro:TestProject user$ fastlane beta +------+-------------------------------------+-------------+ | fastlane summary | +------+-------------------------------------+-------------+ | Step | Action | Time (in s) | +------+-------------------------------------+-------------+ | 1 | Verifying required fastlane version | 0 | | 2 | match | 57 | | 3 | gym | 592 | | 4 | crashlytics | 195 | +------+-------------------------------------+-------------+ [20:25:13]: fastlane.tools just saved you 14 minutes!

لذلك كان هذا إعدادًا أساسيًا لكيفية تشغيل Fastlane لإرسال تطبيقك إلى Crashlytics. ماذا يمكننا أتمتة؟

زيادة إصدارات البناء

يمكننا ، على سبيل المثال ، تعيين أنه في كل مرة نرسل فيها إصدارًا تجريبيًا ، نريد زيادة رقم إصدار الإصدار.

يمكن تحقيق ذلك باستخدام إجراء يسمى increment_build_number يمكن استدعاؤه من محطة طرفية عن طريق fastlane run increment_build_number أو استخدامه بشكل مضمن في حارة بيتا الخاصة بنا:

 platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end

تهانينا! لديك الآن برنامج نصي للنشر التلقائي يعمل أيضًا على زيادة رقم إصدار الإصدار الخاص بك. التحذير الوحيد هو أنه بمجرد استدعاء هذا الممر ، ستتم تغيير الملفات في مشروعك (أو ، على الأقل ، الملفات التي تتضمن رقم البنية).

في حال كنت تخطط لإجراء هذا التغيير في المستودع على أي حال ، فهناك إجراء لذلك: commit_version_bump . يقوم هذا الإجراء بتنفيذ الملفات برقم الإصدار الجديد.

 platform :ios do lane :beta do increment_build_number match(type: "adhoc") gym crashlytics commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end

سيؤدي هذا إلى تثبيت الملفات برسالة تثبيت مثل "Version Bump to 27".

Crashlytics إلى TestFlight

حسنًا ، إذا وصلت إلى هذا الحد ، يمكنك الحصول على نشر آلي لـ Crashlytics في وقت قصير جدًا مما سيوفر لك ساعات لا تحصى على المدى الطويل. أفضل جزء في ذلك هو ، إذا كنت تريد إرسال تطبيقك إلى TestFlight بدلاً من ذلك ، فكل ما عليك فعله هو تغيير crashlytics إلى pilot .

أو يمكنك إنشاء حارة منفصلة لذلك:

 platform :ios do lane :beta-testflight do increment_build_number match(type: "adhoc") gym pilot commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end

أتمتة iOS أصبحت بسيطة

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

آمل أن تجد هذه المقدمة إلى Fastlane مفيدة. يمكنك التحقق من الوثائق الرسمية لمعرفة المزيد حول Fastlane ، وخاصة قائمة الإجراءات إذا كنت تبحث عن بعض الإلهام حول ما يمكنك أتمتة لمشاريع iOS الحالية والتالية.