Wéi GitLab mat Fastlane sammelt, ënnerschreift a publizéiert iOS Uwendungen am App Store.
Mir haten viru kuerzem
Hei wäerte mir huelen
E puer Wierder iwwer d'Apple Store Konfiguratioun
Mir brauchen eng App Store App, Verdeelungszertifikater, an e Bestëmmungsprofil fir alles zesummen ze verbannen.
Déi schwieregst Saach hei ass d'Ënnerschreiwerechter am App Store opzestellen. Ech hoffen Dir kënnt dat selwer erausfannen. Wann Dir nei sidd, wäert ech Iech an déi richteg Richtung weisen, awer mir wäerte net iwwer d'Intricacies vun der Gestioun vun Apple Certificaten schwätzen hei, a si änneren dauernd. Dëse Post hëlleft Iech unzefänken.
Meng Apps
Dir braucht eng App am App Store Connect fir datt Dir eng ID fir d'Konfiguratioun hutt .xcodebuild
. De Profil an d'Applikatioun ID kombinéiere Code baut, Präisser an Disponibilitéit, an TestFlight Konfiguratioun fir Testapplikatiounen un d'Benotzer ze verdeelen. Maacht net ëffentlech Tester, privat Tester wäerten duergoen wann Dir e klenge Grupp hutt, einfache Setup, an Dir braucht keng zousätzlech Permissiounen vun Apple.
Initialiséierung Profil
Zousätzlech zum App-Setup, braucht Dir iOS Verdeelungs- an Entwécklungsschlësselen erstallt an der Certificates, Identifiers & Profiles Sektioun vun der Apple Developer Console. All dës Certificaten kënnen an e Bestëmmungsprofil kombinéiert ginn.
D'Benotzer déi authentifizéiert ginn musse fäeg sinn Certificaten ze kreéieren, soss d'Schrëtt
aner Méiglechkeeten
Nieft dëser einfacher Method ginn et aner Weeër fir Zertifikater a Profiler ze konfiguréieren. Also, wann Dir anescht schafft, musst Dir Iech vläicht upassen. Déi wichtegst Saach ass, datt Dir Configuratioun brauchen .xcodebuild
, déi op déi néideg Dateien weisen, an d'Schlësselhanger muss um Build Computer verfügbar sinn fir de Benotzer ënner deem säin Numm de Leefer leeft. Fir digital Ënnerschrëft benotze mir Fastlane, a wann et Problemer gëtt oder Dir wëllt méi wëssen, kuckt hir Detailer
An dësem Beispill benotzen ech d'Approche
GitLab a Fastlane virbereeden
Preparéieren CI Runner
Nodeems mir all dës Donnéeë gesammelt hunn, gi mir weider op d'Konfiguratioun vum GitLab Runner um MacOS Apparat. Leider kënnt Dir nëmmen iOS Apps op MacOS maachen. Mee alles kann änneren, a wann Dir Fortschrëtter an dësem Beräich erwaart, halen en Aa op Projeten wéi
De Leefer opstellen ass ganz einfach. Follegt aktuell
Note. De Leefer muss en ausführbare Programm benotzen shell
. Dëst ass erfuerderlech fir iOS op macOS ze bauen fir direkt als Benotzer ze schaffen anstatt duerch Container. Wann Dir benotzt shell
, Bauen an Tester ginn als Leefer Benotzer gemaach, direkt um Bauhost. Et ass net sou sécher wéi Container, also besser duerchsichen
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 muss op dësem Host konfiguréiert sinn mat Zougang zu de Schlësselen déi Xcode muss bauen. Deen einfachste Wee fir dëst ze testen ass Iech als Benotzer unzemellen deen de Build leeft a probéiert et manuell ze bauen. Wann de System fir Keychain Zougang freet, wielt Ëmmer Erlaabt fir CI ze schaffen. Et kéint derwäert sinn eran ze goen an déi éischt Koppel Pipelines ze beobachten fir sécher ze stellen datt se net méi no de Schlësselkëscht froen. De Problem ass datt Apple et eis net einfach mécht den Auto Modus ze benotzen, awer wann Dir et fäerdeg bréngt, wäert alles gutt sinn.
fastlane init
Fir Fastlane an engem Projet ze benotzen, lafen fastlane init
. Follegt einfach
An Ärem Projet Verzeechnes, lafen dës Kommandoen:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
Fastlane freet no enger Basiskonfiguratioun an erstellt dann e Fastlane Dossier am Projet mat dräi Dateien:
1. fastlane/Appfile
Hei ass näischt komplizéiert. Gitt einfach sécher datt Är Apple ID an App ID richteg sinn.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
definéiert d'Bauschrëtt. Mir benotzen vill Fastlane's agebaute Featuren, sou datt och hei alles kloer ass. Mir kreéieren eng Zeil déi Zertifikater kritt, d'Versammlung ausféiert an eropluet op TestFlight. Dir kënnt dëse Prozess a verschidden Aufgaben opdeelen wann néideg. All dës Operatiounen (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) si schonn a Fastlane abegraff.
Actions get_certificates
и get_provisioning_profile
Zesummenhang mat der Ënnerschrëft Approche
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
Dëst ass eng fakultativ Datei, awer ech hunn et manuell erstallt fir de Standardausgangsverzeechnes z'änneren an d'Ausgab an den aktuellen Dossier ze setzen. Dëst vereinfacht CI. Wann Dir interesséiert, liesen iwwer gym
a seng Parameteren an
https://docs.fastlane.tools/actions/gym/
Eis .gitlab-ci.yml
Also, mir hunn e CI Leefer fir de Projet a mir si prett d'Pipeline ze testen. Loosst eis kucken wat mir an hunn .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
mat Ausféierung Programm shell
, fir datt mir eng propper Aarbechtsplaz fir all Versammlung hunn, an einfach ruffen flappybuild
fastlane, wéi uewen gesinn. Als Resultat kréie mir d'Versammlung, d'Ënnerschrëft an d'Deployment vun der leschter Versammlung am TestFlight.
Mir kréien och den Artefakt a späichere se mat der Versammlung. Maacht weg datt d'Format .ipa
ass en ënnerschriwwene ARM Ausféierbar deen net am Simulator leeft. Wann Dir Output fir de Simulator wëllt, füügt just d'Build-Zil bäi, déi et produzéiert, an enthält se dann am Artefaktwee.
Aner Ëmwelt Verännerlechen
Et ginn e puer Ëmweltvariablen hei, déi alles maachen.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Authentifikatioun fir Fastlane ass erfuerderlech fir am App Store ze authentifizéieren an op TestFlight eropzelueden. Fir dëst ze maachen, erstellt e Passwuert fir d'Applikatioun déi am CI benotzt gëtt. Detailer
Wann Dir zwee-Faktor Authentifikatioun hutt, erstellt eng Variabel FASTLANE_SESSION
(Instruktioune do).
FASTLANE_USER
и FASTLANE_PASSWORD
datt FASTLANE_USER
и FASTLANE_PASSWORD
. Detailer
Conclusioun
Dir kënnt gesinn wéi et alles funktionnéiert
Ech hoffen dat war hëllefräich an huet Iech inspiréiert fir mat iOS Builds an engem GitLab Projet ze schaffen. Hei ass eng aner CI_BUILD_ID
(fir inkrementell baut) zu
Aner cool Fonktioun vun fastlane ass
Sot eis an de Kommentaren iwwer Är Erfahrung an deelt Är Iddien fir GitLab fir iOS App Entwécklung ze verbesseren.
Source: will.com