Verëffentlechen iOS Uwendungen am App Store mat GitLab a Fastlane

Verëffentlechen iOS Uwendungen am App Store mat GitLab a Fastlane

Wéi GitLab mat Fastlane sammelt, ënnerschreift a publizéiert iOS Uwendungen am App Store.

Mir haten viru kuerzem Post iwwer wéi séier eng Android Applikatioun bauen a lafen mat GitLab an fastlane. Hei wäerte mir kucken wéi een eng iOS App bauen an ausféieren an se op TestFlight publizéieren. Kuckt wéi cool et ass Ech maachen eng Ännerung op engem iPad Pro mat GitLab Web IDE, Ech huelen d'Assemblée a kréien en Update op d'Testversioun vun der Applikatioun um selwechten iPad Pro wou ech se entwéckelt hunn.

Hei wäerte mir huelen einfach iOS App op Swift, mat deem ech de Video opgeholl hunn.

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 cert an sich Dir wäert e Feeler gesinn.

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 Dokumentatioun iwwer digital Ënnerschrëften.

An dësem Beispill benotzen ech d'Approche cert an sich, mee fir real Notzung ass et wahrscheinlech besser geegent Match spillen.

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 xcbuet и Zeechen, an eis intern Aufgab gitlab-ce#57576.

De Leefer opstellen ass ganz einfach. Follegt aktuell Instruktioune fir GitLab Runner op macOS opzestellen.

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 Sécherheet Dokumentatiounalso du verpasst näischt.

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 Uweisungen fir Installatioun an Lafen fastlane, besonnesch an der Rubrik iwwer Gemfile, Well mir brauchen séier a prévisibel Start duerch eng automatiséiert CI Pipeline.

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 cert an sich. Wann Dir benotzt Match spillen oder wat och ëmmer, Ännerungen maachen.

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

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

Все отлично! Mir setzen de Format op UTF-8 fir Fastlane wéi néideg, benotzen Strategie 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 hei.

Wann Dir zwee-Faktor Authentifikatioun hutt, erstellt eng Variabel FASTLANE_SESSION (Instruktioune do).

FASTLANE_USER и FASTLANE_PASSWORD

datt cert an sich den Initialiséierungsprofil an Zertifikater op Ufro genannt, musst Dir d'Variabelen astellen FASTLANE_USER и FASTLANE_PASSWORD. Detailer hei. Dëst ass net néideg wann Dir eng aner Ënnerschrëftmethod benotzt.

Conclusioun

Dir kënnt gesinn wéi et alles funktionnéiert a mengem einfache Beispill.

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 Tipps fir fastlane, just am Fall. Dir wëllt vläicht benotzen CI_BUILD_ID (fir inkrementell baut) zu automatesch Erhéijung Versioun.

Aner cool Fonktioun vun fastlane ass automatesch Screenshots fir den App Store, déi ganz einfach opzestellen.

Sot eis an de Kommentaren iwwer Är Erfahrung an deelt Är Iddien fir GitLab fir iOS App Entwécklung ze verbesseren.

Source: will.com

Setzt e Commentaire