Објављивање иОС апликација у Апп Сторе-у уз ГитЛаб и фастлане

Објављивање иОС апликација у Апп Сторе-у уз ГитЛаб и фастлане

Како ГитЛаб са фастлане-ом прикупља, потписује и објављује иОС апликације у Апп Сторе-у.

Недавно смо имали пост о томе како брзо направити и покренути Андроид апликацију са ГитЛабом и брза трака. Овде ћемо видети како да направимо и покренемо иОС апликацију и објавимо је на ТестФлигхт-у. Проверите како је кул Правим промену на иПад Про-у са ГитЛаб Веб ИДЕ, узимам склоп и добијам ажурирање тестне верзије апликације на истом иПад Про-у где сам га развио.

Овде ћемо узети једноставна иОС апликација на Свифту, са којим сам снимио видео.

Неколико речи о конфигурацији Аппле Сторе-а

Требаће нам апликација Апп Сторе, сертификати о дистрибуцији и профил за обезбеђивање да бисмо све повезали.

Најтежа ствар овде је подешавање права потписивања у Апп Сторе-у. Надам се да ћете ово сами схватити. Ако сте нови, упутићу вас у правом смеру, али овде нећемо говорити о сложеностима управљања Аппле сертификатима, а они се стално мењају. Овај пост ће вам помоћи да започнете.

Моје апликације

Потребна вам је апликација у Апп Сторе Цоннецт-у да бисте имали ИД за конфигурацију .xcodebuild. Профил и ИД апликације комбинују израду кода, цене и доступност, као и ТестФлигхт конфигурацију за дистрибуцију тест апликација корисницима. Немојте вршити јавно тестирање, приватно тестирање ће бити довољно ако имате малу групу, једноставно подешавање и не требају вам додатне дозволе од Аппле-а.

Профил за иницијализацију

Поред подешавања апликације, потребни су вам кључеви за дистрибуцију и развој иОС-а креирани у одељку Сертификати, идентификатори и профили на Аппле Девелопер конзоли. Сви ови сертификати се могу комбиновати у профил за обезбеђивање.

Корисници који ће бити аутентификовани морају да буду у могућности да креирају сертификате, иначе кораке церт и уздах видећете грешку.

друге опције

Поред овог једноставног метода, постоје и други начини за конфигурисање сертификата и профила. Дакле, ако радите другачије, можда ћете морати да се прилагодите. Најважније је да вам је потребна конфигурација .xcodebuild, који ће указивати на потребне датотеке, а привезак кључева мора бити доступан на рачунару за израду за корисника под чијим именом тркач ради. За дигитални потпис користимо фастлане, а ако има проблема или желите да сазнате више, погледајте њихове детаље документацију о дигиталним потписима.

У овом примеру користим приступ церт и уздах, али за стварну употребу вероватно је прикладнији меч.

Припрема ГитЛаб-а и фастлане-а

Припрема ЦИ Руннер-а

Након што смо прикупили све ове податке, прелазимо на конфигурацију ГитЛаб тркача на МацОС уређају. Нажалост, иОС апликације можете да правите само на МацОС-у. Али све се може променити, а ако очекујете напредак у овој области, припазите на пројекте попут кцбуилд и знак, и наш унутрашњи задатак гитлаб-це#57576.

Постављање тркача је врло једноставно. Пратите струју упутства за подешавање ГитЛаб Руннер-а на мацОС-у.

Белешка. Тркач мора да користи извршни програм shell. Ово је потребно да би се иОС изградио на мацОС-у да би радио директно као корисник, а не преко контејнера. Ако користите 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

Аппле Кеицхаин мора бити конфигурисан на овом хосту са приступом кључевима које Ксцоде треба да направи. Најлакши начин да ово тестирате је да се пријавите као корисник који ће покренути градњу и покушате да је направите ручно. Ако систем тражи приступ привеску за кључеве, изаберите Увек дозволи да ЦИ ради. Можда би било вредно ући и погледати првих пар цевовода како би били сигурни да више не траже привезак за кључеве. Проблем је у томе што нам Аппле не олакшава коришћење аутоматског режима, али када га покренете, све ће бити у реду.

фастлане инит

Да бисте користили фастлане у пројекту, покрените fastlane init. Само прати упутства за инсталирање и покретање фастлане-а, посебно у одељку о Гемфиле, јер нам је потребно брзо и предвидљиво покретање кроз аутоматизовани ЦИ цевовод.

У директоријуму вашег пројекта покрените ове команде:

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

фастлане ће тражити основну конфигурацију, а затим креирати фасциклу фастлане у пројекту са три датотеке:

1. fastlane/Appfile

Овде нема ништа компликовано. Само се уверите да су ваш Аппле ИД и ИД апликације тачни.

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

2. fastlane/Fastfile

Fastfile дефинише кораке изградње. Користимо много уграђених функција Фастлане-а, тако да је и овде све јасно. Креирамо једну линију која прима сертификате, врши монтажу и поставља је у ТестФлигхт. Овај процес можете поделити на различите задатке ако је потребно. Све ове операције (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

Ово је опциона датотека, али сам је направио ручно да променим подразумевани излазни директоријум и поставим излаз у тренутну фасциклу. Ово поједностављује ЦИ. Ако сте заинтересовани, прочитајте о gym и његови параметри у документација.

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

Наша .gitlab-ci.yml

Дакле, имамо ЦИ руннер за пројекат и спремни смо да тестирамо цевовод. Да видимо шта имамо унутра .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

Все отлично! Поставили смо формат на УТФ-8 за брзу траку према потреби, користите стратегију clone са програмом за извршавање shell, тако да имамо чист радни простор за сваки склоп, и једноставно позовемо flappybuild фастлане, као што се види горе. Као резултат, добијамо склапање, потпис и примену најновијег склопа у ТестФлигхт-у.

Такође добијамо артефакт и чувамо га са склопом. Имајте на уму да је формат .ipa је потписана АРМ извршна датотека која се не покреће у симулатору. Ако желите излаз за симулатор, само додајте циљ изградње који га производи, а затим га укључите у путању артефакта.

Друге варијабле окружења

Овде постоји неколико варијабли окружења које чине да све функционише.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Потврда аутентичности за фастлане је потребна за аутентификацију у Апп Сторе-у и отпремање на ТестФлигхт. Да бисте то урадили, креирајте лозинку за апликацију која ће се користити у ЦИ. Детаљи овде.

Ако имате двофакторску аутентификацију, креирајте променљиву FASTLANE_SESSION (тамо упутства).

FASTLANE_USER и FASTLANE_PASSWORD

Да церт и уздах под називом профил иницијализације и сертификати на захтев, потребно је да подесите променљиве FASTLANE_USER и FASTLANE_PASSWORD. Детаљи овде. Ово није неопходно ако користите други метод потписивања.

У закључку

Можете видети како све то функционише у мом једноставном примеру.

Надам се да је ово било од помоћи и инспирисало вас да радите са иОС верзијама у ГитЛаб пројекту. Ево још једног ЦИ савети за фастлане, за сваки случај. Можда желите да користите CI_BUILD_ID (за инкременталне градње) до аутоматски повећава верзију.

Још једна цоол карактеристика фастлане-а је аутоматски снимци екрана за Апп Сторе, које је веома лако подесити.

Реците нам у коментарима о свом искуству и поделите своје идеје за побољшање ГитЛаб-а за развој иОС апликација.

Извор: ввв.хабр.цом

Додај коментар