
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 me GitLab dhe . Këtu do të shohim si të ndërtosh dhe ekzekutosh një aplikacion iOS dhe ta publikosh atë në TestFlight. Shikoni se sa bukur , 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 , 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 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. .
Në këtë shembull unë po përdor një qasje , por për një aplikim të vërtetë, ndoshta është më mirë të përshtatet .
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ë dhe , dhe detyra jonë e brendshme .
Konfigurimi i runner-it është shumë i thjeshtë. Ndiqni të rejat .
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 , 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 startLidhja 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 , veçanërisht në seksionin për , 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 initfastlane 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ë Apple2. 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 . Nëse po përdorni 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
end3. 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ë .
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.ipaTë gjitha janë shkëlqyer! , 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 .
Nëse keni autentifikim me dy faktorë, krijoni një variabël FASTLANE_SESSION (udhzime atje po ashtu).
FASTLANE_USER dhe FASTLANE_PASSWORD
Për thirrëm profilin e inicializimit dhe certifikatat sipas kërkesës, duhet të caktojmë variablat FASTLANE_USER dhe FASTLANE_PASSWORD. Detaje . Kjo nuk është e nevojshme nëse përdorni një metodë tjetër nënshkrimi.
Në përfundim
Shihni si funksionon e gjitha kjo .
Shpresoj se kjo ka qenë e dobishme dhe që ju kam frymëzuar të punoni me ndërtimet iOS në projektin GitLab. Ja disa për fastlane, në rast se dëshironi të përdorni CI_BUILD_ID (për ndërtimet inkrementale), për të .
Një tjetër mundësi e shkëlqyer e fastlane është 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
