
Hoe GitLab met fastlane iOS-toepassings in die App Store versamel, teken en publiseer.
Ons het onlangs gehad met GitLab en . Hier sal ons sien hoe om 'n iOS-toepassing te bou en te laat loop en dit na TestFlight te publiseer. Kyk hoe gaaf , Ek neem die bou en kry 'n opdatering van die toetsweergawe van die toepassing op dieselfde iPad Pro waar ek dit ontwikkel het.
Hier neem ons waarmee ek die video opgeneem het.
'N Paar woorde oor die konfigurasie van die Apple Store
Ons het 'n toepassing in die App Store, verspreidingsertifikate en 'n voorsieningsprofiel nodig om alles saam te bind.
Die moeilikste ding hier is om ondertekeningstoestemmings in die App Store op te stel. Ek hoop jy kan dit self uitvind. As jy nuut is, sal ek jou in die regte rigting wys, maar ons sal nie hier praat oor die ingewikkeldhede van die bestuur van Apple-sertifikate nie, en hulle verander voortdurend. Hierdie pos sal jou help om te begin.
My programme
Benodig 'n toepassing in App Store Connect sodat jy 'n ID het om op te stel .xcodebuild. Die programprofiel en ID kombineer kodebou, pryse en beskikbaarheid, en die TestFlight-konfigurasie om toetsprogramme aan gebruikers te versprei. Moenie publieke toetse doen nie, privaat toetsing is genoeg as jy 'n klein groepie, eenvoudige opstelling het en nie bykomende toestemmings van Apple benodig nie.
Voorsieningsprofiel
Benewens die programopstelling, benodig jy die iOS-verspreiding- en ontwikkelingsleutels wat in die Sertifikate, Identifiseerders en Profiele-afdeling van die Apple-ontwikkelaarkonsole geskep is. Al hierdie sertifikate kan in 'n voorsieningsprofiel gekombineer word.
Gebruikers wat geverifieer sal word, moet die vermoë hê om sertifikate te skep, anders die stappe jy sal 'n fout sien.
ander opsies
Behalwe hierdie eenvoudige metode, is daar ander maniere om sertifikate en profiele op te stel. Dus, as jy anders werk, moet jy dalk weer aanpas. Die belangrikste is dat u 'n konfigurasie benodig .xcodebuild, wat na die nodige lêers sal wys, en die sleutelhanger moet beskikbaar wees op die bourekenaar vir die gebruiker onder wie se naam die hardloper loop. Ons gebruik Fastlane vir digitale ondertekening, en as jy probleme het of meer wil weet, kyk na die besonderhede daarvan .
In hierdie voorbeeld gebruik ek die benadering , maar vir werklike gebruik, waarskynlik beter geskik .
Berei GitLab en fastlane voor
Berei CI Runner voor
Nadat ons al hierdie data versamel het, gaan ons voort na die konfigurasie van die GitLab-hardloper op 'n MacOS-toestel. Ongelukkig is die maak van iOS-toepassings slegs moontlik op MacOS. Maar alles kan verander, en as jy wag vir vordering op hierdie gebied, volg projekte soos и , en ons interne taak .
Die opstel van die hardloper is baie maklik. Volg op datum .
Let wel. Die hardloper moet 'n uitvoerende program gebruik shellDit is nodig vir die bou van iOS in macOSom direk as 'n gebruiker te werk, eerder as deur houers. As jy dit gebruik shell, gebou en toetsing word gedoen as die hardlopergebruiker, direk op die bougasheer. Dit is nie so veilig soos houers nie, so jy beter omdraai sodat jy niks mis nie.
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 Keychain moet op hierdie gasheer opgestel word met toegang tot die sleutels wat Xcode moet bou. Die maklikste manier om dit te toets, is om aan te meld as die gebruiker wat die bou sal laat loop en met die hand probeer bou. As die stelsel vir sleutelhouertoegang vra, kies "Laat altyd toe" sodat CI kan werk. Dit is dalk die moeite werd om in te gaan en die eerste paar pyplyne dop te hou om seker te maak hulle vra nie meer vir 'n sleutelhouer nie. Die probleem is dat Apple dit nie vir ons maklik maak om met outomatiese modus te werk nie, maar wanneer jy dit opgestel kry, sal alles reg wees.
fastlane init
Hardloop om fastlane in 'n projek te gebruik fastlane init. Volg net veral in die afdeling oor , want ons benodig 'n vinnige en voorspelbare bekendstelling deur 'n outomatiese CI-pyplyn.
Voer hierdie opdragte in die projekgids uit:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane initfastlane sal 'n basiese konfigurasie aanvra en dan 'n fastlane-lêergids in die projek skep met drie lêers:
1. fastlane/Appfile
Hier is niks ingewikkeld nie. Maak net seker jou Apple ID en App ID is korrek.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("your-email@your-domain.com") # Your Apple email address2. fastlane/Fastfile
Fastfile definieer boustappe. Ons gebruik baie fastlane se ingeboude kenmerke, so alles is ook hier duidelik. Ons skep een lyn wat sertifikate ontvang, bou en oplaai na TestFlight. Jy kan hierdie proses in verskillende take verdeel indien nodig. Al hierdie operasiesget_certificates, get_provisioning_profile, gym и upload_to_testflight) is reeds ingesluit in fastlane.
Aktiwiteit get_certificates и get_provisioning_profile verband hou met die ondertekening benadering . As jy gebruik of iets anders, maak veranderinge.
default_platform(:ios)
platform :ios do
desc "Build the application"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end3. fastlane/Gymfile
Dit is 'n opsionele lêer, maar ek het dit met die hand geskep om die verstek uitvoergids te verander en die uitvoer in die huidige gids te plaas. Dit vereenvoudig CI. As jy belangstel, lees oor gym en sy parameters in .
https://docs.fastlane.tools/actions/gym/Наш .gitlab-ci.yml
So, ons het 'n CI-hardloper vir die projek en ons is gereed om die pyplyn te toets. Kom ons kyk wat ons het .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Все отлично! , gebruik ons die strategie clone met die uitvoering van program shellsodat ons 'n skoon werkspasie vir elke gebou het, en bel net flappybuild snellaan soos hierbo gesien. As gevolg hiervan kry ons die samestelling, handtekening en ontplooiing van die nuutste samestelling in TestFlight.
Ons kry ook 'n artefak en stoor dit saam met die samestelling. Let daarop dat die formaat .ipa is 'n getekende ARM-uitvoerbare program wat nie in die simulator loop nie. As jy simulatoruitset wil hê, voeg net die bouteiken by wat dit produseer, en sluit dit dan by die artefakpad in.
Ander omgewingsveranderlikes
Daar is 'n paar omgewingsveranderlikes hier waarop alles werk.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION
Om na die App Store te staaf en na TestFlight op te laai, benodig jy stawing vir fastlane. Om dit te doen, skep 'n programwagwoord wat in CI gebruik sal word. Besonderhede .
As jy twee-faktor-verifikasie het, skep 'n veranderlike FASTLANE_SESSION (instruksies daar).
FASTLANE_USER и FASTLANE_PASSWORD
Wat genoem die inisialisering profiel en sertifikate op versoek, moet jy veranderlikes stel FASTLANE_USER и FASTLANE_PASSWORD. Besonderhede . Dit is nie nodig as jy 'n ander ondertekeningsmetode gebruik nie.
Ten slotte
Jy kan sien hoe dit alles werk .
Ek hoop dit was nuttig en het jou geïnspireer om met iOS-geboue in die GitLab-projek te werk. Hier is nog een vir vinnige baan, net vir ingeval. Miskien wil jy gebruik CI_BUILD_ID (vir inkrementele bou) aan .
Nog 'n oulike kenmerk van fastlane is vir die App Store, wat baie maklik is om op te stel.
Vertel ons van jou ervaring in die opmerkings en deel idees vir die verbetering van GitLab vir iOS-toepassingsontwikkeling.
Bron: will.com
