Fastlane bilan GitLab qanday iOS ilovalarini to'playdi, imzolaydi va App Store do'konida nashr etadi.
Bizda yaqinda bor edi
Mana biz olamiz
Apple Store konfiguratsiyasi haqida bir necha so'z
Hammasini birlashtirish uchun bizga App Store ilovasi, tarqatish sertifikatlari va provayder profili kerak bo‘ladi.
Bu erda eng qiyin narsa - App Store do'konida imzolash huquqlarini o'rnatish. Umid qilamanki, siz buni o'zingiz tushunasiz. Agar siz yangi bo'lsangiz, men sizni to'g'ri yo'nalishga ko'rsataman, lekin biz bu erda Apple sertifikatlarini boshqarishning nozik tomonlari haqida gapirmaymiz va ular doimo o'zgarib turadi. Ushbu post sizga boshlashingizga yordam beradi.
Mening ilovalarim
Konfiguratsiya uchun identifikatorga ega bo'lishingiz uchun sizga App Store Connect ilovasi kerak .xcodebuild
. Profil va ilova identifikatori foydalanuvchilarga test ilovalarini tarqatish uchun kod tuzilishi, narxlari va mavjudligi hamda TestFlight konfiguratsiyasini birlashtiradi. Ommaviy test o‘tkazmang, agar sizda kichik guruh bo‘lsa, sozlash oson bo‘lsa va Apple’dan qo‘shimcha ruxsatlar kerak bo‘lmasa, shaxsiy test kifoya qiladi.
Initializatsiya profili
Ilovani sozlashdan tashqari, sizga Apple Developer konsolining Sertifikatlar, identifikatorlar va profillar bo‘limida yaratilgan iOS tarqatish va ishlab chiqish kalitlari kerak bo‘ladi. Ushbu sertifikatlarning barchasi provayder profiliga birlashtirilishi mumkin.
Autentifikatsiya qilinadigan foydalanuvchilar sertifikatlar yaratishi kerak, aks holda qadamlar
boshqa variantlar
Ushbu oddiy usuldan tashqari, sertifikatlar va profillarni sozlashning boshqa usullari mavjud. Shunday qilib, agar siz boshqacha ishlasangiz, moslashishga to'g'ri keladi. Eng muhimi, konfiguratsiya kerak .xcodebuild
, bu kerakli fayllarga ishora qiladi va kalit zanjiri yuguruvchi nomi ostida ishlaydigan foydalanuvchi uchun tuzilgan kompyuterda mavjud bo'lishi kerak. Raqamli imzo uchun biz fastlane-dan foydalanamiz va agar muammolar mavjud bo'lsa yoki ko'proq bilmoqchi bo'lsangiz, ularning tafsilotlarini tekshiring
Ushbu misolda men yondashuvdan foydalanmoqdaman
GitLab va fastlane tayyorlanmoqda
CI Runner tayyorlanmoqda
Ushbu ma'lumotlarning barchasini to'plaganimizdan so'ng, biz MacOS qurilmasida GitLab runner konfiguratsiyasiga o'tamiz. Afsuski, siz faqat MacOS-da iOS ilovalarini yaratishingiz mumkin. Ammo hamma narsa o'zgarishi mumkin va agar siz bu sohada rivojlanishni kutsangiz, kabi loyihalarni kuzatib boring
Yuguruvchini o'rnatish juda oddiy. Joriyni kuzatib boring
Eslatma. Yuguruvchi bajariladigan dasturdan foydalanishi kerak shell
. Bu konteynerlar orqali emas, balki to'g'ridan-to'g'ri foydalanuvchi sifatida ishlash uchun macOS-da iOS-ni yaratish uchun talab qilinadi. Agar foydalanayotgan bo'lsangiz shell
, qurish va sinovdan o'tkazish yuguruvchi foydalanuvchi sifatida, to'g'ridan-to'g'ri quruvchi hostda amalga oshiriladi. Bu konteynerlar kabi xavfsiz emas, shuning uchun ko'rib chiqish yaxshiroqdir
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 ushbu xostda Xcode yaratishi kerak bo‘lgan kalitlarga kirish huquqi bilan sozlanishi kerak. Buni sinab ko'rishning eng oson yo'li - qurilishni boshqaradigan foydalanuvchi sifatida tizimga kirish va uni qo'lda qurishga harakat qilishdir. Agar tizim kalit zanjiriga kirishni so'rasa, CI ishlashiga Har doim ruxsat berish-ni tanlang. Ular endi kalit zanjirni so'ramasligiga ishonch hosil qilish uchun birinchi ikkita quvur liniyasiga kirib, ularni tomosha qilishga arziydi. Muammo shundaki, Apple bizga Avto rejimidan foydalanishni osonlashtirmaydi, lekin siz uni ishga tushirganingizdan so'ng, hammasi yaxshi bo'ladi.
fastlane init
Loyihada fastlane-dan foydalanish uchun ishga tushiring fastlane init
. Faqat kuzatib boring
Loyiha katalogingizda quyidagi buyruqlarni bajaring:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane asosiy konfiguratsiyani so'raydi va keyin uchta fayl bilan loyihada fastlane papkasini yaratadi:
1. fastlane/Appfile
Bu erda hech qanday murakkab narsa yo'q. Apple ID va App ID to'g'ri ekanligiga ishonch hosil qiling.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
qurish bosqichlarini belgilaydi. Biz fastlane-ning ko'plab o'rnatilgan funksiyalaridan foydalanamiz, shuning uchun bu erda ham hamma narsa aniq. Biz sertifikatlarni qabul qiladigan, montajni amalga oshiradigan va TestFlight-ga yuklaydigan bitta qatorni yaratamiz. Agar kerak bo'lsa, bu jarayonni turli vazifalarga bo'lishingiz mumkin. Bu barcha operatsiyalar (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) allaqachon fastlane-ga kiritilgan.
Amallar get_certificates
и get_provisioning_profile
imzolash yondashuvi bilan bog'liq
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
Bu ixtiyoriy fayl, lekin men uni standart chiqish katalogini oʻzgartirish va chiqishni joriy jildga joylashtirish uchun qoʻlda yaratdim. Bu CI ni soddalashtiradi. Agar qiziqsangiz, o'qing gym
va uning parametrlari
https://docs.fastlane.tools/actions/gym/
Bizning .gitlab-ci.yml
Shunday qilib, bizda loyiha uchun CI yuguruvchisi bor va biz quvurni sinab ko'rishga tayyormiz. Keling, bizda nima borligini ko'rib chiqaylik .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
Vse otlichno! clone
bajaruvchi dastur bilan shell
, shuning uchun biz har bir yig'ilish uchun toza ish joyiga ega bo'lamiz va shunchaki qo'ng'iroq qiling flappybuild
fastlane, yuqorida ko'rsatilganidek. Natijada, biz TestFlight-da so'nggi yig'ilishni yig'ish, imzolash va joylashtirishni olamiz.
Biz artefaktni ham olamiz va uni yig'ish bilan saqlaymiz. Iltimos, formatga e'tibor bering .ipa
simulyatorda ishlamaydigan imzolangan ARM bajariladigan fayldir. Agar siz simulyator uchun chiqishni istasangiz, uni ishlab chiqaruvchi maqsadni qo'shing va keyin uni artefakt yo'liga qo'shing.
Boshqa muhit o'zgaruvchilari
Bu erda hamma narsani ishlaydigan bir nechta muhit o'zgaruvchilari mavjud.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
App Store do‘konida autentifikatsiya qilish va TestFlight-ga yuklash uchun fastlane autentifikatsiyasi talab qilinadi. Buning uchun CIda qo'llaniladigan dastur uchun parol yarating. Tafsilotlar
Agar sizda ikki faktorli autentifikatsiya mavjud bo'lsa, o'zgaruvchi yarating FASTLANE_SESSION
(ko'rsatmalar mavjud).
FASTLANE_USER
и FASTLANE_PASSWORD
ekan FASTLANE_USER
и FASTLANE_PASSWORD
. Tafsilotlar
Xulosa
Bularning barchasi qanday ishlashini ko'rishingiz mumkin
Umid qilamanki, bu foydali bo'ldi va sizni GitLab loyihasida iOS qurilmalari bilan ishlashga ilhomlantirdi. Mana boshqasi CI_BUILD_ID
(qo'shimcha tuzilmalar uchun) to
Fastlane-ning yana bir ajoyib xususiyati
Tajribangiz haqida sharhlarda bizga xabar bering va iOS ilovalarini ishlab chiqish uchun GitLabni yaxshilash bo'yicha g'oyalaringizni o'rtoqlashing.
Manba: www.habr.com