iOS հավելվածների հրապարակում App Store-ում GitLab-ի և fastlane-ի միջոցով

iOS հավելվածների հրապարակում App Store-ում GitLab-ի և fastlane-ի միջոցով

Ինչպես է GitLab-ը fastlane-ով հավաքում, ստորագրում և հրապարակում iOS հավելվածները App Store-ում:

Վերջերս ունեցանք հրապարակել այն մասին, թե ինչպես արագ կառուցել և գործարկել Android հավելված GitLab-ի հետ և արագ լեյն. Այստեղ մենք կտեսնենք, թե ինչպես ստեղծել և գործարկել iOS հավելված և հրապարակել այն TestFlight-ում: Ստուգեք, թե որքան թույն է Ես փոփոխություն եմ կատարում iPad Pro-ում GitLab Web IDE-ովԵս վերցնում եմ ժողովը և ստանում եմ հավելվածի թեստային տարբերակի թարմացում նույն iPad Pro-ի վրա, որտեղ ես այն մշակել եմ:

Այստեղ մենք կվերցնենք պարզ iOS հավելված Swift-ում, ում հետ տեսագրել եմ տեսահոլովակը։

Մի քանի խոսք 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 հավելվածներ ստեղծել: Բայց ամեն ինչ կարող է փոխվել, և եթե դուք առաջընթաց եք ակնկալում այս ոլորտում, հետևեք նման նախագծերին xcbuild и նշան, և մեր ներքին խնդիրը gitlab-ce#57576.

Վազողի տեղադրումը շատ պարզ է: Հետևեք ընթացիկին հրահանգներ macOS-ում GitLab Runner-ը կարգավորելու համար.

Նշում. Վազողը պետք է օգտագործի գործարկվող ծրագիր 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. Պարզապես հետևեք 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

«Fastlane»-ի նույնականացումը պահանջվում է App Store-ում նույնականացման և TestFlight-ում վերբեռնելու համար: Դա անելու համար ստեղծեք գաղտնաբառ հավելվածի համար, որը կօգտագործվի CI-ում: Մանրամասներ այստեղ.

Եթե ​​ունեք երկու գործոն նույնականացում, ստեղծեք փոփոխական FASTLANE_SESSION (հրահանգները այնտեղ):

FASTLANE_USER и FASTLANE_PASSWORD

Որ վկայություն և հոգոց խնդրանքով կոչվում է սկզբնավորման պրոֆիլ և վկայականներ, դուք պետք է սահմանեք փոփոխականները FASTLANE_USER и FASTLANE_PASSWORD. Մանրամասներ այստեղ. Սա անհրաժեշտ չէ, եթե դուք օգտագործում եք ստորագրման այլ մեթոդ:

Վերջում

Դուք կարող եք տեսնել, թե ինչպես է այդ ամենը աշխատում իմ պարզ օրինակում.

Հուսով եմ, որ սա օգտակար էր և ոգեշնչեց ձեզ՝ աշխատելու iOS կառուցումների հետ GitLab նախագծում: Ահա ևս մեկ CI խորհուրդներ fastlane-ի համար, ամեն դեպքում: Դուք կարող եք օգտագործել CI_BUILD_ID (ավելի աճող կառուցվածքների համար) դեպի ավտոմատ ավելացման տարբերակը.

Fastlane-ի մեկ այլ հետաքրքիր առանձնահատկությունն այն է ավտոմատ սքրինշոթներ App Store-ի համար, որոնք շատ հեշտ է կարգավորել:

Պատմեք մեզ մեկնաբանություններում ձեր փորձի մասին և կիսվեք ձեր գաղափարներով՝ բարելավելու GitLab-ը iOS հավելվածների մշակման համար:

Source: www.habr.com

Добавить комментарий