Si GitLab me fastlane mbledh, nënshkruan dhe publikon aplikacionet iOS në App Store.
Së fundmi kemi pasur
Këtu do të marrim
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
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
Në këtë shembull unë jam duke përdorur qasjen
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
Vendosja e vrapuesit është shumë e thjeshtë. Ndiqni rrymën
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
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
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
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ë
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! 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
Nëse keni vërtetim me dy faktorë, krijoni një ndryshore FASTLANE_SESSION
(udhëzimet atje).
FASTLANE_USER
и FASTLANE_PASSWORD
Që FASTLANE_USER
и FASTLANE_PASSWORD
. Detajet
Në përfundim
Ju mund të shihni se si funksionon e gjitha
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 CI_BUILD_ID
(për ndërtime në rritje) për të
Një tjetër veçori e lezetshme e fastlane është
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