iOS-alkalmazások közzététele az App Store-ban a GitLab és a fastlane segítségével

iOS-alkalmazások közzététele az App Store-ban a GitLab és a fastlane segítségével

Hogyan gyűjti össze, írja alá és teszi közzé a GitLab with fastlane iOS alkalmazásokat az App Store-ban.

Nemrég volt nálunk bejegyzés arról, hogyan lehet gyorsan felépíteni és futtatni egy Android-alkalmazást a GitLab és Fastlane. Itt látni fogjuk, hogyan lehet iOS-alkalmazást felépíteni és futtatni, majd közzétenni a TestFlight-on. Nézd meg, milyen klassz Változást végzek egy iPad Pro-n, GitLab Web IDE-vel, fogom az összeállítást, és ugyanazon az iPad Pro-n kapok frissítést az alkalmazás tesztverziójához, ahol fejlesztettem.

Itt fogjuk venni egyszerű iOS-alkalmazás a Swift-en, akivel a videót rögzítettem.

Néhány szó az Apple Store konfigurációjáról

Szükségünk lesz egy App Store alkalmazásra, terjesztési tanúsítványokra és egy létesítési profilra, hogy mindent összekapcsoljunk.

A legnehezebb itt az aláírási jogok beállítása az App Store-ban. Remélem, erre magadtól is rájössz. Ha még új vagy, akkor eligazítom a helyes irányt, de az Apple-tanúsítványok kezelésének bonyodalmairól itt nem fogunk beszélni, és ezek folyamatosan változnak. Ez a bejegyzés segít az indulásban.

Alkalmazásaim

Szüksége van egy alkalmazásra az App Store Connectben, hogy rendelkezzen azonosítóval a konfigurációhoz .xcodebuild. A profil és az alkalmazásazonosító egyesíti a kódösszeállításokat, az árakat és a rendelkezésre állást, valamint a TestFlight konfigurációt a tesztalkalmazások felhasználók számára történő terjesztéséhez. Ne végezzen nyilvános tesztelést, a privát tesztelés elegendő, ha kis csoportja van, egyszerű a beállítás, és nincs szüksége további engedélyekre az Apple-től.

Inicializálási profil

Az alkalmazás beállításán kívül iOS terjesztési és fejlesztési kulcsokra van szükség, amelyeket az Apple Developer Console Tanúsítványok, azonosítók és profilok szakaszában hoztak létre. Mindezek a tanúsítványok összevonhatók egy kiépítési profilba.

A hitelesített felhasználóknak képesnek kell lenniük tanúsítványok létrehozására, ellenkező esetben a lépéseket bizonygat és sóhajt hibát fog látni.

más lehetőségek

Ezen az egyszerű módszeren kívül más módszerek is vannak a tanúsítványok és profilok konfigurálására. Tehát, ha másképp dolgozik, akkor lehet, hogy alkalmazkodnia kell. A legfontosabb dolog az, hogy konfigurációra van szükség .xcodebuild, amely a szükséges fájlokra mutat, és a kulcstartónak elérhetőnek kell lennie a felépített számítógépen annak a felhasználónak, akinek a neve alatt a futó fut. A digitális aláíráshoz a fastlane-t használjuk, és ha problémái vannak, vagy többet szeretne tudni, nézze meg az adatait dokumentáció a digitális aláírásokról.

Ebben a példában ezt a megközelítést használom bizonygat és sóhajt, de valós használatra valószínűleg jobban megfelel mérkőzés.

A GitLab és a fastlane előkészítése

A CI Runner előkészítése

Miután összegyűjtöttük ezeket az adatokat, áttérünk a GitLab futtatójának konfigurációjára a MacOS eszközön. Sajnos csak iOS-alkalmazásokat készíthet MacOS rendszeren. De minden változhat, és ha előrelépésre számít ezen a területen, tartsa szemmel az olyan projekteket, mint pl xcbuild и jel, és a belső feladatunk gitlab-ce#57576.

A futószalag beállítása nagyon egyszerű. Kövesse az áramot utasításokat a GitLab Runner beállításához macOS rendszeren.

Jegyzet. A futónak futtatható programot kell használnia shell. Erre azért van szükség, hogy az iOS-t macOS-re építse, hogy közvetlenül felhasználóként működjön, nem pedig tárolókon keresztül. Ha használ shell, az építés és a tesztelés futó felhasználóként történik, közvetlenül a build gazdagépen. Nem olyan biztonságos, mint a konténerek, ezért jobb böngészni biztonsági dokumentációtígy nem maradsz le semmiről.

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 Keychain-t ezen a gazdagépen úgy kell konfigurálni, hogy hozzáférjenek az Xcode-hoz szükséges kulcsokhoz. Ennek tesztelésének legegyszerűbb módja, ha bejelentkezik a buildet futtató felhasználóként, és megpróbálja manuálisan felépíteni. Ha a rendszer hozzáférést kér a kulcstartóhoz, válassza a Mindig engedélyezze, hogy a CI működjön. Érdemes lehet bemenni és megfigyelni az első pár csővezetéket, hogy megbizonyosodjunk arról, hogy nem kérik többé a kulcstartót. Az a baj, hogy az Apple nem könnyíti meg az Automatic mód használatát, de ha egyszer beindul, minden rendben lesz.

fastlane init

A gyorssáv használatához egy projektben futtassa fastlane init. Csak kövess utasítások a fastlane telepítéséhez és futtatásához, különösen az arról szóló részben Gemfile, mert gyors és kiszámítható indításra van szükségünk egy automatizált CI-csővezetéken keresztül.

A projektkönyvtárban futtassa a következő parancsokat:

xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init

A fastlane alapkonfigurációt kér, majd létrehoz egy fastlane mappát a projektben három fájllal:

1. fastlane/Appfile

Nincs itt semmi bonyolult. Csak győződjön meg arról, hogy az Apple ID és az App ID helyes.

app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address

2. fastlane/Fastfile

Fastfile meghatározza az építési lépéseket. Nagyon sok fastlane beépített funkciót használunk, így itt is minden világos. Létrehozunk egy sort, amely megkapja a tanúsítványokat, elvégzi az összeállítást és feltölti a TestFlight-ba. Ezt a folyamatot szükség esetén különböző feladatokra oszthatja fel. Mindezek a műveletek (get_certificates, get_provisioning_profile, gym и upload_to_testflight) már szerepelnek a fastlane-ben.

Tevékenység get_certificates и get_provisioning_profile az aláírási megközelítéssel kapcsolatos bizonygat és sóhajt. Ha használ mérkőzés vagy bármi, változtass.

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

Ez egy opcionális fájl, de manuálisan hoztam létre, hogy módosítsam az alapértelmezett kimeneti könyvtárat, és helyezzem a kimenetet az aktuális mappába. Ez leegyszerűsíti a CI-t. Ha érdekel, olvass róla gym és paraméterei benne dokumentáció.

https://docs.fastlane.tools/actions/gym/

A miénk .gitlab-ci.yml

Tehát van egy CI futónk a projekthez, és készen állunk a csővezeték tesztelésére. Lássuk, mi van benne .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

Mindent megtesz! A formátumot igény szerint UTF-8-ra állítottuk a fastlane számára, használjon stratégiát clone végrehajtó programmal shell, hogy minden összeállításhoz legyen tiszta munkaterületünk, és egyszerűen hívjon flappybuild gyorssáv, amint fentebb látható. Ennek eredményeként megkapjuk a TestFlight legújabb összeállításának összeállítását, aláírását és telepítését.

Megkapjuk a műtárgyat is, és elmentjük az összeállítással együtt. Felhívjuk figyelmét, hogy a formátum .ipa egy aláírt ARM futtatható fájl, amely nem fut a szimulátorban. Ha kimenetet szeretne a szimulátorhoz, csak adja hozzá az azt létrehozó összeállítási célt, majd vegye fel a műtermék elérési útjába.

Egyéb környezeti változók

Van itt néhány környezeti változó, amitől minden működik.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

A fastlane hitelesítésre van szükség az App Store-ban történő hitelesítéshez és a TestFlight-ba való feltöltéshez. Ehhez hozzon létre egy jelszót a CI-ben használt alkalmazáshoz. Részletek itt.

Ha kétfaktoros hitelesítéssel rendelkezik, hozzon létre egy változót FASTLANE_SESSION (az ott található utasítások).

FASTLANE_USER и FASTLANE_PASSWORD

Hogy bizonygat és sóhajt kérésre inicializálási profilnak és tanúsítványoknak hívják, be kell állítania a változókat FASTLANE_USER и FASTLANE_PASSWORD. Részletek itt. Ez nem szükséges, ha más aláírási módot használ.

Összefoglalva

Láthatod, hogyan működik az egész az én egyszerű példámban.

Remélem, ez hasznos volt, és ihletet adott arra, hogy iOS buildekkel dolgozzon egy GitLab projektben. Itt van egy másik CI tippek a fastlane számára, minden esetre. Lehet használni CI_BUILD_ID (növekményes építményekhez) to automatikusan növekszik a verzió.

A fastlane másik nagyszerű tulajdonsága automatikus képernyőképek az App Store-hoz, amelyeket nagyon könnyű beállítani.

Mondja el nekünk a megjegyzésekben tapasztalatait, és ossza meg ötleteit a GitLab iOS-alkalmazások fejlesztéséhez való fejlesztésével kapcsolatban.

Forrás: will.com

Hozzászólás