GitLab және fastlane көмегімен iOS қолданбаларын App Store дүкеніне жариялау

GitLab және fastlane көмегімен iOS қолданбаларын App Store дүкеніне жариялау

Fastlane көмегімен GitLab қалай iOS қолданбаларын жинайды, қол қояды және App Store дүкенінде жариялайды.

Бізде жақында болды Android қолданбасын қалай жылдам құру және іске қосу туралы мақала GitLab көмегімен және fastlane. Мұнда iOS қолданбасын құру және іске қосу және оны TestFlight-та жариялау жолын көреміз. Оның қаншалықты салқын екенін тексеріңіз Мен GitLab Web IDE көмегімен iPad Pro құрылғысына өзгеріс енгізіп жатырмын, Мен құрастыруды алып, оны жасаған iPad Pro-да қолданбаның сынақ нұсқасына жаңартуды аламын.

Міне, аламыз Swift жүйесіндегі қарапайым iOS қолданбасы, мен видеоны кіммен түсірдім.

Apple Store конфигурациясы туралы бірнеше сөз

Барлығын біріктіру үшін бізге App Store қолданбасы, тарату сертификаттары және дайындау профилі қажет.

Мұнда ең қиын нәрсе - App Store дүкенінде қол қою құқықтарын орнату. Сіз мұны өзіңіз анықтай аласыз деп үміттенемін. Егер сіз жаңа болсаңыз, мен сізге дұрыс бағытты көрсетемін, бірақ біз мұнда Apple сертификаттарын басқарудың күрделілігі туралы айтпаймыз және олар үнемі өзгеріп отырады. Бұл пост сізге бастауға көмектеседі.

Менің қолданбаларым

Конфигурация үшін идентификатор болуы үшін сізге App Store Connect қолданбасында қажет .xcodebuild. Профиль және қолданба идентификаторы пайдаланушыларға сынақ қолданбаларын таратуға арналған код құрастыруларын, баға мен қолжетімділікті және TestFlight конфигурациясын біріктіреді. Жалпыға ортақ тестілеуді жасамаңыз, егер сізде шағын топ болса, оңай орнату және Apple компаниясынан қосымша рұқсаттар қажет болмаса, жеке тестілеу жеткілікті болады.

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

Қолданбаны орнатуға қоса, Apple әзірлеуші ​​консолінің Сертификаттар, идентификаторлар және профильдер бөлімінде жасалған iOS тарату және әзірлеу кілттері қажет. Осы сертификаттардың барлығын дайындау профиліне біріктіруге болады.

Аутентификацияланатын пайдаланушылар сертификаттарды жасай алуы керек, әйтпесе қадамдар растау және күрсіну қатені көресіз.

басқа нұсқалары

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

Бұл мысалда мен әдісті қолданамын растау және күрсіну, бірақ нақты пайдалану үшін бұл жақсырақ болуы мүмкін матч.

GitLab және fastlane дайындалуда

CI Runner дайындалуда

Осы деректерді жинағаннан кейін біз MacOS құрылғысындағы GitLab жүгіргішінің конфигурациясына көшеміз. Өкінішке орай, iOS қолданбаларын тек MacOS жүйесінде жасай аласыз. Бірақ бәрі өзгеруі мүмкін, егер сіз осы салада ілгерілеуді күтсеңіз, сияқты жобаларды қадағалаңыз 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 бізге Авто режимін пайдалануды жеңілдетпейді, бірақ оны іске қосқаннан кейін бәрі жақсы болады.

fastlane init

Жобада жылдам жолды пайдалану үшін іске қосыңыз fastlane init. Тек орындаңыз fastlane орнату және іске қосу нұсқаулары, әсіресе туралы бөлімінде Gem файлдары, өйткені бізге автоматтандырылған 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_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

App Store дүкенінде аутентификациялау және TestFlight қызметіне жүктеп салу үшін fastlane аутентификациясы қажет. Ол үшін CI жүйесінде қолданылатын қолданбаға құпия сөз жасаңыз. Егжей осында.

Егер сізде екі факторлы аутентификация болса, айнымалы мәнді жасаңыз FASTLANE_SESSION (нұсқаулар сонда).

FASTLANE_USER и FASTLANE_PASSWORD

сол растау және күрсіну сұрау бойынша инициализация профилі және сертификаттар деп аталады, айнымалы мәндерді орнату керек FASTLANE_USER и FASTLANE_PASSWORD. Толығырақ осында. Басқа қол қою әдісін пайдаланып жатсаңыз, бұл қажет емес.

Қорытындылай келе

Мұның бәрі қалай жұмыс істейтінін көруге болады менің қарапайым мысалымда.

Бұл пайдалы болды және GitLab жобасында iOS құрастыруларымен жұмыс істеуге шабыттандырды деп үміттенемін. Міне, басқасы CI кеңестері fastlane үшін, тек жағдайда. Сіз пайдаланғыңыз келуі мүмкін CI_BUILD_ID (өсімді құрастырулар үшін) дейін нұсқасын автоматты түрде арттырады.

Фастлейннің тағы бір керемет ерекшелігі автоматты скриншоттар App Store үшін, оларды орнату өте оңай.

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

Ақпарат көзі: www.habr.com

пікір қалдыру