
Kuidas GitLab koos fastlane'iga kogub, allkirjastab ja avaldab iOS-i rakendusi App Store'is.
Hiljuti oli meil GitLabi ja . Siin vaatame, kuidas koguda ja kÀivitada iOS-i rakendus ning avaldada see TestFlightis. Vaadake, kui Àge , vÔtan kogumise ja saan testversiooni vÀrskenduse sama iPad Pro-l, kus ma selle vÀlja töötasin.
Siin kasutame , millega ma videot salvestasin.
MÔned sÔnad Apple Store'i konfiguratsioonist
Me vajame rakendust App Store'is, levitamise sertifikaate ja initsialiseerimise profiili, et kÔik kokku siduda.
K kĂ”ige keerulisem on siin Apple'i rakenduste allkirjastamise Ă”iguste seadistamine. Loodetavasti saate sellega ise hakkama. Kui olete algaja, annan ma vajalikku suunda, kuid siin me ei rÀÀgi Apple'i sertifikaatide haldamise nĂŒanssidest, kuna need pidevalt muutuvad. See postitus aitab teil asjaga alustada.
Minu rakendused
Vajalik on rakendus App Store Connectis, et teil oleks ID konfiguratsiooni jaoks .xcodebuild. Rakenduse profiil ja ID ĂŒhendavad koodikogumikud, hinnad ja kĂ€ttesaadavuse ning TestFlighti seadistamine, et jagada testrakendusi kasutajatega. Avalik testimine ei ole vajalik; privaatne testimine on piisav, kui teil on vĂ€ike grupp, lihtne seadistus ja ei ole vaja lisalubasid Apple'ilt.
Seadistusprofiil
Lisaks rakenduse seadistusele vajate iOSâi jaotamise ja arendamise vĂ”tmeid, mis on loodud Apple Developer konsoolis sektsioonis Certificates, Identifiers & Profiles (Sertifikaadid, identifikaatorid ja profiilid). KĂ”ik need sertifikaadid saab kokku panna seadistusprofiili.
Kasutajatel, kes peavad autentimist lÀbima, peab olema vÔimalik sertifikaate luua, vastasel juhul nÀete etappidel vea.
Teised variandid
Lisaks sellele lihtsale meetodile on muidki viise sertifikaatide ja profiilide seadistamiseks. Seega, kui töötate teisiti, vĂ”ib olla vajalik ĂŒmber seadistamine. Peamine on, et teil on vaja konfiguratsiooni. .xcodebuild, mis suunab vajalikud failid, ja vĂ”tme sidumine peab olema koostatava kasutaja arvutis, kelle nime all töötab jooksja. Digitaalallkirja jaoks kasutame fastlane'i, ja kui esineb probleeme vĂ”i soovite rohkem teada, uurige nende pĂ”hjalikku .
Selles nÀites kasutan lÀhenemist , kuid reaalseks rakendamiseks sobib tÔenÀoliselt paremini .
GitLabi ja fastlane'i ettevalmistamine
CI Runneri ettevalmistamine
Kogunud kĂ”ik need andmed, liigume edasi GitLab Runneri konfigureerimise juurde MacOS seadmes. Kahjuks saab iOS-i rakendusi luua tĂ”eliselt ainult MacOS-is. Kuid kĂ”ik vĂ”ib muutuda, ja kui ootad selles valdkonnas edusamme, siis jĂ€lgi projekte, nagu ja , ja meie sisemine ĂŒlesanne .
Jooksja seadistamine on vÀga lihtne. JÀrgige kehtivaid .
MÀrkus. Jooksja peab kasutama tÀitmisprogrammi shell. See on iOS-i kogumise jaoks MacOS-is hÀdavajalik, et töötada otse kasutajana, mitte konteinerite kaudu. Kui kasutate shell, kokkupanek ja testimine toimub kasutaja jooksja nimel, otse kokkupaneku hostis. See ei ole nii turvaline kui konteinerid, seega parem kerige edasi , et midagi vahele ei jÀÀks.
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 startApple'i vĂ”tmehoidja peab olema sellel hostil konfigureeritud juurdepÀÀsuga vĂ”tmetele, mida Xcode vajab kokkupanekuks. Lihtsaim viis seda testida on sisse logida kasutajana, kes alustab kokkupanekut, ja proovida kokkupanekut kĂ€sitsi teostada. Kui sĂŒsteem kĂŒsib juurdepÀÀsu vĂ”tmehoidjale, valige 'Alati lubada', et CI töötaks. VĂ”ib-olla tasub sisse logida ja vaadata esimesi paari torujuhtmeid, et veenduda, et nad enam vĂ”tmehoidjat ei kĂŒsi. Probleem on selles, et Apple ei lihtsusta automaatset reĆŸiimi, kuid kui te selle seadistate, siis lĂ€heb kĂ”ik hĂ€sti.
fastlane init
Fastlane'i kasutamiseks projektis kÀivitage fastlane init. JÀrgige lihtsalt , eriti osas , sest meil on vaja kiiret ja ennustatavat kÀivitamist lÀbi automaatse CI toru.
Projektikataloogis kÀivitage need kÀsud:
xcode-select --install
sudo gem install fastlane -NV
# Alternatiivina kasutage Homebrew'd
# brew cask install fastlane
fastlane initfastlane kĂŒsib pĂ”hilist seadistust ja loob seejĂ€rel projekti kausta fastlane kolm faili:
1. fastlane/Appfile
Siin pole midagi keerulist. Lihtsalt kontrollige, kas Apple ID ja rakenduse ID on Ôigesti mÀÀratud.
app_identifier("com.vontrance.flappybird") # Teie rakenduse paketi identifikaator
apple_id("your-email@your-domain.com") # Teie Apple'i e-posti aadress2. fastlane/Fastfile
Fastfile mÀÀratleb koostamisprotsessid. Me kasutame palju sisseehitatud funktsioone fastlane'ist, seega on siin ka kĂ”ik arusaadav. Loome ĂŒhe rea, mis saab sertifikaadid, koostab ja laadib selle TestFlighti. Kui vaja, saate selle protsessi jagada erinevateks ĂŒlesanneteks. KĂ”ik need toimingud (get_certificates, get_provisioning_profile, gym ja upload_to_testflight) kuuluvad juba fastlane'i sisse.
Toimingud get_certificates ja get_provisioning_profile seotud allkirjastamise lÀhenemisega . Kui kasutate vÔi midagi muud, tehke muudatusi.
default_platform(:ios)
platform :ios do
desc "Rakenduse kokku panemine"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end3. fastlane/Gymfile
See ei ole kohustuslik fail, aga ma lÔin selle kÀsitsi, et muuta vaikimisi vÀljundkausta ja panna vÀljundid praegusesse kausta. See lihtsustab CI-d. Kui huvi, loe lÀhemalt gym ja selle parameetreid .
https://docs.fastlane.tools/actions/gym/Meie .gitlab-ci.yml
Nii et meil on CI-jooksja projekti jaoks ja oleme valmis katsetama torujuhet. Vaatame, mis meil on .gitlab-ci.yml:
stages:
- build
variables:
LC_ALL: "et_EE.UTF-8"
LANG: "et_EE.UTF-8"
GIT_STRATEGY: clone
build:
stage: build
script:
- bundle install
- bundle exec fastlane flappybuild
artifacts:
paths:
- ./FlappyBird.ipaKÔik on suurepÀrane! , kasutame strateegiat clone tÀidetava programmiga shell, et meil oleks iga ehituse jaoks puhas tööruum, ja lihtsalt kutsume flappybuild fastlane, nagu eespool nÀhtud. Tulemuseks on ehitus, allkiri ja viimase ehituse juurutamine TestFlighti.
Saame ka artefakti ja salvestame selle koos ehitusega. Pane tÀhele, et formaadi .ipa on allkirjastatud ARM tÀidetav fail, mis ei toimi simulaatoris. Kui soovid vÀljundit simulaatori jaoks, lisa lihtsalt ehituslÀhtese eesmÀrk, mis seda tootab, ja seejÀrel lisa see artefakti teele.
Muud keskkonnamuutujad
Siin on paar keskkonnamuutujat, millel kÔik toimib.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ja FASTLANE_SESSION
App Store'i autentimiseks ja TestFlighti ĂŒleslaadimiseks on vajalik fastlane'i autentimine. Selleks looge rakenduse parool, mida kasutatakse CI-s. Lisainfot .
Kui teil on kahefaktoriline autentimine, looge muutuja FASTLANE_SESSION (juhised leiate sealt).
FASTLANE_USER ja FASTLANE_PASSWORD
Et kutsuti vÀlja algatamisprofiil ja sertifikaadid nÔudmisel, tuleb mÀÀrata muutujad FASTLANE_USER ja FASTLANE_PASSWORD. Lisainfot . See ei ole vajalik, kui kasutate teist allkirjastamisviisi.
KokkuvÔtteks
Saate nÀha, kuidas see kÔik toimib .
Loodan, et see oli kasulik ja ma inspireerisin teid töötama iOSi kogumistega GitLabis. Siin on veel fastlane'i jaoks, juhuks kui soovite kasutada CI_BUILD_ID (inkrementaalsete kogumiste jaoks), et .
Veel ĂŒks lahe vĂ”imalus fastlane'is on App Store'i jaoks, mille seadistamine on vĂ€ga lihtne.
RÀÀkige kommentaarides oma kogemusest ja jagage ideid GitLabi parandamiseks iOSi rakenduste arendamiseks.
Allikas: habr.com
