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 ndihmon në ndërtimin, nënshkrimin dhe publikimin e aplikacioneve për iOS në App Store.

Kohët e fundit kemi pasur një postim mbi mënyrën më të shpejtë për të ndërtuar dhe ekzekutuar një aplikacion Android me GitLab dhe fastlane. Këtu do të shohim si të ndërtosh dhe ekzekutosh një aplikacion iOS dhe ta publikosh atë në TestFlight. Shikoni se sa bukur po bëj një ndryshim në iPad Pro me GitLab Web IDE, marr ndërtimin dhe marr një azhurnim të versionit provues të aplikacionit në të njëjtin iPad Pro ku e zhvillova.

Këtu do të marrim një aplikacion të thjeshtë për iOS në Swift, me të cilin regjistrova një video.

Disa fjalë mbi konfigurimin e Apple Store

Na nevojitet një aplikacion në App Store, certifikatat e shpërndarjes dhe profilin e iniciatës, për t'i lidhur të gjitha këto së bashku.

Më e vështira këtu është të përcaktohet e drejta e nënshkrimit në App Store. Shpresoj se do të jeni në gjendje ta menaxhoni vetë. Nëse jeni fillestar, unë do t'ju tregoj drejtimin e nevojshëm, por këtu nuk do të flasim për nuancat e menaxhimit të certifikatave të Apple, veçanërisht sepse ato ndryshojnë vazhdimisht. Ky post do të ndihmojë të filloni punën.

Aplikacionet e mia

Nevojitet një aplikacion në App Store Connect, që keni një ID për konfigurimin .xcodebuild. Profili dhe ID e aplikacionit bashkojnë ndërtimet e kodit, çmimet dhe disponueshmërinë, si dhe konfigurimin e TestFlight për shpërndarjen e aplikacioneve provuese tek përdoruesit. Mos e bëni provimin publik, mjafton private nëse keni një grup të vogël, konfigurim të thjeshtë dhe nuk keni nevojë për autorizime shtesë nga Apple.

Profili i iniciatës

Përveç setup-it të aplikacionit, ju nevojiten çelësat e shpërndarjes dhe zhvillimit të iOS, të krijuar në seksionin Certificates, Identifiers & Profiles (Certifikatat, Identifikuesit dhe Profilat) në konsolën e zhvilluesve të Apple. Të gjitha këto certifikata mund të bashkohen në profilin e iniciatës.

Përdoruesit që do të kalojnë autentikimin kanë nevojë për mundësinë për të krijuar certifikata, përndryshe në hapa cert dhe sigh do të shihni një gabim.

Opsione të tjera

Përveç kësaj metode të thjeshtë, ka edhe mënyra të tjera për të konfiguruar certifikatat dhe profilet. Prandaj, nëse punoni ndryshe, ndoshta do t'ju duhet të ristrukturoni. E rëndësishmja është se do t'ju nevojitet një konfigurim .xcodebuild, i cili do të tregojë për skedarët e nevojshëm, dhe kyçja e çelësave duhet të jetë e aksesueshme në kompjuterin e ndërtimit për përdoruesin nën emrin e të cilit punon runneri. Për nënshkrimin digjital, ne përdorim fastlane, dhe nëse ka probleme ose dëshironi të mësoni më shumë, shqyrtoni detajet e tyre. dokumentacioni për nënshkrimet digjitale.

Në këtë shembull unë po përdor një qasje cert dhe sigh, por për një aplikim të vërtetë, ndoshta është më mirë të përshtatet match.

Përgatitja e GitLab dhe fastlane

Përgatitja e CI Runner

Pas grumbullimit të të dhënave, kalojmë te konfigurimi i GitLab-Runner në pajisjen MacOS. Fatkeqësisht, krijimi i aplikacioneve iOS është realisht vetëm në MacOS. Por gjithçka mund të ndryshojë, dhe nëse po prisni ndryshime në këtë fushë, - mbani lidhjen me projektet, siç janë xcbuild dhe isign, dhe detyra jonë e brendshme gitlab-ce#57576.

Konfigurimi i runner-it është shumë i thjeshtë. Ndiqni të rejat udhëzimeve për konfigurimin e GitLab Runner në macOS.

Shënim. Runner-i duhet të përdorë programin ekzekutues shell. Kjo është e detyrueshme për ndërtimin e iOS në macOS, për të punuar drejtpërdrejt si përdorues, dhe jo përmes konteinerëve. Nëse po përdorni shell, ndërtimi dhe testi kryhen në emër të përdoruesit të runner-it, drejtpërdrejt në hostin e ndërtimit. Kjo nuk është aq e sigurt sa konteinerët, kështu që është më mirë të shfletoni dokumentacionin për sigurinë, për të mos humbur 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

Lidhja e çelësave Apple duhet të jetë e konfiguruar në këtë host me qasje në çelësat që nevojiten nga Xcode për ndërtim. Mënyra më e thjeshtë për ta testuar këtë është të hyni si përdoruesi që do të kryejë ndërtimin dhe të provoni të realizoni ndërtimin manualisht. Nëse sistemi kërkon qasje në lidhjen e çelësave, zgjidhni "Gjithmonë lejo", që CI të funksionojë. Ndoshta do të ndihmojë të hyni dhe të përgjigjeni gjatë dy pipeline-ve të para, - për të siguruar që ato nuk kërkojnë më lidhjen e çelësave. Problemi është se Apple nuk na e lehtëson punën me modin automatik, por kur e vendosni, gjithçka do të shkojë mirë.

fastlane init

Për të përdorur fastlane në projekt, ekzekutoni fastlane init. Thjesht ndiqni udhëzimet për instalimin dhe nisjen e fastlane, veçanërisht në seksionin për Gemfile, pasi na nevojitet një nisje e shpejtë dhe e parashikueshme përmes konvejerit automatizues CI.

Në katalogun e projektit ekzekutoni këto komanda:

xcode-select --install
sudo gem install fastlane -NV
# Alternativisht duke përdorur Homebrew
# brew cask install fastlane
fastlane init

fastlane do të kërkojë konfigurimin bazë, dhe pastaj do të krijojë në projektin fastlane një dosje me tre skedarë:

1. fastlane/Appfile

Nuk ka asgjë të komplikuar këtu. Thjesht kontrolloni që Apple ID dhe ID e aplikacionit janë të saktë.

app_identifier("com.vontrance.flappybird") # Identifikuesi i paketës së aplikacionit tuaj
apple_id("your-email@your-domain.com") # Adresa juaj e emailit në Apple

2. fastlane/Fastfile

Fastfile përcakton hapat e ndërtimit. Ne përdorim shumë mundësi të ndërtuara në fastlane, kështu që këtu gjithçka është gjithashtu e qartë. Krijojmë një linjë që merr certifikatat, ekzekuton ndërtimin dhe e ngarkon atë në TestFlight. Mund të ndani këtë proces në detyra të ndryshme nëse është e nevojshme. Të gjitha këto operacione (get_certificates, get_provisioning_profile, gym dhe upload_to_testflight) tashmë janë të përfshira në fastlane.

Veprimet get_certificates dhe get_provisioning_profile lidhen me qasjen e nënshkrimit cert dhe sigh. Nëse po përdorni match ose diçka tjetër, bëni ndryshime.

default_platform(:ios)

platform :ios do
  desc "Ndërto aplikacionin"
  lane :flappybuild do
    get_certificates
    get_provisioning_profile
    gym
    upload_to_testflight
  end
end

3. fastlane/Gymfile

Ky është një skedar opsional, por e kam krijuar manualisht për të ndryshuar dosjen e daljes nga e paraqitura dhe për të vendosur daljet në dosjen aktuale. Kjo e thjeshton CI-në. Nëse jeni të interesuar, lexoni për gym dhe parametrat e tij në dokumentacionin.

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

Yni .gitlab-ci.yml

Pra, kemi një CI-run për projektin dhe jemi gati të provojmë pipeline-in. Le të shikojmë se çfarë kemi në .gitlab-ci.yml:

stages:
  - ndërtim

variables:
  LC_ALL: "en_US.UTF-8"
  LANG: "en_US.UTF-8"
  GIT_STRATEGY: clone

ndërtim:
  stage: ndërtimi
  script:
    - bundle install
    - bundle exec fastlane flappybuild
  artifacts:
    paths:
    - ./FlappyBird.ipa

Të gjitha janë shkëlqyer! Ne përcaktojmë formatin UTF-8 për fastlane, siç kërkohet, përdorim strategjinë clone me programin ekzekutues shell, për të pasur një hapësirë të pastër pune për çdo ndërtim, dhe thjesht thërrasim flappybuild fastlane, siç tregohet më lart. Në fund, ne marrim ndërtimin, nënshkrimin dhe vendosjen e ndërtimit më të fundit në TestFlight.

Gjithashtu marrim një artefakt dhe e ruajmë atë me ndërtimin. Vini re se formati .ipa — është një skedar ekzekutues i nënshkruar ARM, i cili nuk ekzekutohet në simulator. Nëse dëshironi daljet për simulatorin, thjesht shtoni një objektiv ndërtimi që e prodhon atë, pastaj përfshini atë në rrugën për artefaktin.

Variabla të tjera të mjedisit

Këtu ka disa variabla të mjedisit në të cilat funksionon gjithçka.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD dhe FASTLANE_SESSION

Për autentifikimin në App Store dhe ngarkimin në TestFlight, ne kemi nevojë për autentifikim për fastlane. Për këtë, krijoni një fjalëkalim të aplikacionit që do të përdoret në CI. Detaje këtu.

Nëse keni autentifikim me dy faktorë, krijoni një variabël FASTLANE_SESSION (udhzime atje po ashtu).

FASTLANE_USER dhe FASTLANE_PASSWORD

Për cert dhe sigh thirrëm profilin e inicializimit dhe certifikatat sipas kërkesës, duhet të caktojmë variablat FASTLANE_USER dhe FASTLANE_PASSWORD. Detaje këtu. Kjo nuk është e nevojshme nëse përdorni një metodë tjetër nënshkrimi.

Në përfundim

Shihni si funksionon e gjitha kjo në shembullin tim të thjeshtë.

Shpresoj se kjo ka qenë e dobishme dhe që ju kam frymëzuar të punoni me ndërtimet iOS në projektin GitLab. Ja disa këshilla për CI për fastlane, në rast se dëshironi të përdorni CI_BUILD_ID (për ndërtimet inkrementale), për të inkrementuar automatikisht versionin.

Një tjetër mundësi e shkëlqyer e fastlane është screenshotet automatike për App Store, të cilat janë shumë të lehta për t'u konfiguruar.

Ndani përvojën tuaj në coment dhe ndani idetë për përmirësimin e GitLab për zhvillimin e aplikacioneve iOS.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster