كيف يجمع GitLab with fastlane تطبيقات iOS ويوقعها وينشرها في App Store.
كان لدينا في الآونة الأخيرة
هنا نأخذ
بضع كلمات حول تكوين متجر Apple
سنحتاج إلى تطبيق في App Store وشهادات التوزيع وملف تعريف توفير لربط كل شيء معًا.
أصعب شيء هنا هو إعداد أذونات التوقيع في متجر التطبيقات. آمل أن تتمكن من معرفة ذلك بنفسك. إذا كنت جديدًا ، فسأوجهك إلى الاتجاه الصحيح ، لكننا لن نتحدث عن تعقيدات إدارة شهادات Apple هنا ، وهي تتغير باستمرار. هذا المنشور سوف يساعدك على البدء
تطبيقاتي
تحتاج إلى تطبيق في App Store Connect حتى يكون لديك معرف لتكوينه .xcodebuild
. يجمع ملف تعريف التطبيق والمعرف بين إنشاءات التعليمات البرمجية والأسعار والتوافر وتكوين TestFlight لتوزيع تطبيقات الاختبار على المستخدمين. لا تقم بإجراء اختبار عام ، فالاختبار الخاص يكفي إذا كان لديك مجموعة صغيرة ، وإعداد بسيط ولا تحتاج إلى أذونات إضافية من Apple.
الملف المقدم
بالإضافة إلى إعداد التطبيق ، فأنت بحاجة إلى مفاتيح توزيع وتطوير iOS التي تم إنشاؤها في قسم الشهادات والمعرفات والملفات الشخصية في Apple Developer Console. يمكن دمج كل هذه الشهادات في ملف تعريف التوفير.
يحتاج المستخدمون الذين ستتم مصادقتهم إلى القدرة على إنشاء الشهادات ، وإلا فإن الخطوات
خيارات أخرى
إلى جانب هذه الطريقة البسيطة ، هناك طرق أخرى لإعداد الشهادات وملفات التعريف. لذلك ، إذا كنت تعمل بشكل مختلف ، فقد تضطر إلى إعادة التكيف. الأهم من ذلك ، سوف تحتاج إلى تكوين .xcodebuild
، والتي ستشير إلى الملفات الضرورية ، ويجب أن تكون سلسلة المفاتيح متاحة على كمبيوتر الإنشاء للمستخدم الذي يعمل العداء باسمه. نحن نستخدم الخط السريع للتوقيع الرقمي ، وإذا كانت لديك مشاكل أو تريد معرفة المزيد ، تحقق من تفاصيلها
في هذا المثال أستخدم النهج
تحضير GitLab و Fastlane
تحضير عداء CI
بعد جمع كل هذه البيانات ، ننتقل إلى تكوين GitLab runner على جهاز MacOS. لسوء الحظ ، لا يمكن إنشاء تطبيقات iOS إلا على نظام 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
. فقط اتبع
في دليل المشروع ، قم بتشغيل هذه الأوامر:
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
Все отлично! 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_BUILD_ID
(للبنيات المتزايدة) إلى
ميزة أخرى رائعة من Fastlane هي
أخبرنا عن تجربتك في التعليقات وشارك الأفكار لتحسين تطوير تطبيقات GitLab لنظام iOS.
المصدر: www.habr.com