Cyhoeddi cymwysiadau iOS i'r App Store gyda GitLab a fastlane

Cyhoeddi cymwysiadau iOS i'r App Store gyda GitLab a fastlane

Sut mae GitLab gyda fastlane yn casglu, arwyddo a chyhoeddi cymwysiadau iOS i'r App Store.

Cawsom yn ddiweddar post am sut i adeiladu a rhedeg cymhwysiad Android yn gyflym gyda GitLab a fastlane. Yma byddwn yn gweld sut i adeiladu a rhedeg app iOS a'i gyhoeddi i TestFlight. Gwiriwch pa mor cΕ΅l ydyw Rwy'n gwneud newid ar iPad Pro gyda GitLab Web IDE, Rwy'n cymryd y cynulliad ac yn cael diweddariad i fersiwn prawf y cais ar yr un iPad Pro lle datblygais ef.

Yma byddwn yn cymryd ap iOS syml ar Swift, gyda phwy recordiais y fideo.

Ychydig eiriau am gyfluniad Apple Store

Bydd angen ap App Store, tystysgrifau dosbarthu, a phroffil darparu i glymu popeth at ei gilydd.

Y peth anoddaf yma yw sefydlu hawliau arwyddo yn yr App Store. Rwy'n gobeithio y gallwch chi ddarganfod hyn drosoch eich hun. Os ydych chi'n newydd, fe'ch pwyntiaf i'r cyfeiriad cywir, ond ni fyddwn yn siarad am gymhlethdodau rheoli tystysgrifau Apple yma, ac maent yn newid yn gyson. Bydd y swydd hon yn eich helpu i ddechrau arni.

Fy Apps

Mae angen ap arnoch yn App Store Connect fel bod gennych ID ar gyfer cyfluniad .xcodebuild. Mae'r proffil a'r ID cymhwysiad yn cyfuno adeiladu cod, prisio ac argaeledd, a chyfluniad TestFlight ar gyfer dosbarthu cymwysiadau prawf i ddefnyddwyr. Peidiwch Γ’ gwneud profion cyhoeddus, bydd profion preifat yn ddigon os oes gennych grΕ΅p bach, gosodiad hawdd, ac nad oes angen caniatΓ’d ychwanegol arnoch gan Apple.

Proffil cychwyn

Yn ogystal Γ’ gosod yr ap, mae angen allweddi dosbarthu a datblygu iOS arnoch wedi'u creu yn adran Tystysgrifau, Dynodwyr a Phroffiliau consol Apple Developer. Gellir cyfuno'r holl dystysgrifau hyn yn broffil darpariaeth.

Mae angen i ddefnyddwyr a fydd yn cael eu dilysu allu creu tystysgrifau, fel arall y camau cert ac ochenaid byddwch yn gweld gwall.

opsiynau eraill

Heblaw am y dull syml hwn, mae yna ffyrdd eraill o ffurfweddu tystysgrifau a phroffiliau. Felly, os ydych chi'n gweithio'n wahanol, efallai y bydd yn rhaid i chi addasu. Y peth pwysicaf yw bod angen cyfluniad arnoch chi .xcodebuild, a fydd yn pwyntio at y ffeiliau angenrheidiol, a rhaid i'r keychain fod ar gael ar y cyfrifiadur adeiladu ar gyfer y defnyddiwr y mae'r rhedwr yn rhedeg o dan ei enw. Ar gyfer llofnod digidol rydyn ni'n defnyddio fastlane, ac os oes problemau neu os ydych chi eisiau gwybod mwy, edrychwch ar eu manylion dogfennaeth am lofnodion digidol.

Yn yr enghraifft hon rwy'n defnyddio'r dull cert ac ochenaid, ond ar gyfer defnydd go iawn mae'n debyg ei fod yn fwy addas yn cyd-fynd.

Paratoi GitLab a fastlane

Paratoi CI Runner

Ar Γ΄l casglu'r holl ddata hwn, symudwn ymlaen i ffurfweddiad y rhedwr GitLab ar y ddyfais MacOS. Yn anffodus, dim ond ar MacOS y gallwch chi wneud apiau iOS. Ond gall popeth newid, ac os ydych chi'n disgwyl cynnydd yn y maes hwn, cadwch lygad ar brosiectau fel xcadeilad ΠΈ arwydd, a'n gorchwyl mewnol gitlab-ce#57576.

Mae sefydlu'r rhedwr yn syml iawn. Dilynwch gyfredol cyfarwyddiadau ar gyfer sefydlu GitLab Runner ar macOS.

Nodyn. Rhaid i'r rhedwr ddefnyddio rhaglen weithredadwy shell. Mae angen hyn i adeiladu iOS ar macOS i weithio'n uniongyrchol fel defnyddiwr yn hytrach na thrwy gynwysyddion. Os ydych chi'n defnyddio shell, adeiladu a phrofi yn cael eu perfformio fel y defnyddiwr rhedwr, yn uniongyrchol ar y gwesteiwr adeiladu. Nid yw mor ddiogel Γ’ chynwysyddion, felly gwell pori dogfennaeth diogelwchfelly nid ydych yn colli unrhyw beth.

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

Rhaid ffurfweddu Apple Keychain ar y gwesteiwr hwn gyda mynediad at yr allweddi y mae angen i Xcode eu hadeiladu. Y ffordd hawsaf o brofi hyn yw mewngofnodi fel y defnyddiwr a fydd yn rhedeg yr adeilad a cheisio ei adeiladu Γ’ llaw. Os yw'r system yn gofyn am fynediad keychain, dewiswch CaniatΓ‘u bob amser i CI weithio. Efallai y byddai'n werth mynd i mewn a gwylio'r cwpl o bibellau cyntaf i wneud yn siΕ΅r nad ydyn nhw'n gofyn am y gadwyn allwedd mwyach. Y drafferth yw nad yw Apple yn ei gwneud hi'n hawdd i ni ddefnyddio modd Auto, ond unwaith y byddwch chi'n ei gael i fynd, bydd popeth yn iawn.

fastlane init

I ddefnyddio fastlane mewn prosiect, rhedeg fastlane init. Dilynwch cyfarwyddiadau ar gyfer gosod a rhedeg fastlane, yn enwedig yn yr adran am Gemffeil, oherwydd mae angen lansiad cyflym a rhagweladwy trwy biblinell CI awtomataidd.

Yn eich cyfeiriadur prosiect, rhedwch y gorchmynion hyn:

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

bydd fastlane yn gofyn am gyfluniad sylfaenol ac yna'n creu ffolder fastlane yn y prosiect gyda thair ffeil:

1. fastlane/Appfile

Does dim byd cymhleth yma. Gwnewch yn siΕ΅r bod eich ID Apple a'ch ID App yn gywir.

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

2. fastlane/Fastfile

Fastfile yn diffinio'r camau adeiladu. Rydyn ni'n defnyddio llawer o nodweddion adeiledig fastlane, felly mae popeth yn glir yma hefyd. Rydyn ni'n creu un llinell sy'n derbyn tystysgrifau, yn perfformio'r gwasanaeth ac yn ei uwchlwytho i TestFlight. Gallwch rannu'r broses hon yn dasgau gwahanol os oes angen. Mae'r holl weithrediadau hyn (get_certificates, get_provisioning_profile, gym ΠΈ upload_to_testflight) eisoes wedi'u cynnwys yn fastlane.

Gweithgarwch get_certificates ΠΈ get_provisioning_profile gysylltiedig Γ’'r dull arwyddo cert ac ochenaid. Os ydych chi'n defnyddio yn cyd-fynd neu beth bynnag, gwneud newidiadau.

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

Mae hon yn ffeil ddewisol, ond fe'i creais Γ’ llaw i newid y cyfeiriadur allbwn rhagosodedig a gosod yr allbwn yn y ffolder gyfredol. Mae hyn yn symleiddio CI. Os oes diddordeb, darllenwch am gym a'i baramedrau yn dogfennaeth.

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

Ours .gitlab-ci.yml

Felly, mae gennym rhedwr CI ar gyfer y prosiect ac rydym yn barod i brofi'r biblinell. Gawn ni weld beth sydd gennym ni ynddo .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

ВсС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ! Rydym yn gosod y fformat i UTF-8 ar gyfer fastlane yn Γ΄l yr angen, defnyddio strategaeth clone gyda rhaglen weithredu shell, fel bod gennym weithle glΓ’n ar gyfer pob gwasanaeth, a dim ond galw flappybuild fastlane, fel y gwelir uchod. O ganlyniad, rydym yn cael cynulliad, llofnod a lleoliad y cynulliad diweddaraf yn TestFlight.

Rydyn ni hefyd yn cael yr arteffact a'i gadw gyda'r cynulliad. Sylwch fod y fformat .ipa yn weithredadwy ARM wedi'i lofnodi nad yw'n rhedeg yn yr efelychydd. Os ydych chi eisiau allbwn ar gyfer yr efelychydd, ychwanegwch y targed adeiladu sy'n ei gynhyrchu, ac yna ei gynnwys yn y llwybr arteffact.

Newidynnau amgylcheddol eraill

Mae yna gwpl o newidynnau amgylchedd yma sy'n gwneud i bopeth weithio.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION

Mae angen dilysu fastlane i ddilysu yn yr App Store a'i uwchlwytho i TestFlight. I wneud hyn, crΓ«wch gyfrinair ar gyfer y cais a fydd yn cael ei ddefnyddio yn CI. Manylion yma.

Os oes gennych ddilysiad dau ffactor, crΓ«wch newidyn FASTLANE_SESSION (cyfarwyddiadau yno).

FASTLANE_USER ΠΈ FASTLANE_PASSWORD

Bod cert ac ochenaid a elwir yn broffil cychwynnol a thystysgrifau ar gais, mae angen i chi osod y newidynnau FASTLANE_USER ΠΈ FASTLANE_PASSWORD... Manylion yma. Nid yw hyn yn angenrheidiol os ydych yn defnyddio dull arwyddo gwahanol.

I gloi

Gallwch weld sut mae'r cyfan yn gweithio yn fy enghraifft syml.

Rwy'n gobeithio bod hyn wedi bod o gymorth ac wedi'ch ysbrydoli i weithio gydag adeiladau iOS mewn prosiect GitLab. Dyma un arall Awgrymiadau CI ar gyfer fastlane, rhag ofn. Efallai y byddwch am ddefnyddio CI_BUILD_ID (ar gyfer adeiladau cynyddrannol) i fersiwn cynyddran yn awtomatig.

Nodwedd oer arall o fastlane yw sgrinluniau awtomatig ar gyfer yr App Store, sy'n hawdd iawn i'w sefydlu.

Dywedwch wrthym yn y sylwadau am eich profiad a rhannwch eich syniadau ar gyfer gwella GitLab ar gyfer datblygu apiau iOS.

Ffynhonnell: hab.com

Ychwanegu sylw