Ինչպես է GitLab-ը fastlane-ով հավաքում, ստորագրում և հրապարակում iOS հավելվածները App Store-ում:
Վերջերս ունեցանք
Այստեղ մենք կվերցնենք
Մի քանի խոսք Apple Store-ի կոնֆիգուրացիայի մասին
Մեզ անհրաժեշտ կլինի App Store հավելված, բաշխման վկայագրեր և տրամադրման պրոֆիլ՝ ամեն ինչ իրար հետ կապելու համար:
Այստեղ ամենադժվարը App Store-ում ստորագրման իրավունքի կարգավորումն է: Հուսով եմ, որ դուք ինքներդ կարող եք դա պարզել: Եթե դուք նորեկ եք, ես ձեզ ճիշտ ուղղություն կտամ, բայց մենք այստեղ չենք խոսի Apple-ի վկայագրերի կառավարման բարդությունների մասին, և դրանք անընդհատ փոխվում են: Այս գրառումը կօգնի ձեզ սկսել:
Իմ հավելվածները
Ձեզ անհրաժեշտ է հավելված App Store Connect-ում, որպեսզի կազմաձևման համար ID ունենաք .xcodebuild
. Պրոֆիլը և հավելվածի ID-ն համատեղում են կոդերի կառուցումները, գնագոյացումը և հասանելիությունը, ինչպես նաև TestFlight-ի կազմաձևը՝ օգտատերերին թեստային հավելվածները բաշխելու համար: Մի արեք հանրային թեստավորում, մասնավոր թեստավորումը բավարար կլինի, եթե ունեք փոքր խումբ, հեշտ կարգավորում և կարիք չունեք Apple-ի լրացուցիչ թույլտվությունների:
Նախնականացման պրոֆիլը
Հավելվածի կարգավորումից բացի, ձեզ անհրաժեշտ են iOS-ի բաշխման և մշակման բանալիներ, որոնք ստեղծված են Apple Developer վահանակի Վկայագրեր, նույնացուցիչներ և պրոֆիլներ բաժնում: Այս բոլոր վկայագրերը կարող են համակցվել տրամադրման պրոֆիլում:
Օգտատերերը, ովքեր կհաստատվեն, պետք է կարողանան ստեղծել վկայականներ, հակառակ դեպքում՝ քայլերը
այլ տարբերակներ
Բացի այս պարզ մեթոդից, կան վկայագրերի և պրոֆիլների կազմաձևման այլ եղանակներ: Այսպիսով, եթե դուք այլ կերպ եք աշխատում, գուցե ստիպված լինեք հարմարվել: Ամենակարևորն այն է, որ ձեզ անհրաժեշտ է կոնֆիգուրացիա .xcodebuild
, որը ցույց կտա անհրաժեշտ ֆայլերը, և keychain-ը պետք է հասանելի լինի build համակարգչում այն օգտատիրոջ համար, որի անունով աշխատում է runner-ը։ Թվային ստորագրության համար մենք օգտագործում ենք fastlane-ը, և եթե կան խնդիրներ կամ ցանկանում եք ավելին իմանալ, ստուգեք դրանց մանրամասները
Այս օրինակում ես օգտագործում եմ մոտեցումը
GitLab-ի և fastlane-ի պատրաստում
CI Runner-ի պատրաստում
Այս բոլոր տվյալները հավաքելով՝ մենք անցնում ենք MacOS սարքի GitLab runner-ի կազմաձևմանը: Ցավոք սրտի, դուք կարող եք միայն MacOS-ում iOS հավելվածներ ստեղծել: Բայց ամեն ինչ կարող է փոխվել, և եթե դուք առաջընթաց եք ակնկալում այս ոլորտում, հետևեք նման նախագծերին
Վազողի տեղադրումը շատ պարզ է: Հետևեք ընթացիկին
Նշում. Վազողը պետք է օգտագործի գործարկվող ծրագիր shell
. Սա պահանջվում է macOS-ի վրա iOS կառուցելու համար, որպեսզի աշխատի անմիջապես որպես օգտատեր, այլ ոչ թե կոնտեյներների միջոցով: Եթե դուք օգտագործում եք shell
, կառուցումն ու փորձարկումն իրականացվում են որպես վազող օգտվող՝ անմիջապես build host-ի վրա։ Այն այնքան ապահով չէ, որքան բեռնարկղերը, այնպես որ ավելի լավ է թերթել
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-ի համար անհրաժեշտ ստեղներին: Սա փորձարկելու ամենահեշտ ձևը մուտք գործելն է որպես օգտագործող, ով կգործարկի build-ը և կփորձի այն ձեռքով կառուցել: Եթե համակարգը խնդրում է մուտք գործել keychain, ընտրեք Always Allow for CI to work: Թերևս արժե ներս մտնել և դիտել առաջին երկու խողովակաշարերը՝ համոզվելու համար, որ նրանք այլևս չեն պահանջում բանալիների շղթան: Խնդիրն այն է, որ Apple-ը մեզ համար հեշտ չի դարձնում Auto ռեժիմի օգտագործումը, բայց երբ այն գործարկեք, ամեն ինչ լավ կլինի:
fastlane init
Նախագծում fastlane-ն օգտագործելու համար գործարկեք fastlane init
. Պարզապես հետևեք
Ձեր նախագծի գրացուցակում գործարկեք այս հրամանները.
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
Все отлично! clone
կատարող ծրագրով shell
, որպեսզի յուրաքանչյուր հավաքի համար մաքուր աշխատատեղ ունենանք, և պարզապես զանգահարենք flappybuild
fastlane, ինչպես երևում է վերևում: Արդյունքում մենք ստանում ենք TestFlight-ում վերջին հավաքի հավաքումը, ստորագրությունը և տեղակայումը:
Մենք նաև ստանում ենք արտեֆակտ և պահպանում այն հավաքի հետ միասին: Խնդրում ենք նկատի ունենալ, որ ձևաչափը .ipa
ստորագրված ARM գործարկիչ է, որը չի աշխատում սիմուլյատորում: Եթե ցանկանում եք ելք սիմուլյատորի համար, պարզապես ավելացրեք կառուցման թիրախը, որն արտադրում է այն, այնուհետև ներառեք այն արտեֆակտի ուղու մեջ:
Այլ շրջակա միջավայրի փոփոխականներ
Այստեղ կան շրջակա միջավայրի մի քանի փոփոխականներ, որոնք ստիպում են ամեն ինչ աշխատել:
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
«Fastlane»-ի նույնականացումը պահանջվում է App Store-ում նույնականացման և TestFlight-ում վերբեռնելու համար: Դա անելու համար ստեղծեք գաղտնաբառ հավելվածի համար, որը կօգտագործվի CI-ում: Մանրամասներ
Եթե ունեք երկու գործոն նույնականացում, ստեղծեք փոփոխական FASTLANE_SESSION
(հրահանգները այնտեղ):
FASTLANE_USER
и FASTLANE_PASSWORD
Որ FASTLANE_USER
и FASTLANE_PASSWORD
. Մանրամասներ
Վերջում
Դուք կարող եք տեսնել, թե ինչպես է այդ ամենը աշխատում
Հուսով եմ, որ սա օգտակար էր և ոգեշնչեց ձեզ՝ աշխատելու iOS կառուցումների հետ GitLab նախագծում: Ահա ևս մեկ CI_BUILD_ID
(ավելի աճող կառուցվածքների համար) դեպի
Fastlane-ի մեկ այլ հետաքրքիր առանձնահատկությունն այն է
Պատմեք մեզ մեկնաբանություններում ձեր փորձի մասին և կիսվեք ձեր գաղափարներով՝ բարելավելու GitLab-ը iOS հավելվածների մշակման համար:
Source: www.habr.com