Kuidas GitLab koos fastlane'iga iOS-i rakendusi App Store'is kogub, allkirjastab ja avaldab.
Meil oli hiljuti
Siin me võtame
Paar sõna Apple Store'i konfiguratsiooni kohta
Kõikide ühendamiseks vajame rakendust App Store, levitussertifikaate ja pakkumisprofiili.
Kõige keerulisem on siin App Store'is allkirjastamisõiguste seadistamine. Loodan, et saate selle ise välja mõelda. Kui olete uus, siis ma juhatan teid õiges suunas, kuid me ei räägi siin Apple'i sertifikaatide haldamise keerukusest ja need muutuvad pidevalt. See postitus aitab teil alustada.
Minu rakendused
Vajate App Store Connecti rakendust, et teil oleks seadistamiseks ID .xcodebuild
. Profiil ja rakenduse ID ühendavad koodi järge, hinna ja saadavuse ning TestFlighti konfiguratsiooni testrakenduste kasutajatele levitamiseks. Ärge tehke avalikku testimist, privaatsest testimisest piisab, kui teil on väike grupp, lihtne seadistamine ja te ei vaja Apple'i täiendavaid õigusi.
Initsialiseerimisprofiil
Lisaks rakenduse seadistamisele vajate Apple'i arendajakonsooli jaotises Sertifikaadid, identifikaatorid ja profiilid loodud iOS-i levitamis- ja arendusvõtmed. Kõiki neid sertifikaate saab kombineerida ettevalmistusprofiiliks.
Autentitavad kasutajad peavad saama luua sertifikaate, vastasel juhul toimige järgmiselt
muid võimalusi
Lisaks sellele lihtsale meetodile on sertifikaatide ja profiilide konfigureerimiseks ka teisi võimalusi. Seega, kui töötate teisiti, peate võib-olla kohanema. Kõige tähtsam on see, et vajate konfiguratsiooni .xcodebuild
, mis osutab vajalikele failidele ja võtmehoidja peab olema ehitatavas arvutis kasutajale, kelle nime all jooksja töötab. Digiallkirja andmiseks kasutame fastlane’i ja kui on probleeme või soovid rohkem teada, vaata nende üksikasju
Selles näites kasutan lähenemist
GitLabi ja fastlane'i ettevalmistamine
CI Runneri ettevalmistamine
Pärast kõigi nende andmete kogumist liigume edasi MacOS-seadme GitLabi jooksja konfiguratsiooni juurde. Kahjuks saate iOS-i rakendusi teha ainult MacOS-is. Kuid kõik võib muutuda ja kui ootate selles valdkonnas edusamme, hoidke silm peal sellistel projektidel nagu
Jooksja seadistamine on väga lihtne. Jälgige voolu
Märge. Jooksja peab kasutama käivitatavat programmi shell
. See on vajalik iOS-i loomiseks macOS-is, et töötada otse kasutajana, mitte konteinerite kaudu. Kui kasutate shell
, ehitamine ja testimine toimub jooksva kasutajana otse järgu hostis. See pole nii turvaline kui konteinerid, seega on parem sirvida
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'i võtmehoidja peab olema selles hostis konfigureeritud, et võimaldada juurdepääsu võtmetele, mida Xcode vajab. Lihtsaim viis selle testimiseks on sisse logida kasutajana, kes käivitab ehitust, ja proovida seda käsitsi luua. Kui süsteem küsib juurdepääsu võtmehoidjale, valige Luba alati, et CI töötaks. Võib-olla tasub siseneda ja vaadata paari esimest torujuhet, et olla kindel, et nad enam võtmehoidjat ei küsi. Probleem on selles, et Apple ei tee meil automaatrežiimi kasutamist lihtsaks, kuid kui see käima läheb, on kõik korras.
fastlane init
Fastlane'i kasutamiseks projektis käivitage fastlane init
. Lihtsalt järgi
Käivitage oma projektikataloogis järgmised käsud:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane küsib põhikonfiguratsiooni ja loob seejärel projektis kolme failiga fastlane'i kausta:
1. fastlane/Appfile
Siin pole midagi keerulist. Lihtsalt veenduge, et teie Apple ID ja rakenduse ID oleksid õiged.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
määrab ehitusetapid. Kasutame palju fastlane’i sisseehitatud funktsioone, nii et ka siin on kõik selge. Loome ühe rea, mis võtab vastu sertifikaadid, teostab koostamise ja laadib selle TestFlighti üles. Vajadusel saate selle protsessi jagada erinevateks ülesanneteks. Kõik need toimingud (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) on juba fastlane'i lisatud.
Tegevus get_certificates
и get_provisioning_profile
seotud allkirjastamise lähenemisviisiga
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
See on valikuline fail, kuid lõin selle käsitsi, et muuta vaikeväljundi kataloogi ja paigutada väljund praegusesse kausta. See lihtsustab CI-d. Huvi korral lugege gym
ja selle parameetrid
https://docs.fastlane.tools/actions/gym/
Meie .gitlab-ci.yml
Niisiis, meil on projekti jaoks CI jooksja ja oleme valmis torujuhet testima. Vaatame, mis meil on .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
Kõik väga hea! clone
käivitava programmiga shell
, et meil oleks iga koostu jaoks puhas tööruum, ja helistage lihtsalt flappybuild
fastlane, nagu eespool näha. Selle tulemusena saame TestFlighti uusima koostu kokkupaneku, allkirja ja juurutamise.
Samuti saame artefakti ja salvestame selle koos koostuga. Pange tähele, et vorming .ipa
on allkirjastatud ARM-i käivitatav fail, mis simulaatoris ei tööta. Kui soovite simulaatori jaoks väljundit, lisage lihtsalt selle loov järgu sihtmärk ja seejärel lisage see artefakti teele.
Muud keskkonnamuutujad
Siin on paar keskkonnamuutujat, mis panevad kõik tööle.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Fastlane'i autentimine on vajalik App Store'is autentimiseks ja TestFlighti üleslaadimiseks. Selleks looge CI-s kasutatavale rakendusele parool. Üksikasjad
Kui teil on kahefaktoriline autentimine, looge muutuja FASTLANE_SESSION
(juhend seal).
FASTLANE_USER
и FASTLANE_PASSWORD
Et FASTLANE_USER
и FASTLANE_PASSWORD
. Üksikasjad
Kokkuvõttes
Näete, kuidas see kõik töötab
Loodan, et see oli kasulik ja inspireeris teid GitLabi projektis iOS-i versioonidega töötama. Siin on veel üks CI_BUILD_ID
(täienduste jaoks) kuni
Fastlane’i veel üks lahe omadus on
Rääkige meile kommentaarides oma kogemustest ja jagage oma ideid GitLabi täiustamiseks iOS-i rakenduste arendamiseks.
Allikas: www.habr.com