Hoe GitLab mei fastlane iOS-applikaasjes sammelet, tekenet en publisearret yn 'e App Store.
Wy hienen koartlyn
Hjir sille wy nimme
In pear wurden oer de konfiguraasje fan Apple Store
Wy hawwe in App Store-app, distribúsjesertifikaten en in foarsjenningsprofyl nedich om alles byinoar te binen.
It dreechste hjir is it ynstellen fan ûndertekeningsrjochten yn 'e App Store. Ik hoopje dat jo dit sels útfine kinne. As jo nij binne, sil ik jo yn 'e goede rjochting wize, mar wy sille net prate oer de kompleksjes fan it behearen fan Apple-sertifikaten hjir, en se feroarje konstant. Dizze post sil jo helpe om te begjinnen.
Myn apps
Jo hawwe in app nedich yn App Store Connect sadat jo in ID hawwe foar konfiguraasje .xcodebuild
. It profyl en de applikaasje ID kombinearje koade builds, prizen en beskikberens, en TestFlight-konfiguraasje foar it fersprieden fan testapplikaasjes oan brûkers. Doch gjin iepenbiere testen, privee testen sille genôch wêze as jo in lytse groep hawwe, maklike opset, en gjin ekstra tagongsrjochten fan Apple nedich binne.
Inisjalisaasje profyl
Neist de app-opset hawwe jo iOS-distribúsje- en ûntwikkelkaaien nedich makke yn 'e seksje sertifikaten, identifisearjes en profilen fan' e Apple Developer-konsole. Al dizze sertifikaten kinne wurde kombinearre yn in foarsjenningsprofyl.
Brûkers dy't authentisearre wurde moatte sertifikaten kinne oanmeitsje, oars de stappen
oare opsjes
Njonken dizze ienfâldige metoade binne d'r oare manieren om sertifikaten en profilen te konfigurearjen. Dus, as jo oars wurkje, moatte jo miskien oanpasse. It wichtichste is dat jo konfiguraasje nedich binne .xcodebuild
, dy't sil wize op de nedige triemmen, en de keychain moat beskikber wêze op de build kompjûter foar de brûker ûnder waans namme de runner rint. Foar digitale hantekening wy brûke fastlane, en as der problemen of jo wolle witte mear, check out harren details
Yn dit foarbyld brûke ik de oanpak
GitLab en fastlane tariede
Tariede CI Runner
Nei it sammeljen fan al dizze gegevens, geane wy troch nei de konfiguraasje fan 'e GitLab-runner op it MacOS-apparaat. Spitigernôch kinne jo allinich iOS-apps meitsje op MacOS. Mar alles kin feroarje, en as jo ferwachtsje foarútgong op dit gebiet, hâld dan in each op projekten lykas
It ynstellen fan de runner is heul ienfâldich. Folgje aktuele
Noat. De runner moat in útfierber programma brûke shell
. Dit is nedich om iOS op macOS te bouwen om direkt as brûker te wurkjen ynstee fan fia konteners. As jo brûke shell
, Bouwe en testen wurde útfierd as de runner brûker, direkt op 'e build host. It is net sa feilich as konteners, dus better blêdzje
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 moat wurde konfigurearre op dizze host mei tagong ta de kaaien dy't Xcode moat bouwe. De maklikste manier om dit te testen is om oan te melden as de brûker dy't de build sil útfiere en besykje it mei de hân te bouwen. As it systeem freget om tagong ta kaaien, selektearje Altyd tastean foar CI om te wurkjen. It kin de muoite wurdich wêze om yn te gean en de earste pear pipelines te besjen om te soargjen dat se net mear om de keychain freegje. It probleem is dat Apple it ús net maklik makket om de Auto-modus te brûken, mar as jo it oan 'e gong krije, sil alles goed wêze.
fastlane init
Om fastlane te brûken yn in projekt, rinne fastlane init
. Folgje gewoan
Rin dizze kommando's út yn jo projektmap:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane sil freegje om in basiskonfiguraasje en dan meitsje in fastlane map yn it projekt mei trije triemmen:
1. fastlane/Appfile
D'r is hjir neat yngewikkeld. Soargje gewoan dat jo Apple ID en App ID korrekt binne.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
definiearret de boustappen. Wy brûke in protte ynboude funksjes fan Fastlane, dus alles is hjir ek dúdlik. Wy meitsje ien rigel dy't sertifikaten ûntfangt, de gearkomste útfiert en uploadt nei TestFlight. Jo kinne dit proses ferdiele yn ferskate taken as it nedich is. Al dizze operaasjes (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) binne al opnommen yn fastlane.
Aksjes get_certificates
и get_provisioning_profile
ferbân mei de ûndertekening oanpak
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
Dit is in opsjoneel bestân, mar ik haw it manuell makke om de standertútfiermap te feroarjen en de útfier yn 'e hjoeddeistige map te pleatsen. Dit simplifies CI. As ynteressearre, lês oer gym
en syn parameters yn
https://docs.fastlane.tools/actions/gym/
Us .gitlab-ci.yml
Dat, wy hawwe in CI-rinner foar it projekt en wy binne ree om de pipeline te testen. Litte wy sjen wat wy yn hawwe .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
All отлично! clone
mei útfiering programma shell
, sadat wy hawwe in skjinne wurkromte foar eltse gearkomste, en gewoan belje flappybuild
fastlane, lykas hjirboppe sjoen. As gefolch krije wy de gearstalling, hantekening en ynset fan 'e lêste gearstalling yn TestFlight.
Wy krije ek it artefakt en bewarje it mei de gearkomste. Tink derom dat it formaat .ipa
is in ûndertekene ARM útfierber dat net rint yn 'e simulator. As jo útfier wolle foar de simulator, foegje dan gewoan it boudoel ta dat it produsearret, en befetsje it dan yn it artefaktpaad.
Oare omjouwingsfariabelen
D'r binne hjir in pear omjouwingsfariabelen dy't alles meitsje.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Ferifikaasje foar fastlane is fereaske om te autentisearjen yn 'e App Store en te uploaden nei TestFlight. Om dit te dwaan, meitsje in wachtwurd foar de applikaasje dy't sil wurde brûkt yn CI. Details
As jo twa-faktor autentikaasje hawwe, meitsje in fariabele FASTLANE_SESSION
(ynstruksjes dêr).
FASTLANE_USER
и FASTLANE_PASSWORD
dat FASTLANE_USER
и FASTLANE_PASSWORD
. Details
Yn ôfsluting
Jo kinne sjen hoe't it allegear wurket
Ik hoopje dat dit nuttich wie en jo ynspireare om te wurkjen mei iOS-builds yn in GitLab-projekt. Hjir is noch ien CI_BUILD_ID
(foar inkrementele builds) oan
In oare koele skaaimerk fan fastlane is
Fertel ús yn 'e opmerkingen oer jo ûnderfining en diel jo ideeën foar it ferbetterjen fan GitLab foar iOS-appûntwikkeling.
Boarne: www.habr.com