نشر تطبيقات iOS في App Store باستخدام GitLab و fastlane

نشر تطبيقات iOS في App Store باستخدام GitLab و fastlane

كيف يجمع GitLab with fastlane تطبيقات iOS ويوقعها وينشرها في App Store.

كان لدينا في الآونة الأخيرة منشور حول كيفية إنشاء تطبيق android وتشغيله بسرعة مع GitLab و الخط السريع. سنرى هنا كيفية إنشاء تطبيق iOS وتشغيله ونشره على TestFlight. تحقق من مدى روعة أقوم بإجراء تغيير على iPad Pro باستخدام GitLab Web IDE، أستخدم التصميم وأحصل على تحديث للإصدار التجريبي من التطبيق على نفس جهاز iPad Pro حيث قمت بتطويره.

هنا نأخذ تطبيق iOS بسيط في Swiftالتي سجلت بها الفيديو.

بضع كلمات حول تكوين متجر Apple

سنحتاج إلى تطبيق في App Store وشهادات التوزيع وملف تعريف توفير لربط كل شيء معًا.

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

تطبيقاتي

تحتاج إلى تطبيق في App Store Connect حتى يكون لديك معرف لتكوينه .xcodebuild. يجمع ملف تعريف التطبيق والمعرف بين إنشاءات التعليمات البرمجية والأسعار والتوافر وتكوين TestFlight لتوزيع تطبيقات الاختبار على المستخدمين. لا تقم بإجراء اختبار عام ، فالاختبار الخاص يكفي إذا كان لديك مجموعة صغيرة ، وإعداد بسيط ولا تحتاج إلى أذونات إضافية من Apple.

الملف المقدم

بالإضافة إلى إعداد التطبيق ، فأنت بحاجة إلى مفاتيح توزيع وتطوير iOS التي تم إنشاؤها في قسم الشهادات والمعرفات والملفات الشخصية في Apple Developer Console. يمكن دمج كل هذه الشهادات في ملف تعريف التوفير.

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

خيارات أخرى

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

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

تحضير GitLab و Fastlane

تحضير عداء CI

بعد جمع كل هذه البيانات ، ننتقل إلى تكوين GitLab runner على جهاز MacOS. لسوء الحظ ، لا يمكن إنشاء تطبيقات iOS إلا على نظام MacOS. لكن كل شيء يمكن أن يتغير ، وإذا كنت تنتظر التقدم في هذا المجال ، فاتبع مشاريع مثل com.xcbuild и لافتة، ومهمتنا الداخلية جيتلاب سي # 57576.

إعداد العداء سهل للغاية. متابعة محدثة تعليمات لإعداد GitLab Runner على macOS.

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

sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start

يجب إعداد Apple Keychain على هذا المضيف مع إمكانية الوصول إلى المفاتيح التي يحتاج Xcode لإنشائها. أسهل طريقة لاختبار ذلك هي تسجيل الدخول بصفتك المستخدم الذي سيقوم بتشغيل الإصدار ومحاولة الإنشاء يدويًا. إذا طلب النظام الوصول إلى سلسلة المفاتيح ، فحدد "السماح دائمًا" لعمل CI. قد يكون من المفيد الدخول ومشاهدة أول زوج من خطوط الأنابيب للتأكد من أنهم لم يطلبوا سلسلة مفاتيح بعد الآن. تكمن المشكلة في أن Apple لا تسهل علينا العمل مع الوضع التلقائي ، ولكن عند إعداده ، سيكون كل شيء على ما يرام.

الحرف الأول من fastlane

لاستخدام fastlane في مشروع ، قم بتشغيل fastlane init. فقط اتبع تعليمات لتثبيت الخط السريع وتشغيلهخاصة في قسم gemfile، لأننا بحاجة إلى إطلاق سريع ويمكن التنبؤ به من خلال خط أنابيب CI تلقائي.

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

xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init

سيطلب fastlane تكوينًا أساسيًا ثم إنشاء مجلد fastlane في المشروع بثلاثة ملفات:

1. fastlane/Appfile

لا يوجد شيء معقد هنا. فقط تأكد من صحة معرف Apple ومعرف التطبيق الخاص بك.

app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address

2. fastlane/Fastfile

Fastfile يحدد خطوات البناء. نحن نستخدم الكثير من الميزات المضمنة في Fastlane ، لذلك كل شيء واضح هنا أيضًا. نقوم بإنشاء سطر واحد يتلقى الشهادات ويبنيها ويحملها إلى TestFlight. يمكنك تقسيم هذه العملية إلى مهام مختلفة إذا لزم الأمر. كل هذه العملياتget_certificates, get_provisioning_profile, gym и upload_to_testflight) مدرجة بالفعل في الخط السريع.

نشاط get_certificates и get_provisioning_profile المرتبطة بنهج التوقيع سيرت وتنهد. إذا كنت تستخدم ملفات مباراة أو أي شيء آخر ، قم بإجراء التغييرات.

default_platform(:ios)

platform :ios do
  desc "Build the application"
  lane :flappybuild do
    get_certificates
    get_provisioning_profile
    gym
    upload_to_testflight
  end
end

3. fastlane/Gymfile

هذا ملف اختياري ، لكنني قمت بإنشائه يدويًا لتغيير دليل الإخراج الافتراضي ووضع الإخراج في المجلد الحالي. هذا يبسط CI. إذا كنت مهتمًا ، اقرأ عنها gym ومعلماتها في توثيق.

https://docs.fastlane.tools/actions/gym/

لنا .gitlab-ci.yml

لذلك ، لدينا عداء CI للمشروع ونحن على استعداد لاختبار خط الأنابيب. دعونا نرى ما لدينا .gitlab-ci.yml:

stages:
  - build

variables:
  LC_ALL: "en_US.UTF-8"
  LANG: "en_US.UTF-8"
  GIT_STRATEGY: clone

build:
  stage: build
  script:
    - bundle install
    - bundle exec fastlane flappybuild
  artifacts:
    paths:
    - ./FlappyBird.ipa

Все отлично! قمنا بتعيين تنسيق UTF-8 للمسار السريع كما هو مطلوب، نحن نستخدم الإستراتيجية clone مع تنفيذ البرنامج shellحتى يكون لدينا مساحة عمل نظيفة لكل بناء ، وما عليك سوى الاتصال flappybuild Fastlane كما رأينا أعلاه. نتيجة لذلك ، نحصل على التجميع والتوقيع والنشر لأحدث تجميع في TestFlight.

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

متغيرات البيئة الأخرى

هناك نوعان من متغيرات البيئة هنا يعمل كل شيء عليها.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

للمصادقة على App Store والتحميل إلى TestFlight ، تحتاج إلى مصادقة للمسار السريع. للقيام بذلك ، قم بإنشاء كلمة مرور للتطبيق والتي سيتم استخدامها في CI. تفاصيل هنا.

إذا كان لديك مصادقة ثنائية ، فقم بإنشاء متغير FASTLANE_SESSION (تعليمات هناك).

FASTLANE_USER и FASTLANE_PASSWORD

أن سيرت وتنهد يسمى ملف تعريف التهيئة والشهادات عند الطلب ، تحتاج إلى تعيين المتغيرات FASTLANE_USER и FASTLANE_PASSWORD. تفاصيل هنا. هذا ليس ضروريًا إذا كنت تستخدم طريقة توقيع مختلفة.

في الختام

يمكنك أن ترى كيف يعمل كل شيء في المثال البسيط.

آمل أن يكون هذا مفيدًا وألهمك للعمل مع إصدارات iOS في مشروع GitLab. هنا آخر نصائح CI للخط السريع ، فقط في حالة. ربما تريد استخدام CI_BUILD_ID (للبنيات المتزايدة) إلى نسخة زيادة السيارات.

ميزة أخرى رائعة من Fastlane هي لقطات تلقائية لمتجر التطبيقات ، والتي يسهل إعدادها.

أخبرنا عن تجربتك في التعليقات وشارك الأفكار لتحسين تطوير تطبيقات GitLab لنظام iOS.

المصدر: www.habr.com

إضافة تعليق