GitLab va fastlane bilan iOS ilovalarini App Store do'koniga nashr qilish

GitLab va fastlane bilan iOS ilovalarini App Store do'koniga nashr qilish

Fastlane bilan GitLab qanday iOS ilovalarini to'playdi, imzolaydi va App Store do'konida nashr etadi.

Bizda yaqinda bor edi Android ilovasini qanday tezda yaratish va ishga tushirish haqida post GitLab bilan va tez samolyot. Bu yerda biz iOS ilovasini qanday yaratish va ishga tushirish va uni TestFlight-da nashr qilishni ko'rib chiqamiz. Bu qanchalik salqin ekanligini tekshiring Men GitLab Web IDE bilan iPad Pro-da o'zgarish qilyapman, Men yig'ilishni olib, o'zim ishlab chiqqan iPad Pro-da ilovaning sinov versiyasiga yangilanish olaman.

Mana biz olamiz Swift-dagi oddiy iOS ilovasi, men kim bilan videoni yozib oldim.

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 tasdiqlang va xo'rsin xatoni ko'rasiz.

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 raqamli imzo to'g'risidagi hujjatlar.

Ushbu misolda men yondashuvdan foydalanmoqdaman tasdiqlang va xo'rsin, lekin haqiqiy foydalanish uchun u ko'proq mos keladi match.

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 xcbuild и belgisi, va bizning ichki vazifamiz gitlab-ce # 57576.

Yuguruvchini o'rnatish juda oddiy. Joriyni kuzatib boring macOS-da GitLab Runner-ni sozlash bo'yicha ko'rsatmalar.

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 xavfsizlik hujjatlarishuning uchun siz hech narsani o'tkazib yubormaysiz.

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 fastlane o'rnatish va ishga tushirish bo'yicha ko'rsatmalar, ayniqsa, haqida bo'limda Gemfayl, chunki bizga avtomatlashtirilgan CI quvuri orqali tez va bashorat qilinadigan ishga tushirish kerak.

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 tasdiqlang va xo'rsin. Agar foydalanayotgan bo'lsangiz match yoki nima bo'lishidan qat'iy nazar, o'zgarishlar qiling.

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 hujjatlar.

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! Biz kerakli formatni fastlane uchun UTF-8 ga o'rnatdik, strategiyadan foydalaning 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 shu yerda.

Agar sizda ikki faktorli autentifikatsiya mavjud bo'lsa, o'zgaruvchi yarating FASTLANE_SESSION (ko'rsatmalar mavjud).

FASTLANE_USER и FASTLANE_PASSWORD

ekan tasdiqlang va xo'rsin so'rov bo'yicha ishga tushirish profili va sertifikatlar deb ataladi, siz o'zgaruvchilarni o'rnatishingiz kerak FASTLANE_USER и FASTLANE_PASSWORD. Tafsilotlar shu yerda. Agar siz boshqa imzolash usulidan foydalansangiz, bu shart emas.

Xulosa

Bularning barchasi qanday ishlashini ko'rishingiz mumkin mening oddiy misolimda.

Umid qilamanki, bu foydali bo'ldi va sizni GitLab loyihasida iOS qurilmalari bilan ishlashga ilhomlantirdi. Mana boshqasi CI maslahatlari fastlane uchun, har qanday holatda. Foydalanishni xohlashingiz mumkin CI_BUILD_ID (qo'shimcha tuzilmalar uchun) to versiyani avtomatik ravishda oshirish.

Fastlane-ning yana bir ajoyib xususiyati avtomatik ekran tasvirlari o'rnatish juda oson bo'lgan App Store uchun.

Tajribangiz haqida sharhlarda bizga xabar bering va iOS ilovalarini ishlab chiqish uchun GitLabni yaxshilash bo'yicha g'oyalaringizni o'rtoqlashing.

Manba: www.habr.com

a Izoh qo'shish