GitLab жана fastlane менен iOS тиркемелерин App Store дүкөнүнө жарыялоо

GitLab жана fastlane менен iOS тиркемелерин App Store дүкөнүнө жарыялоо

Fastlane менен GitLab кантип iOS тиркемелерин App Store дүкөнүнө чогултат, кол коёт жана жарыялайт.

Бизде жакында болгон Android тиркемесин кантип тез куруу жана иштетүү жөнүндө пост GitLab менен жана тез тилке. Бул жерде биз iOS тиркемесин кантип түзүп, иштетип, аны TestFlight программасына жарыялоону көрөбүз. Анын канчалык салкын экенин текшериңиз Мен GitLab Web IDE менен iPad Proго өзгөртүү киргизип жатам, Мен жыйынды алып, мен аны иштеп чыккан ошол эле iPad Proдогу тиркеменин сыноо версиясына жаңыртууну алам.

Мына биз алабыз Swiftдеги жөнөкөй iOS колдонмосу, мен видеону ким менен жаздым.

Apple Store конфигурациясы жөнүндө бир нече сөз

Баарын бириктирүү үчүн бизге App Store колдонмосу, бөлүштүрүү сертификаттары жана камсыздоо профили керек болот.

Бул жерде эң кыйын нерсе - App Store дүкөнүндө кол коюу укуктарын орнотуу. Муну өзүңүз чече аласыз деп үмүттөнөм. Эгер сиз жаңы болсоңуз, мен сизге туура багыт берем, бирок биз бул жерде Apple сертификаттарын башкаруунун татаалдыктары жөнүндө айтпайбыз жана алар дайыма өзгөрүп турат. Бул пост сизге баштоого жардам берет.

Менин тиркемелерим

Конфигурациялоо үчүн ID болушу үчүн сизге App Store Connect колдонмосунда керек .xcodebuild. Профиль жана колдонмо идентификатору колдонуучуларга тесттик тиркемелерди таратуу үчүн коддун түзүлүшүн, баасын жана жеткиликтүүлүгүн жана TestFlight конфигурациясын бириктирет. Жалпыга ачык тестирлөөнү жасабаңыз, эгер сизде чакан топ болсо, жөндөө оңой болсо жана Apple'ден кошумча уруксаттардын кереги жок болсо, жеке тестирлөө жетиштүү болот.

Инициализация профили

Колдонмону орнотуудан тышкары, сизге Apple Developer консолунун Сертификаттар, Идентификаторлор жана Профильдер бөлүмүндө түзүлгөн iOS жайылтуу жана иштеп чыгуу ачкычтары керек. Бул сертификаттардын бардыгын провизия профилине бириктирсе болот.

Аныктыгы текшериле турган колдонуучулар сертификаттарды түзө алышы керек, антпесе кадамдар ырастоо жана үшкүрүнүү сиз ката көрөсүз.

башка параметрлери

Бул жөнөкөй ыкмадан тышкары, сертификаттарды жана профилдерди конфигурациялоонун башка жолдору бар. Демек, эгер сиз башкача иштесеңиз, ыңгайлашууга туура келиши мүмкүн. Эң негизгиси, сизге конфигурация керек .xcodebuild, ал керектүү файлдарды көрсөтөт жана брелок жөө күлүк аты менен иштеп жаткан колдонуучу үчүн куруу компьютеринде жеткиликтүү болушу керек. Санариптик кол коюу үчүн биз fastlane колдонобуз жана көйгөйлөр болсо же көбүрөөк билгиңиз келсе, алардын чоо-жайын текшериңиз санариптик кол коюу жөнүндө документтер.

Бул мисалда мен ыкманы колдонуп жатам ырастоо жана үшкүрүнүү, бирок чыныгы колдонуу үчүн, балким, жакшыраак ылайыктуу мелдеш.

GitLab жана fastlane даярдалууда

CI Runner даярдалууда

Бул маалыматтардын баарын чогултуп, биз MacOS түзмөгүндөгү GitLab жөө күлүгүнүн конфигурациясына өтөбүз. Тилекке каршы, сиз MacOSто iOS колдонмолорун гана жасай аласыз. Бирок баары өзгөрүшү мүмкүн, жана бул жаатта прогрессти күтсөңүз, сыяктуу долбоорлорго көз салыңыз xcbuild и белги, жана биздин ички милдетибиз gitlab-ce#57576.

Жөө күлүктү орнотуу абдан жөнөкөй. Учурдагы ээрчүү MacOSдо GitLab Runner орнотуу боюнча нускамалар.

Эскертүү. Жөө күлүк аткарылуучу программаны колдонушу керек 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 бизге Auto режимин колдонууну оңой кылбайт, бирок аны иштеткенден кийин баары жакшы болот.

fastlane init

Долбоордо fastlane колдонуу үчүн, чуркаңыз fastlane init. Жөн гана ээрчи fastlane орнотуу жана иштетүү боюнча нускамалар, өзгөчө жөнүндө бөлүмдө 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 ID жана App ID туура экенин текшериңиз.

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) мурунтан эле fastlane камтылган.

Действия 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

Колдонмолор дүкөнүндө аныктыгын текшерүү жана TestFlight'ка жүктөө үчүн fastlane үчүн аутентификация талап кылынат. Бул үчүн, CIде колдонула турган колдонмо үчүн сырсөз түзүңүз. Толук маалымат бул жерде.

Эгер сизде эки фактордук аутентификация болсо, өзгөрмө түзүңүз FASTLANE_SESSION (көрсөтмөлөр ошол жерде).

FASTLANE_USER и FASTLANE_PASSWORD

ошол ырастоо жана үшкүрүнүү инициализация профили жана суроо-талабы боюнча сертификаттар деп аталат, сиз өзгөрмөлөрдү коюшуңуз керек FASTLANE_USER и FASTLANE_PASSWORD. маалымат бул жерде. Башка кол коюу ыкмасын колдонуп жатсаңыз, бул талап кылынбайт.

Жыйынтык

Мунун баары кантип иштээрин көрө аласыз менин жөнөкөй мисалымда.

Бул пайдалуу болду жана сизге GitLab долбоорунда iOS түзүмдөрү менен иштөөгө шыктандырды деп үмүттөнөм. Бул жерде дагы бир CI кеңештери fastlane үчүн. Сиз колдонгуңуз келиши мүмкүн CI_BUILD_ID (кошумча курулуштар үчүн) чейин версияны автоматтык түрдө көбөйтүү.

Fastlane дагы бир сонун өзгөчөлүгү болуп саналат автоматтык скриншоттор орнотуу үчүн абдан жеңил болгон App Store үчүн.

Тажрыйбаңыз тууралуу комментарийлерде айтып бериңиз жана iOS тиркемесин иштеп чыгуу үчүн GitLab'ти жакшыртуу боюнча идеяларыңыз менен бөлүшүңүз.

Source: www.habr.com

Комментарий кошуу