
Hogyan gyűjti össze, írja alá és teszi közzé a GitLab a fastlane segítségével az iOS alkalmazásokat az App Store-ban.
Nemrég volt egy a GitLab és . Itt megnézzük, hogyan lehet összeállítani és elindítani egy iOS alkalmazást, majd közzétenni a TestFlighton. Nézd meg, mennyire klassz , készítem a buildet, és frissítést kapok az alkalmazás tesztverziójából ugyanazon az iPad Pro-n, ahol fejlesztettem.
Itt egy , amelyhez videót készítettem.
Néhány szó az Apple Store konfigurációjáról
Szükségünk lesz egy alkalmazásra az App Store-ban, terjesztési tanúsítványokra és inicializáló profilra, hogy mindent összekapcsoljunk.
A legnehezebb itt az aláírási jogok beállítása az App Store-ban. Remélem, ezzel magatok is elboldogultok. Ha újonc vagy, megadom a megfelelő irányt, de itt nem fogunk a tanúsítványok kezelésének finomságairól beszélni, ráadásul ezek állandóan változnak. Ez a bejegyzés segít elkezdeni a munkát.
Az alkalmazásaim
Szükséges egy alkalmazás az App Store Connectben, hogy legyen egy ID a konfigurációhoz .xcodebuild. A profil és az alkalmazás ID összekapcsolják a kódépítményeket, az árakat és a rendelkezésre állást, valamint a TestFlight konfigurációját, hogy tesztelési alkalmazásokat terjeszthessünk a felhasználók között. Ne csinálj nyilvános tesztelést, ha van egy kis csoportod, elegendő a magán tesztelés, ha egyszerű a beállítás és nem igényel plusz engedélyt az Apple-től.
Inicializáló profil
Az alkalmazás beállítása mellett szükség van az Apple Developer Console-ban a Certificates, Identifiers & Profiles (Tanúsítványok, azonosítók és profilok) alatt létrehozott iOS terjesztési és fejlesztési kulcsokra is. Mindezek a tanúsítványok egyesíthetők egy inicializáló profilban.
Azok a felhasználók, akik azonosítást végeznek, képesek kell, hogy legyenek tanúsítványokat létrehozni, különben a lépéseknél hibát fogsz látni.
Egyéb lehetőségek
Ezen egyszerű módszer mellett más lehetőségek is vannak a tanúsítványok és profilok beállítására. Tehát, ha más módon dolgozol, lehet, hogy át kell építened a folyamatot. A legfontosabb - szükséged lesz egy konfigurációra .xcodebuild, amely a megfelelő fájlokra mutat, és a kulcstartónak elérhetőnek kell lennie a build gépen annak a felhasználónak a nevében, akinek a neve alatt a futtató működik. A digitális aláíráshoz a fastlane-t használjuk, és ha problémák vannak, vagy többet szeretnél tudni, nézd meg a részleteiket. .
Ebben a példában egy megközelítést használok , de valódi alkalmazás esetén talán jobb, ha inkább .
GitLab és fastlane előkészítése
CI Runner előkészítése
Miután összegyűjtöttük ezeket az adatokat, áttérünk a GitLab runner konfigurálására MacOS eszközön. Sajnos, iOS alkalmazásokat valójában csak MacOS-en lehet fejleszteni. De minden megváltozhat, és ha vársz az előrelépésekre ezen a területen, kövesd a projekteket, mint például és , és a belső feladatunk .
A runner beállítása nagyon egyszerű. Kövesd a legfrissebb .
Megjegyzés: A runnernek használni kell egy futtatható programot shell. Ez elengedhetetlen az iOS építkezéshez MacOS-en, hogy közvetlenül felhasználóként működjön, ne konténerek segítségével. Ha te shell, az építés és tesztelés a runner felhasználójaként, közvetlenül a build gazdán zajlik. Ez nem olyan biztonságos, mint a konténerek, ezért érdemes átnézni a , hogy ne hagyj ki semmit.
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 startAz Apple kulcskötetet be kell állítani ezen a gazdán, hogy hozzáférjen a kulcsokhoz, amelyekre szükség van az Xcode készítéséhez. A legegyszerűbb mód ezt tesztelni, ha bejelentkezel, mint az a felhasználó, aki elindítja az építést, és megpróbálsz manuálisan építeni. Ha a rendszer kér hozzáférést a kulcskötetet, válaszd a 'Mindig engedélyez' opciót, hogy a CI működjön. Lehet, érdemes bejelentkezni és figyelni az első pár pipeline-t, hogy megbizonyosodj róla, hogy már nem kérik a kulcskötetet. Gond, hogy az Apple nem egyszerűsíti meg a munkát automatikus üzemmódban, de amikor beállítod, minden rendben lesz.
fastlane init
A fastlane használatához a projektben futtass fastlane init. Csak kövesd , különösen a -re, mert gyors és kiszámítható indításra van szükségünk az automatikus CI vezetéken.
A projekt mappában futtasd ezeket a parancsokat:
xcode-select --install
sudo gem install fastlane -NV
# Alternatívaként Homebrew használatával
# brew cask install fastlane
fastlane initA fastlane kérni fog egy alap konfigurációt, majd létrehoz egy fastlane mappát a projektben, három fájllal:
1. fastlane/Appfile
Itt semmi bonyolult. Csak ellenőrizd, hogy az Apple ID és az alkalmazás ID helyesen van megadva.
app_identifier("com.vontrance.flappybird") # Az alkalmazás bundle azonosítója
apple_id("your-email@your-domain.com") # Az Ön Apple email címe2. fastlane/Fastfile
Fastfile meghatározza a build lépéseit. Sok beépített funkciót használunk a fastlane-nel, így itt is minden világos. Létrehozunk egy sort, amely megszerzi a tanúsítványokat, elvégzi a buildet és feltölti azt a TestFlight-ra. Ha szükséges, ezt a folyamatot külön feladatokra oszthatja. Minden művelet (get_certificates, get_provisioning_profile, gym és upload_to_testflight) már benne van a fastlane-ben.
Műveletek get_certificates és get_provisioning_profile kapcsolódnak a jogosultsági megközelítéshez . Ha Ön a vagy bármi mást használ, módosítsa.
default_platform(:ios)
platform :ios do
desc "Alkalmazás buildelése"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end3. fastlane/Gymfile
Ez opcionális fájl, de manuálisan hoztam létre, hogy megváltoztassam az alapértelmezett kimeneti mappát, és a kimenetet a jelenlegi mappába helyezzem. Ez egyszerűsíti a CI-t. Ha ez érdekli, olvasson a gym és annak paramétereiről a .
https://docs.fastlane.tools/actions/gym/CMS tárhelyünk .gitlab-ci.yml
Tehát van CI-futtatónk a projekthez, és készen állunk a pipeline tesztelésére. Nézzük meg, mi van a .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.ipaMinden rendben van! , clone stratégiát használva clone a futtatóprogrammal shell, hogy legyen egy tiszta munkaterület minden build számára, és egyszerűen meghívjuk a flappybuild fastlane-t, ahogy fent látható. Végül kapunk egy buildet, aláírást és az utolsó buildet a TestFlight-ba telepítjük.
Kapunk egy artefaktumot is, és megtartjuk a builddel. Ne feledje, hogy a formátum .ipa — ez egy ARM aláírt futtatható fájl, ami nem futtatható emulátorban. Ha szeretne kimenetet az emulátorhoz, egyszerűen adjon hozzá egy build célpontot, amely azt előállítja, majd kapcsolja be az artefaktum útvonalába.
Egyéb környezeti változók
Itt van néhány környezeti változó, ami mindent működtet.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD és FASTLANE_SESSION
Az App Store-hoz való hitelesítéshez és a TestFlight-ra való feltöltéshez szükséges a fastlane hitelesítés. Ehhez hozzon létre egy alkalmazás jelszót, amelyet CI-ben használunk. Részletek .
Ha kétfaktoros hitelesítést használ, hozzon létre egy változót, FASTLANE_SESSION (utasítások ott találhatók).
FASTLANE_USER és FASTLANE_PASSWORD
Ahhoz, hogy kérte a profil inicializálását és a tanúsítványokat igény szerint, meg kell adnia a változókat. FASTLANE_USER és FASTLANE_PASSWORDRészletek . Ez nem szükséges, ha más aláírási módszert használ.
Végül
Nézd meg, hogyan működik mindez .
Remélem, hasznos volt, és inspiráltalak, hogy foglalkozz az iOS buildjeivel a GitLab projektben. Íme még néhány a fastlane-hez, hátha szeretnéd használni CI_BUILD_ID (incrementális buildekhez), hogy .
Még egy nagyszerű lehetőség a fastlane-ben — az App Store számára, amelyeket nagyon könnyű beállítani.
Oszt meg a tapasztalataidat a megjegyzésekben, és osszd meg az ötleteidet a GitLab iOS alkalmazásfejlesztésének fejlesztésére.
Forrás: habr.com
