Ho phatlalatsa lits'ebetso tsa iOS Lebenkeleng la App ka GitLab le fastlane

Ho phatlalatsa lits'ebetso tsa iOS Lebenkeleng la App ka GitLab le fastlane

Kamoo GitLab e nang le fastlane e bokellang, ho saena le ho phatlalatsa lits'ebetso tsa iOS Lebenkeleng la App.

Re sa tsoa ba le poso mabapi le mokhoa oa ho haha ​​​​le ho tsamaisa sesebelisoa sa Android kapele ka GitLab le lebelo. Mona re tla bona mokhoa oa ho haha ​​​​le ho tsamaisa app ea iOS le ho e phatlalatsa ho TestFlight. Sheba kamoo ho pholileng kateng Ke etsa phetoho ho iPad Pro ka GitLab Web IDE, Ke nka kopano ebe ke fumana ntjhafatso ho mofuta oa tlhahlobo ea kopo ho iPad Pro e tšoanang moo ke e ntlafalitseng.

Mona re tla nka app e bonolo ea iOS ho Swift, eo ke ileng ka rekota video le eena.

Mantsoe a seng makae mabapi le tlhophiso ea Apple Store

Re tla hloka sesebelisoa sa Lebenkele la App, litifikeiti tsa kabo, le profaele ea phepelo ho kopanya tsohle.

Ntho e thata ka ho fetisisa mona ke ho theha litokelo tsa ho saena ho App Store. Ke tšepa hore u ka iphumanela sena. Haeba u le mocha, ke tla u supisa tsela e nepahetseng, empa re ke ke ra bua ka mathata a ho laola mangolo a Apple mona, 'me a lula a fetoha. Poso ena e tla u thusa ho qala.

Lisebelisoa tsa ka

U hloka sesebelisoa ho App Store Connect e le hore u be le ID bakeng sa tlhophiso .xcodebuild. Profaele le ID ea kopo li kopanya meaho ea khoutu, litheko le ho fumaneha, le tlhophiso ea TestFlight bakeng sa ho aba lits'ebetso tsa liteko ho basebelisi. Se ke oa etsa liteko tsa sechaba, tlhahlobo ea lekunutu e tla lekana haeba u na le sehlopha se senyenyane, ho seta habonolo, 'me u sa hloke tumello e eketsehileng ho tsoa ho Apple.

Boemo ba ho qala

Ntle le ho seta sesebelisoa, o hloka linotlolo tsa kabo ea iOS le nts'etsopele tse entsoeng karolong ea Li-Certificate, Identifiers & Profiles ea Apple Developer console. Lisetifikeiti tsena kaofela li ka kopanngoa ho ba profaele ea ho fana.

Basebelisi ba tla netefatsoa ba hloka ho khona ho etsa litifikeiti, ho seng joalo mehato cert le ho feheloa o tla bona phoso.

dikgetho tse ding

Ntle le mokhoa ona o bonolo, ho na le mekhoa e meng ea ho hlophisa litifikeiti le li-profile. Kahoo, haeba u sebetsa ka tsela e fapaneng, u ka tlameha ho ikamahanya le maemo. Ntho ea bohlokoa ka ho fetisisa ke hore o hloka tlhophiso .xcodebuild, e tla supa lifaele tse hlokahalang, 'me senotlolo se tlameha ho ba teng k'homphieutheng ea mohaho bakeng sa mosebeletsi eo lebitso la hae le sebetsang tlas'a lebitso la hae. Bakeng sa signature ea dijithale re sebelisa fastlane, 'me haeba ho na le mathata kapa u batla ho tseba haholoanyane, sheba lintlha tsa bona litokomane tse mabapi le li-signature tsa digital.

Mohlala ona ke sebelisa mokhoa ona cert le ho feheloa, empa bakeng sa tšebeliso ea sebele mohlomong e loketse hamolemonyana a bapisoa.

Ho lokisa GitLab le fastlane

Ho lokisa CI Semathi

Ha re se re bokelletse lintlha tsena kaofela, re fetela pele ho tlhophiso ea semathi sa GitLab sesebelisoa sa MacOS. Ka bomalimabe, o ka etsa lisebelisoa tsa iOS feela ho MacOS. Empa ntho e 'ngoe le e' ngoe e ka fetoha, 'me haeba u lebeletse tsoelo-pele sebakeng sena, beha leihlo mererong e kang xc haha и seka, le mosebetsi oa rona oa ka hare gitlab-ce#57576.

Ho theha semathi ho bonolo haholo. Latela morao-rao litaelo tsa ho theha GitLab Runner ho macOS.

Hlokomela. Semathi se tlameha ho sebelisa lenaneo le sebetsang shell. Sena sea hlokahala ho aha iOS ho macOS ho sebetsa ka kotloloho joalo ka mosebelisi ho fapana le ho sebelisa lijana. Haeba u sebelisa shell, moaho le liteko li etsoa joalo ka mosebelisi oa semathi, ka kotloloho ho moamoheli oa kaho. Ha e sireletsehe joalo ka lijana, kahoo ho molemo ho e bala litokomane tsa polokehokahoo ha o fose letho.

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 e tlameha ho hlophisoa ho moamoheli enoa ka phihlello ea linotlolo tseo Xcode e hlokang ho li haha. Mokhoa o bonolo oa ho leka sena ke ho kena joalo ka mosebelisi ea tla tsamaisa moaho mme o leke ho o haha ​​ka letsoho. Haeba sistimi e kopa phihlello ea li-keychain, khetha Kamehla Lumella hore CI e sebetse. Ho ka ba molemo ho kena le ho shebella liphaephe tse 'maloa tsa pele ho etsa bonnete ba hore ha li sa kopa keychain. Bothata ke hore Apple ha e re nolofalletse ho sebelisa Auto mode, empa hang ha o ka e etsa, tsohle li tla loka.

fastlane init

Ho sebelisa fastlane morerong, matha fastlane init. Latela feela litaelo tsa ho kenya le ho tsamaisa fastlane, haholo-holo karolong e mabapi le Gemfile, hobane re hloka ho qalisoa ka potlako le ka mokhoa o ka lebelloang ka phaephe e ikemetseng ea CI.

Bukeng ea hau ea morero, tsamaisa litaelo tsena:

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

fastlane e tla kopa tlhophiso ea mantlha ebe e theha foldara ea fastlane projeke ka lifaele tse tharo:

1. fastlane/Appfile

Ha ho letho le rarahaneng mona. Etsa bonnete ba hore ID ea hau ea Apple le ID ea App li nepahetse.

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

2. fastlane/Fastfile

Fastfile e hlalosa mehato ea ho haha. Re sebelisa likarolo tse ngata tse hahelletsoeng ka har'a fastlane, kahoo tsohle li hlakile le mona. Re theha mohala o le mong o amohelang litifikeiti, o etsa kopano ebe o o kenya ho TestFlight. O ka arola ts'ebetso ena ka mesebetsi e fapaneng ha ho hlokahala. Ts'ebetso tsena kaofela (get_certificates, get_provisioning_profile, gym и upload_to_testflight) li se li kenyelelitsoe ho fastlane.

Liketso get_certificates и get_provisioning_profile e amanang le mokhoa oa ho saena cert le ho feheloa. Haeba u sebelisa a bapisoa kapa eng kapa eng, etsa liphetoho.

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

Ena ke faele ea boikhethelo, empa ke e thehile ka letsoho ho fetola bukana ea tlhahiso ea kamehla le ho beha tlhahiso foldareng ea hajoale. Sena se nolofatsa CI. Haeba u thahasella, bala ka gym le liparamente tsa eona ho litokomane.

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

Rōna .gitlab-ci.yml

Kahoo, re na le semathi sa CI bakeng sa morero ona 'me re itokiselitse ho leka lipeipi. Ha re boneng hore na re na le eng .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

Все отлично! Re beha sebopeho ho UTF-8 bakeng sa fastlane kamoo ho hlokahalang, sebelisa leano clone ka ho phetha lenaneo shell, e le hore re be le sebaka se hloekileng sa ho sebetsa bakeng sa kopano e 'ngoe le e' ngoe, 'me re letse feela flappybuild fastlane, joalokaha ho bonoa ka holimo. Ka lebaka leo, re fumana kopano, ho saena le ho tsamaisoa ha kopano ea morao-rao ho TestFlight.

Re boetse re fumana artifact mme re e boloka le kopano. Ka kopo hlokomela hore sebopeho .ipa ke ARM e saennoeng e sebetsang e sa sebetseng ho simulator. Haeba u batla tlhahiso bakeng sa simulator, eketsa feela sepheo sa ho aha se e hlahisang, ebe u se kenyelletsa tseleng ea maiketsetso.

Mefuta e meng ea tikoloho

Ho na le mefuta e 'maloa ea tikoloho mona e etsang hore ntho e' ngoe le e 'ngoe e sebetse.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Netefatso ea fastlane ea hlokahala ho netefatsa ho App Store le ho e kenya ho TestFlight. Ho etsa sena, theha phasewete bakeng sa ts'ebeliso e tla sebelisoa ho CI. Lintlha mona.

Haeba u na le netefatso ea lintlha tse peli, theha phetoho FASTLANE_SESSION (litaelo moo).

FASTLANE_USER и FASTLANE_PASSWORD

hore cert le ho feheloa e bitsoang profaele ea ho qala le litifikeiti ha u e kopa, o hloka ho seta mefuta e fapaneng FASTLANE_USER и FASTLANE_PASSWORD. Lintlha mona. Sena ha se hlokahale haeba u sebelisa mokhoa o fapaneng oa ho saena.

Qetellong

U ka bona kamoo tsohle li sebetsang kateng mohlaleng oa ka o bonolo.

Ke ts'epa hore sena se thusitse mme se u khothalelitse ho sebetsa le iOS e ahang morerong oa GitLab. E 'ngoe ke ena Litlhahiso tsa CI bakeng sa fastlane, feela haeba ho ka etsahala. U ka 'na ua batla ho sebelisa CI_BUILD_ID (for incremental builds) ho ka tsela e iketsang increment version.

Tšobotsi e 'ngoe e pholileng ea fastlane ke screenshots jarolla ka ho iketsa bakeng sa Lebenkele la App, tseo ho leng bonolo haholo ho li hlophisa.

Re bolelle maikutlong ka boiphihlelo ba hau 'me u arolelane maikutlo a hau ho ntlafatsa GitLab bakeng sa nts'etsopele ea lisebelisoa tsa iOS.

Source: www.habr.com

Eketsa ka tlhaloso