iOS alkalmazásokat publikálunk az App Store-ban GitLab és fastlane segítségével

iOS alkalmazásokat publikálunk az App Store-ban GitLab és fastlane segítségével

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 bejegyzésünk arról, hogyan lehet gyorsan összeállítani és elindítani egy Android alkalmazást a GitLab és fastlane. 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 módosítást végzek az iPad Pro-n a GitLab Web IDE segítségével, 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 egyszerű iOS alkalmazást veszünk alapul Swiftben, 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 cert és sigh 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. digitális aláírásokról szóló dokumentáció.

Ebben a példában egy megközelítést használok cert és sigh, de valódi alkalmazás esetén talán jobb, ha inkább match.

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 xcbuild és isign, és a belső feladatunk gitlab-ce#57576.

A runner beállítása nagyon egyszerű. Kövesd a legfrissebb GitLab Runner beállítási útmutatóit macOS-re.

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 biztonsági dokumentációt, 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 start

Az 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 a fastlane telepítési és futtatási útmutatóját, különösen a Gemfile-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 init

A 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íme

2. 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 cert és sigh. Ha Ön a match 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
end

3. 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 dokumentáció.

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.ipa

Minden rendben van! Az UTF-8 formátumot állítjuk be a fastlane-re, ahogy kell,, 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 itt.

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 cert és sigh 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 itt. 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 az én egyszerű példámban.

Remélem, hasznos volt, és inspiráltalak, hogy foglalkozz az iOS buildjeivel a GitLab projektben. Íme még néhány tipp a CI-hez a fastlane-hez, hátha szeretnéd használni CI_BUILD_ID (incrementális buildekhez), hogy automatikusan növelje a verziót.

Még egy nagyszerű lehetőség a fastlane-ben — automatikus képernyőképek 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

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster