Fa'asalalauina o talosaga iOS i le Faleoloa Fa'atau ma GitLab ma fastlane

Fa'asalalauina o talosaga iOS i le Faleoloa Fa'atau ma GitLab ma fastlane

E fa'afefea ona aoina e GitLab fa'atasi ai ma le fastlane, fa'ailoga ma fa'asalalau talosaga a iOS ile Faleoloa.

Sa matou maua talu ai nei lafo e uiga i le auala e vave fausia ma taʻavale se talosaga Android ma GitLab ma auala vavave. O iinei o le a tatou vaʻai ai pe faʻapefea ona fausia ma faʻatautaia se iOS app ma faʻasalalau i TestFlight. Siaki le manaia O lo'o ou faia se suiga ile iPad Pro ile GitLab Web IDE, Ou te ave le faʻapotopotoga ma maua se faʻafouga i le suʻega faʻataʻitaʻiga o le talosaga i luga ole iPad Pro tutusa lea na ou atiaʻe ai.

O iinei o le a tatou ave ai faigofie iOS app i Swift, lea na ou pueina ai le vitio.

O nai upu e uiga i le Apple Store configuration

Matou te manaʻomia se App Store app, tufatufa tusi pasi, ma se faʻamatalaga tuʻuina atu e faʻapipiʻi faʻatasi mea uma.

O le mea pito sili ona faigata iinei o le faʻatulagaina o aia tatau i le App Store. Ou te faʻamoemoe e mafai ona e mafaufauina lenei mea mo oe lava ia. Afai e te fou, o le a ou faasino oe i le itu saʻo, ae matou te le talanoa e uiga i le lavelave o le puleaina o tusipasi Apple iinei, ma o loʻo suia pea. O lenei pou o le a fesoasoani ia te oe e amata ai.

O a'u polokalame

E te mana'omia se app ile App Store Connect ina ia iai sau ID mo le fa'atulagaina .xcodebuild. O le fa'ailoga ma le ID fa'aoga e tu'ufa'atasia ai le fausiaina o tulafono, tau ma le avanoa, ma le fa'atulagaina o le TestFlight mo le tufatufaina atu o tusi talosaga i tagata fa'aoga. Aua le faia faʻataʻitaʻiga lautele, o le a lava suʻega tumaoti pe afai e iai sau vaega toʻaitiiti, faigofie faʻatulagaina, ma e le manaʻomia ni faʻatagaga faaopoopo mai Apple.

Fa'amatalaga amata

I le faaopoopo atu i le seti app, e te manaʻomia le tufatufaina o iOS ma ki atinaʻe na faia i le Tusi Faamaonia, Faʻamatalaga & Faʻamatalaga vaega o le Apple Developer console. O nei tusi pasi uma e mafai ona tu'ufa'atasia i se fa'amatalaga tu'uina atu.

O tagata faʻaoga o le a faʻamaonia e manaʻomia ona mafai ona faia tusi faamaonia, a leai o laasaga tusi faamaonia ma mapuea o le ae iloa se mea sese.

isi filifiliga

E ese mai i lenei auala faigofie, o loʻo i ai isi auala e faʻapipiʻi ai tusi faamaonia ma talaaga. O lea la, afai e te galue ese, atonu e tatau ona e fetuunai. O le mea pito sili ona taua e te manaʻomia le faʻatulagaina .xcodebuild, lea o le a faasino i faila talafeagai, ma le keychain e tatau ona avanoa i luga o le komepiuta fausia mo le tagata faʻaoga i lalo o lona igoa o loʻo tamoe ai le tagata tamoʻe. Mo saini numera matou te fa'aogaina le fastlane, ma afai e iai ni fa'afitauli pe e te fia iloa atili, siaki a latou fa'amatalaga fa'amaumauga e uiga i saini numera.

I lenei faʻataʻitaʻiga o loʻo ou faʻaaogaina le auala tusi faamaonia ma mapuea, ae mo le faʻaoga moni atonu e sili atu ona fetaui fetauiga.

Saunia le GitLab ma le laina vave

Saunia CI Runner

I le aoina uma o nei faʻamatalaga, matou te agai atu i le faʻatulagaina o le GitLab runner i luga o le masini MacOS. Ae paga lea, e mafai ona e faia na'o iOS apps ile MacOS. Ae e mafai ona suia mea uma, ma afai e te faʻamoemoeina le alualu i luma i lenei vaega, vaʻavaʻai i galuega faʻapena xcbuild и fa'ailoga, ma la tatou galuega i totonu gitlab-ce#57576.

O le setiina o le tagata tamo'e e matua faigofie lava. Mulimuli i le taimi nei faatonuga mo le setiina o le GitLab Runner ile macOS.

Manatua. E tatau i le tagata tamo'e ona fa'aoga se polokalame fa'atino shell. E manaʻomia lenei mea e fausia ai iOS i macOS e galue saʻo ai o se tagata faʻaoga nai lo pusa. Afai o loʻo e faʻaaogaina shell, fale ma suʻega e faia e pei o le tagata tamoʻe, tuusaʻo i luga o le fale talimalo. E le malu puipuia e pei o koneteina, ia sili atu le su'esu'e pepa saogalemuina ia e le misia se mea.

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 e tatau ona faʻatulagaina i luga o lenei talimalo ma avanoa i ki e manaʻomia e Xcode ona fausia. O le auala pito sili ona faigofie e faʻataʻitaʻi ai lenei mea o le ulufale i totonu o le tagata faʻaoga o le a faʻatautaia le fausiaina ma taumafai e fau ma le lima. Afai e fesili le faiga mo le avanoa i filifili ki, filifili Fa'ataga pea mo CI e galue. Atonu e aoga le alu i totonu ma matamata i le lua muamua o paipa ina ia mautinoa latou te le toe fesili mo le ki. O le fa'alavelave e le fa'afaigofieina e Apple ona matou fa'aogaina le Auto mode, ae o le taimi lava e te alu ai, o le a lelei mea uma.

laina vave init

Ina ia fa'aoga le ala vave i se galuega, tamo'e fastlane init. Tau lava mulimuli fa'atonuga mo le fa'apipi'iina ma le fa'agaoioia o le laina vave, aemaise i le vaega e uiga i Gemfile, aua matou te manaʻomia le faʻalauiloaina vave ma faʻamaonia e ala i se paipa CI otometi.

I lau lisi o galuega faatino, fa'atonu tulafono nei:

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

fastlane o le a fesili mo se faʻatulagaga faʻavae ona fai lea o se faila vave i totonu o le poloketi ma faila e tolu:

1. fastlane/Appfile

E leai se mea faigata iinei. Tau lava ia mautinoa e saʻo lau Apple ID ma le App ID.

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

2. fastlane/Fastfile

Fastfile fa'amatala laasaga fau. Matou te faʻaaogaina le tele o faʻaogaina o le fastlane, o lea e manino mea uma iinei foi. Matou te fatuina se laina se tasi e maua ai tusi faamaonia, faia le faʻapotopotoga ma tuʻuina atu i TestFlight. E mafai ona e vaevaeina lenei faiga i ni galuega eseese pe a manaʻomia. O nei gaioiga uma (get_certificates, get_provisioning_profile, gym и upload_to_testflight) ua uma ona aofia i le laina vave.

Gaioiga get_certificates и get_provisioning_profile e feso'ota'i ma le faiga saini tusi faamaonia ma mapuea. Afai o loʻo e faʻaaogaina fetauiga po o le a lava, fai suiga.

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

O se faila e filifili ai, ae na ou faia ma le lima e sui ai le lisi o galuega faatino ma tuu le mea e fai i le faila o loʻo iai nei. O lenei mea e faʻafaigofie ai CI. Afai e fiafia, faitau e uiga i gym ma ona tuaoi i fa'amaumauga.

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

Matou .gitlab-ci.yml

O lea la, o loʻo i ai le matou CI tamoʻe mo le poloketi ma ua matou sauni e suʻe le paipa. Sei o tatou vaai po o le a le mea o iai .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

Все отлично! Matou te setiina le faatulagaga i le UTF-8 mo le laina vave pe a manaʻomia, fa'aaoga fuafuaga clone faʻatasi ma le faʻatinoina o le polokalame shell, ina ia maua se matou potu faigaluega mama mo faʻapotopotoga taʻitasi, ma na o le valaʻau flappybuild auala vave, e pei ona vaaia i luga. O se taunuuga, matou te maua le faʻapotopotoga, saini ma le faʻapipiʻiina o le faʻapotopotoga fou i TestFlight.

Matou te maua foi le mea taua ma faʻasaoina i le faʻapotopotoga. Faamolemole ia matau o le faatulagaga .ipa o se ARM saini e mafai ona faʻaaogaina e le taʻavale i le simulator. Afai e te manaʻo i mea e fai mo le simulator, naʻo le faʻaopoopoina o le faʻatulagaina o mea e maua ai, ona faʻapipiʻi lea i le ala faʻapitoa.

O isi suiga o le siosiomaga

O lo'o i ai ni nai fesuiaiga o le siosiomaga iinei e faʻaogaina ai mea uma.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

E mana'omia le fa'amaoni mo le laina vave e fa'amaonia i le Faleoloa App ma tu'u i le TestFlight. Ina ia faia lenei mea, fatuina se upu faʻamaonia mo le talosaga o le a faʻaaogaina ile CI. Fa'amatalaga iinei.

Afai e iai sau fa'amaoniga e lua, fai se fesuiaiga FASTLANE_SESSION (faatonuga iina).

FASTLANE_USER и FASTLANE_PASSWORD

lea tusi faamaonia ma mapuea ta'ua le fa'ailoga amata ma tusi pasi i luga o le talosaga, e tatau ona e seti le fesuiaiga FASTLANE_USER и FASTLANE_PASSWORD. Fa'amatalaga iinei. E le mana'omia lenei mea pe afai o lo'o e fa'aogaina se isi auala e saini ai.

I le faaiuga

E mafai ona e vaʻai pe faʻafefea uma i la'u faataitaiga faigofie.

Ou te faʻamoemoe na fesoasoani lenei mea ma faʻaosofia oe e galue ma iOS fausia i se galuega GitLab. O le isi lea CI fesoasoani mo le auala vave, i le tulaga. Atonu e te manaʻo e faʻaaoga CI_BUILD_ID (mo fau fa'aopoopo) i otometi fa'aopoopo fa'amatalaga.

O le isi uiga manaia o le fastlane o le screenshots otometi mo le Faleoloa App, lea e matua faigofie ona seti.

Ta'u mai ia i matou i fa'amatalaga e uiga i lou poto masani ma fa'asoa mai ou manatu mo le fa'aleleia atili o le GitLab mo le atina'eina o polokalama iOS.

puna: www.habr.com

Faaopoopo i ai se faamatalaga