Како ГитЛаб са фастлане-ом прикупља, потписује и објављује иОС апликације у Апп Сторе-у.
Недавно смо имали
Овде ћемо узети
Неколико речи о конфигурацији Аппле Сторе-а
Требаће нам апликација Апп Сторе, сертификати о дистрибуцији и профил за обезбеђивање да бисмо све повезали.
Најтежа ствар овде је подешавање права потписивања у Апп Сторе-у. Надам се да ћете ово сами схватити. Ако сте нови, упутићу вас у правом смеру, али овде нећемо говорити о сложеностима управљања Аппле сертификатима, а они се стално мењају. Овај пост ће вам помоћи да започнете.
Моје апликације
Потребна вам је апликација у Апп Сторе Цоннецт-у да бисте имали ИД за конфигурацију .xcodebuild
. Профил и ИД апликације комбинују израду кода, цене и доступност, као и ТестФлигхт конфигурацију за дистрибуцију тест апликација корисницима. Немојте вршити јавно тестирање, приватно тестирање ће бити довољно ако имате малу групу, једноставно подешавање и не требају вам додатне дозволе од Аппле-а.
Профил за иницијализацију
Поред подешавања апликације, потребни су вам кључеви за дистрибуцију и развој иОС-а креирани у одељку Сертификати, идентификатори и профили на Аппле Девелопер конзоли. Сви ови сертификати се могу комбиновати у профил за обезбеђивање.
Корисници који ће бити аутентификовани морају да буду у могућности да креирају сертификате, иначе кораке
друге опције
Поред овог једноставног метода, постоје и други начини за конфигурисање сертификата и профила. Дакле, ако радите другачије, можда ћете морати да се прилагодите. Најважније је да вам је потребна конфигурација .xcodebuild
, који ће указивати на потребне датотеке, а привезак кључева мора бити доступан на рачунару за израду за корисника под чијим именом тркач ради. За дигитални потпис користимо фастлане, а ако има проблема или желите да сазнате више, погледајте њихове детаље
У овом примеру користим приступ
Припрема ГитЛаб-а и фастлане-а
Припрема ЦИ Руннер-а
Након што смо прикупили све ове податке, прелазимо на конфигурацију ГитЛаб тркача на МацОС уређају. Нажалост, иОС апликације можете да правите само на МацОС-у. Али све се може променити, а ако очекујете напредак у овој области, припазите на пројекте попут
Постављање тркача је врло једноставно. Пратите струју
Белешка. Тркач мора да користи извршни програм 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
Все отлично! clone
са програмом за извршавање shell
, тако да имамо чист радни простор за сваки склоп, и једноставно позовемо flappybuild
фастлане, као што се види горе. Као резултат, добијамо склапање, потпис и примену најновијег склопа у ТестФлигхт-у.
Такође добијамо артефакт и чувамо га са склопом. Имајте на уму да је формат .ipa
је потписана АРМ извршна датотека која се не покреће у симулатору. Ако желите излаз за симулатор, само додајте циљ изградње који га производи, а затим га укључите у путању артефакта.
Друге варијабле окружења
Овде постоји неколико варијабли окружења које чине да све функционише.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Потврда аутентичности за фастлане је потребна за аутентификацију у Апп Сторе-у и отпремање на ТестФлигхт. Да бисте то урадили, креирајте лозинку за апликацију која ће се користити у ЦИ. Детаљи
Ако имате двофакторску аутентификацију, креирајте променљиву FASTLANE_SESSION
(тамо упутства).
FASTLANE_USER
и FASTLANE_PASSWORD
Да FASTLANE_USER
и FASTLANE_PASSWORD
. Детаљи
У закључку
Можете видети како све то функционише
Надам се да је ово било од помоћи и инспирисало вас да радите са иОС верзијама у ГитЛаб пројекту. Ево још једног CI_BUILD_ID
(за инкременталне градње) до
Још једна цоол карактеристика фастлане-а је
Реците нам у коментарима о свом искуству и поделите своје идеје за побољшање ГитЛаб-а за развој иОС апликација.
Извор: ввв.хабр.цом