Hoe GitLab met fastlane iOS-toepassings in die App Store versamel, teken en publiseer.
Ons het onlangs gehad
Hier neem ons
'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
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
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
Die opstel van die hardloper is baie maklik. Volg op datum
Let wel. Die hardloper moet 'n uitvoerende program gebruik shell
. Dit is nodig om iOS op macOS te bou om direk as 'n gebruiker te werk en nie deur houers nie. As jy 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
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 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
Voer hierdie opdragte in die projekgids uit:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane 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("[email protected]") # Your Apple email address
2. 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
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 '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
Все отлично! clone
met die uitvoering van program shell
sodat 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 FASTLANE_USER
и FASTLANE_PASSWORD
. Besonderhede
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 CI_BUILD_ID
(vir inkrementele bou) aan
Nog 'n oulike kenmerk van fastlane is
Vertel ons van jou ervaring in die opmerkings en deel idees vir die verbetering van GitLab vir iOS-toepassingsontwikkeling.
Bron: will.com