Gefa út iOS forrit í App Store með GitLab og fastlane

Gefa út iOS forrit í App Store með GitLab og fastlane

Hvernig GitLab með fastlane safnar, undirritar og birtir iOS forrit í App Store.

Við áttum nýlega færsla um hvernig á að smíða og keyra Android forrit á fljótlegan hátt með GitLab og hraðbraut. Hér munum við sjá hvernig á að byggja og keyra iOS app og birta það á TestFlight. Skoðaðu hversu flott það er Ég er að gera breytingu á iPad Pro með GitLab Web IDE, ég tek samsetninguna og fæ uppfærslu á prufuútgáfu forritsins á sama iPad Pro og ég þróaði það.

Hér munum við taka einfalt iOS app á Swift, sem ég tók upp myndbandið með.

Nokkur orð um stillingar Apple Store

Við þurfum App Store app, dreifingarvottorð og úthlutunarsnið til að tengja allt saman.

Það erfiðasta hér er að setja upp undirskriftarréttindi í App Store. Ég vona að þú getir fundið út úr þessu sjálfur. Ef þú ert nýr, mun ég benda þér á rétta átt, en við tölum ekki um ranghala stjórnun Apple vottorða hér, og þau eru stöðugt að breytast. Þessi færsla mun hjálpa þér að byrja.

Forritin mín

Þú þarft app í App Store Connect svo þú hafir auðkenni fyrir uppsetningu .xcodebuild. Prófíllinn og auðkenni forritsins sameina kóðasmíði, verðlagningu og framboð, og TestFlight stillingar til að dreifa prófunarforritum til notenda. Ekki gera opinber próf, einkapróf duga ef þú ert með lítinn hóp, auðvelda uppsetningu og þarft ekki viðbótarheimildir frá Apple.

Frumstillingarsnið

Til viðbótar við uppsetningu forritsins þarftu iOS dreifingar- og þróunarlykla sem eru búnir til í hlutanum Vottorð, auðkenni og snið á Apple Developer console. Öll þessi vottorð er hægt að sameina í úthlutunarsnið.

Notendur sem verða auðkenndir þurfa að geta búið til vottorð, annars skrefin cert og andvarp þú munt sjá villu.

aðrir valkostir

Fyrir utan þessa einföldu aðferð eru aðrar leiðir til að stilla vottorð og snið. Svo ef þú vinnur öðruvísi gætirðu þurft að aðlagast. Það mikilvægasta er að þú þarft stillingar .xcodebuild, sem mun benda á nauðsynlegar skrár, og lyklakippan verður að vera tiltæk á smíðatölvunni fyrir notandann sem hlauparinn er undir nafni. Fyrir stafræna undirskrift notum við fastlane, og ef það eru vandamál eða þú vilt vita meira, skoðaðu upplýsingar þeirra skjöl um stafrænar undirskriftir.

Í þessu dæmi er ég að nota nálgunina cert og andvarp, en til raunverulegrar notkunar hentar það líklega betur passa.

Undirbúningur GitLab og fastlane

Undirbúningur CI Runner

Eftir að hafa safnað öllum þessum gögnum förum við yfir í uppsetningu GitLab hlauparans á MacOS tækinu. Því miður geturðu aðeins búið til iOS forrit á MacOS. En allt getur breyst og ef þú býst við framförum á þessu sviði skaltu fylgjast með verkefnum eins og xcbuild и merki, og innra verkefni okkar gitlab-ce#57576.

Uppsetning hlauparans er mjög einföld. Fylgstu með núverandi leiðbeiningar um uppsetningu GitLab Runner á macOS.

Athugið. Hlauparinn verður að nota keyranlegt forrit shell. Þetta er nauðsynlegt til að byggja iOS á macOS til að vinna beint sem notandi frekar en í gegnum gáma. Ef þú ert að nota shell, bygging og prófun eru framkvæmdar sem hlaupari notandi, beint á bygging hýsil. Það er ekki eins öruggt og ílát, svo betra að fletta öryggisskjölsvo þú missir ekki af neinu.

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 verður að vera stillt á þessum gestgjafa með aðgang að lyklunum sem Xcode þarf að smíða. Auðveldasta leiðin til að prófa þetta er að skrá þig inn sem notandinn sem mun keyra smíðina og reyna að smíða hana handvirkt. Ef kerfið biður um aðgang að lyklakippu skaltu velja Always Allow for CI to work. Það gæti verið þess virði að fara inn og horfa á fyrstu leiðslurnar til að ganga úr skugga um að þeir biðji ekki um lyklakippuna lengur. Vandamálið er að Apple gerir okkur ekki auðvelt að nota sjálfvirka stillingu, en þegar þú ert kominn í gang verður allt í lagi.

fastlane init

Til að nota fastlane í verkefni skaltu keyra fastlane init. Fylgstu bara með leiðbeiningar til að setja upp og keyra fastlane, sérstaklega í kaflanum um Gemfile, vegna þess að við þurfum hraðvirka og fyrirsjáanlega sjósetningu í gegnum sjálfvirka CI leiðslu.

Í verkefnaskránni þinni skaltu keyra þessar skipanir:

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

fastlane mun biðja um grunnstillingar og búa síðan til fastlane möppu í verkefninu með þremur skrám:

1. fastlane/Appfile

Hér er ekkert flókið. Gakktu úr skugga um að Apple ID og App ID séu rétt.

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

2. fastlane/Fastfile

Fastfile skilgreinir byggingarskrefin. Við notum mikið af innbyggðum eiginleikum fastlane, svo allt er á hreinu hér líka. Við búum til eina línu sem tekur við skírteinum, framkvæmum samsetninguna og hleður upp á TestFlight. Þú getur skipt þessu ferli í mismunandi verkefni ef þörf krefur. Allar þessar aðgerðir (get_certificates, get_provisioning_profile, gym и upload_to_testflight) eru þegar innifalin í fastlane.

Afþreying get_certificates и get_provisioning_profile sem tengist undirritunaraðferðinni cert og andvarp. Ef þú ert að nota passa eða hvað sem er, gera breytingar.

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

Þetta er valfrjáls skrá, en ég bjó hana til handvirkt til að breyta sjálfgefna framleiðsluskránni og setja úttakið í núverandi möppu. Þetta einfaldar CI. Ef þú hefur áhuga, lestu um gym og breytur þess í skjöl.

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

Ours .gitlab-ci.yml

Þannig að við erum með CI hlaupara fyrir verkefnið og við erum tilbúin að prófa leiðsluna. Við skulum sjá hvað við höfum í .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

Все отлично! Við stillum sniðið á UTF-8 fyrir fastlane eftir þörfum, nota stefnu clone með keyrslu forrits shell, þannig að við höfum hreint vinnusvæði fyrir hverja samsetningu, og hringjum einfaldlega flappybuild fastlane, eins og sést hér að ofan. Fyrir vikið fáum við samsetningu, undirskrift og dreifingu á nýjustu samsetningunni í TestFlight.

Við fáum líka gripinn og vistum hann með samsetningunni. Vinsamlegast athugaðu að sniðið .ipa er undirritaður ARM executable sem keyrir ekki í herminum. Ef þú vilt framleiðsla fyrir herminn, bættu bara við byggingarmarkmiðinu sem framleiðir það og láttu það síðan fylgja með gripslóðinni.

Aðrar umhverfisbreytur

Það eru nokkrar umhverfisbreytur hér sem láta allt virka.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Auðkenning fyrir fastlane er nauðsynleg til að auðkenna í App Store og hlaða upp á TestFlight. Til að gera þetta skaltu búa til lykilorð fyrir forritið sem verður notað í CI. Upplýsingar hér.

Ef þú ert með tveggja þátta auðkenningu skaltu búa til breytu FASTLANE_SESSION (leiðbeiningar þar).

FASTLANE_USER и FASTLANE_PASSWORD

Það cert og andvarp kallað frumstillingarsniðið og vottorð sé þess óskað, þú þarft að stilla breyturnar FASTLANE_USER и FASTLANE_PASSWORD. Upplýsingar hér. Þetta er ekki nauðsynlegt ef þú notar aðra undirritunaraðferð.

Að lokum

Þú getur séð hvernig þetta virkar allt í mínu einfalda dæmi.

Ég vona að þetta hafi verið gagnlegt og veitt þér innblástur til að vinna með iOS smíði í GitLab verkefni. Hér er annað CI ráð fyrir fastlane, bara fyrir öryggisatriði. Þú gætir viljað nota CI_BUILD_ID (fyrir stigvaxandi byggingar) til auka útgáfu sjálfkrafa.

Annar flottur eiginleiki fastlane er sjálfvirkar skjámyndir fyrir App Store, sem er mjög auðvelt að setja upp.

Segðu okkur frá reynslu þinni í athugasemdunum og deildu hugmyndum þínum um að bæta GitLab fyrir iOS app þróun.

Heimild: www.habr.com

Bæta við athugasemd