Com GitLab amb fastlane recull, signa i publica aplicacions d'iOS a l'App Store.
Fa poc que vam tenir
Aquí agafem
Unes paraules sobre la configuració de l'Apple Store
Necessitarem una aplicació a l'App Store, certificats de distribució i un perfil de subministrament per unir-ho tot.
El més difícil aquí és configurar els permisos de signatura a l'App Store. Espero que ho pugueu esbrinar vosaltres mateixos. Si sou nou, us indicaré la direcció correcta, però aquí no parlarem de les complexitats de la gestió dels certificats d'Apple, i estan canviant constantment. Aquesta publicació us ajudarà a començar.
Les meves aplicacions
Necessites una aplicació a App Store Connect perquè tinguis un identificador per configurar .xcodebuild
. El perfil de l'aplicació i l'identificador combinen compilacions de codi, preus i disponibilitat, i la configuració de TestFlight per distribuir aplicacions de prova als usuaris. No feu proves públiques, les proves privades són suficients si teniu un grup reduït, una configuració senzilla i no necessiteu permisos addicionals d'Apple.
Perfil d'aprovisionament
A més de la configuració de l'aplicació, necessiteu les claus de desenvolupament i distribució d'iOS creades a la secció Certificats, identificadors i perfils de la consola Apple Developer. Tots aquests certificats es poden combinar en un perfil de subministrament.
Els usuaris que seran autenticats necessiten la possibilitat de crear certificats, en cas contrari els passos
altres opcions
A més d'aquest mètode senzill, hi ha altres maneres de configurar certificats i perfils. Per tant, si treballeu de manera diferent, potser haureu de reajustar-vos. El més important és que necessitareu una configuració .xcodebuild
, que apuntarà als fitxers necessaris, i el clauer ha d'estar disponible a l'ordinador de compilació per a l'usuari amb el nom del qual s'executa el corredor. Utilitzem Fastlane per a la signatura digital, i si teniu problemes o voleu saber-ne més, consulteu el seu detall
En aquest exemple estic utilitzant l'enfocament
Preparant GitLab i Fastlane
Preparant CI Runner
Recollides totes aquestes dades, passem a la configuració del corredor GitLab en un dispositiu MacOS. Malauradament, fer aplicacions per a iOS només és possible a MacOS. Però tot pot canviar, i si estàs esperant progressos en aquest àmbit, segueix projectes com
Configurar el corredor és molt fàcil. Seguiu al dia
Nota. El corredor ha d'utilitzar un programa d'execució shell
. Això és necessari per crear iOS a macOS perquè funcioni directament com a usuari i no mitjançant contenidors. Si estàs utilitzant shell
, la construcció i les proves es fan com a usuari del corredor, just a l'amfitrió de compilació. No és tan segur com els contenidors, així que és millor que feu la volta
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 s'ha de configurar en aquest amfitrió amb accés a les claus que Xcode necessita per crear. La manera més senzilla de provar-ho és iniciar sessió com a usuari que executarà la compilació i provar de crear-la manualment. Si el sistema demana accés al clauer, seleccioneu "Permetre sempre" perquè CI funcioni. Potser val la pena entrar i mirar el primer parell de canonades per assegurar-se que ja no demanen un clauer. El problema és que Apple no ens facilita treballar amb el mode automàtic, però quan el configureu, tot anirà bé.
Fastlane init
Per utilitzar Fastlane en un projecte, executeu fastlane init
. Només seguiu
Al directori del projecte, executeu aquestes ordres:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane sol·licitarà una configuració bàsica i després crearà una carpeta fastlane al projecte amb tres fitxers:
1. fastlane/Appfile
Aquí no hi ha res complicat. Només assegureu-vos que el vostre ID d'Apple i l'ID d'aplicació siguin correctes.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
defineix els passos de construcció. Utilitzem moltes funcions integrades de Fastlane, de manera que aquí també queda tot clar. Creem una línia que rep certificats, la construeix i la puja a TestFlight. Podeu dividir aquest procés en diferents tasques si cal. Totes aquestes operacionsget_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) ja estan inclosos a Fastlane.
Activitat get_certificates
и get_provisioning_profile
relacionat amb l'enfocament de signatura
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
Aquest és un fitxer opcional, però el vaig crear manualment per canviar el directori de sortida predeterminat i posar la sortida a la carpeta actual. Això simplifica CI. Si us interessa, llegiu-ne gym
i els seus paràmetres
https://docs.fastlane.tools/actions/gym/
La nostra .gitlab-ci.yml
Així doncs, tenim un responsable de CI per al projecte i estem preparats per provar el pipeline. A veure què tenim .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
Tots els detalls! clone
amb el programa en execució shell
de manera que tinguem un espai de treball net per a cada construcció i només truquem flappybuild
Fastlane com es veu més amunt. Com a resultat, obtenim el muntatge, la signatura i el desplegament de l'últim muntatge a TestFlight.
També obtenim un artefacte i el guardem amb el muntatge. Tingueu en compte que el format .ipa
és un executable ARM signat que no s'executa al simulador. Si voleu una sortida del simulador, només heu d'afegir l'objectiu de construcció que el produeix i, a continuació, incloure-lo al camí de l'artefacte.
Altres variables d'entorn
Aquí hi ha un parell de variables d'entorn amb les quals tot funciona.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Per autenticar-vos a l'App Store i pujar a TestFlight, necessiteu l'autenticació per a Fastlane. Per fer-ho, creeu una contrasenya d'aplicació que s'utilitzarà a CI. Detalls
Si teniu una autenticació de dos factors, creeu una variable FASTLANE_SESSION
(instruccions allà).
FASTLANE_USER
и FASTLANE_PASSWORD
Que FASTLANE_USER
и FASTLANE_PASSWORD
. Detalls
en conclusió
Podeu veure com funciona tot
Espero que us hagi estat útil i us hagi inspirat a treballar amb les compilacions d'iOS al projecte GitLab. Aquí hi ha un altre CI_BUILD_ID
(per a compilacions incrementals) a
Una altra característica interessant de Fastlane és
Explica'ns la teva experiència als comentaris i comparteix idees per millorar el desenvolupament d'aplicacions GitLab per a iOS.
Font: www.habr.com