Publikimi i aplikacioneve iOS në App Store me GitLab dhe fastlane

Publikimi i aplikacioneve iOS në App Store me GitLab dhe fastlane

Si GitLab me fastlane mbledh, nënshkruan dhe publikon aplikacionet iOS në App Store.

Së fundmi kemi pasur postoni se si të ndërtoni dhe ekzekutoni shpejt një aplikacion Android me GitLab dhe korsi të shpejtë. Këtu do të shohim se si të ndërtojmë dhe ekzekutojmë një aplikacion iOS dhe ta publikojmë atë në TestFlight. Shikoni sa e lezetshme është Po bëj një ndryshim në një iPad Pro me GitLab Web IDE, marr montimin dhe marr një përditësim për versionin testues të aplikacionit në të njëjtin iPad Pro ku e kam zhvilluar.

Këtu do të marrim aplikacion i thjeshtë iOS në Swift, me të cilin kam regjistruar videon.

Disa fjalë për konfigurimin e Apple Store

Do të na duhet një aplikacion App Store, certifikata shpërndarjeje dhe një profil sigurimi për të lidhur gjithçka.

Gjëja më e vështirë këtu është konfigurimi i të drejtave të nënshkrimit në App Store. Unë shpresoj se ju mund ta kuptoni këtë vetë. Nëse jeni i ri, do t'ju tregoj në drejtimin e duhur, por ne nuk do të flasim këtu për ndërlikimet e menaxhimit të certifikatave të Apple dhe ato po ndryshojnë vazhdimisht. Ky postim do t'ju ndihmojë të filloni.

Aplikacionet e mia

Të duhet një aplikacion në App Store Connect që të kesh një ID për konfigurim .xcodebuild. Profili dhe ID-ja e aplikacionit kombinojnë ndërtimin e kodit, çmimin dhe disponueshmërinë, dhe konfigurimin e TestFlight për shpërndarjen e aplikacioneve testuese te përdoruesit. Mos bëni testime publike, testimi privat do të mjaftojë nëse keni një grup të vogël, konfigurim të lehtë dhe nuk keni nevojë për leje shtesë nga Apple.

Profili i inicializimit

Përveç konfigurimit të aplikacionit, ju nevojiten çelësat e shpërndarjes dhe zhvillimit të iOS të krijuar në seksionin Certifikatat, Identifikuesit dhe Profilet e tastierës Apple Developer. Të gjitha këto certifikata mund të kombinohen në një profil sigurimi.

Përdoruesit që do të vërtetohen duhet të jenë në gjendje të krijojnë certifikata, përndryshe hapat cert dhe psherëtimë do të shihni një gabim.

opsionet e tjera

Përveç kësaj metode të thjeshtë, ka mënyra të tjera për të konfiguruar certifikatat dhe profilet. Pra, nëse punoni ndryshe, mund t'ju duhet të përshtateni. Gjëja më e rëndësishme është se keni nevojë për konfigurim .xcodebuild, i cili do të tregojë skedarët e nevojshëm, dhe zinxhiri i çelësave duhet të jetë i disponueshëm në kompjuterin e ndërtuar për përdoruesin nën emrin e të cilit funksionon runner. Për nënshkrimin dixhital ne përdorim fastlane, dhe nëse ka probleme ose dëshironi të dini më shumë, shikoni detajet e tyre dokumentacion për nënshkrimet dixhitale.

Në këtë shembull unë jam duke përdorur qasjen cert dhe psherëtimë, por për përdorim real ndoshta është më i përshtatshëm ndeshje.

Përgatitja e GitLab dhe fastlane

Përgatitja e CI Runner

Pasi të kemi mbledhur të gjitha këto të dhëna, ne kalojmë në konfigurimin e programit GitLab në pajisjen MacOS. Fatkeqësisht, aplikacionet iOS mund të bëhen vetëm në MacOS. Por gjithçka mund të ndryshojë, dhe nëse prisni përparim në këtë fushë, mbani një sy në projekte si xcbuild и shenjë, dhe detyra jonë e brendshme gitlab-ce#57576.

Vendosja e vrapuesit është shumë e thjeshtë. Ndiqni rrymën udhëzime për konfigurimin e GitLab Runner në macOS.

Shënim. Vrapuesi duhet të përdorë një program të ekzekutueshëm shell. Kjo kërkohet për të ndërtuar iOS në macOS për të punuar drejtpërdrejt si përdorues dhe jo përmes kontejnerëve. Nëse jeni duke përdorur shell, ndërtimi dhe testimi kryhen si përdorues runner, direkt në hostin e ndërtimit. Nuk është aq i sigurt sa kontejnerët, prandaj më mirë shfletoni dokumentacionin e sigurisëkështu që nuk ju mungon asgjë.

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 duhet të konfigurohet në këtë host me akses në çelësat që duhet të ndërtojë Xcode. Mënyra më e lehtë për ta testuar këtë është të identifikohesh si përdorues që do të ekzekutojë ndërtimin dhe të përpiqet ta ndërtojë manualisht. Nëse sistemi kërkon akses te zinxhiri i çelësave, zgjidhni Gjithmonë Lejo që CI të funksionojë. Mund të ia vlen të hysh dhe të shikosh dy tubacionet e para për t'u siguruar që ata të mos kërkojnë më zinxhirin e çelësit. Problemi është se Apple nuk na e bën të lehtë përdorimin e modalitetit automatik, por sapo ta filloni, gjithçka do të jetë mirë.

fastlane init

Për të përdorur fastlane në një projekt, ekzekutoni fastlane init. Vetëm ndiqni udhëzime për instalimin dhe funksionimin e fastlane, veçanërisht në seksionin rreth Gemfile, sepse ne kemi nevojë për nisje të shpejtë dhe të parashikueshme përmes një tubacioni të automatizuar CI.

Në drejtorinë e projektit tuaj, ekzekutoni këto komanda:

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

fastlane do të kërkojë një konfigurim bazë dhe më pas do të krijojë një dosje fastlane në projekt me tre skedarë:

1. fastlane/Appfile

Nuk ka asgjë të komplikuar këtu. Vetëm sigurohuni që ID-ja juaj e Apple dhe ID-ja e aplikacionit të jenë të sakta.

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

2. fastlane/Fastfile

Fastfile përcakton hapat e ndërtimit. Ne përdorim shumë veçori të integruara të fastlane, kështu që gjithçka është e qartë edhe këtu. Ne krijojmë një linjë që merr certifikata, kryen montimin dhe e ngarkon atë në TestFlight. Ju mund ta ndani këtë proces në detyra të ndryshme nëse është e nevojshme. Të gjitha këto operacione (get_certificates, get_provisioning_profile, gym и upload_to_testflight) janë përfshirë tashmë në fastlane.

Aktivitet get_certificates и get_provisioning_profile lidhur me qasjen e nënshkrimit cert dhe psherëtimë. Nëse jeni duke përdorur ndeshje ose çfarëdo, bëni ndryshime.

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

Ky është një skedar opsional, por e krijova manualisht për të ndryshuar direktorinë e paracaktuar të daljes dhe për ta vendosur daljen në dosjen aktuale. Kjo thjeshton CI. Nëse jeni të interesuar, lexoni rreth gym dhe parametrat e tij në dokumentacionin.

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

Yni .gitlab-ci.yml

Pra, ne kemi një drejtues CI për projektin dhe jemi gati të testojmë tubacionin. Le të shohim se çfarë kemi në .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

Të gjitha gjërat! Ne e vendosëm formatin në UTF-8 për fastlane sipas nevojës, përdorni strategjinë clone me programin ekzekutues shell, në mënyrë që të kemi një hapësirë ​​pune të pastër për çdo montim dhe thjesht telefononi flappybuild fastlane, siç shihet më sipër. Si rezultat, ne marrim montimin, nënshkrimin dhe vendosjen e asamblesë më të fundit në TestFlight.

Ne gjithashtu marrim objektin dhe e ruajmë atë me montim. Ju lutemi vini re se formati .ipa është një ekzekutues i nënshkruar ARM që nuk funksionon në simulator. Nëse dëshironi rezultate për simulatorin, thjesht shtoni objektivin e ndërtimit që e prodhon atë dhe më pas përfshijeni atë në shtegun e objektit.

Variabla të tjerë të mjedisit

Këtu ka disa ndryshore mjedisore që bëjnë gjithçka të funksionojë.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Autentifikimi për fastlane kërkohet për të vërtetuar në App Store dhe për të ngarkuar në TestFlight. Për ta bërë këtë, krijoni një fjalëkalim për aplikacionin që do të përdoret në CI. Detajet këtu.

Nëse keni vërtetim me dy faktorë, krijoni një ndryshore FASTLANE_SESSION (udhëzimet atje).

FASTLANE_USER и FASTLANE_PASSWORD

cert dhe psherëtimë quajtur profilin e inicializimit dhe certifikatat sipas kërkesës, ju duhet të vendosni variablat FASTLANE_USER и FASTLANE_PASSWORD. Detajet këtu. Kjo nuk është e nevojshme nëse përdorni një metodë tjetër nënshkrimi.

Në përfundim

Ju mund të shihni se si funksionon e gjitha në shembullin tim të thjeshtë.

Shpresoj se kjo ishte e dobishme dhe ju frymëzoi për të punuar me ndërtimet e iOS në një projekt GitLab. Këtu është një tjetër Këshilla CI për fastlane, për çdo rast. Ju mund të dëshironi të përdorni CI_BUILD_ID (për ndërtime në rritje) për të versioni në rritje automatike.

Një tjetër veçori e lezetshme e fastlane është pamjet automatike të ekranit për App Store, të cilat janë shumë të lehta për t'u konfiguruar.

Na tregoni në komente për përvojën tuaj dhe ndani idetë tuaja për përmirësimin e zhvillimit të aplikacionit GitLab për iOS.

Burimi: www.habr.com

Shto një koment