iOS-sovellusten julkaiseminen App Storessa GitLabin ja fastlanen avulla

iOS-sovellusten julkaiseminen App Storessa GitLabin ja fastlanen avulla

Kuinka GitLab with fastlane kerää, allekirjoittaa ja julkaisee iOS-sovelluksia App Storeen.

Meillä oli äskettäin viesti Android-sovelluksen nopeasta rakentamisesta ja käyttämisestä GitLabin ja ohituskaista. Täällä näemme, kuinka iOS-sovellus luodaan ja suoritetaan ja julkaistaan ​​TestFlightissa. Katso kuinka siistiä se on Olen tekemässä muutosta iPad Prossa, jossa on GitLab Web IDE, Otan kokoonpanon ja saan päivityksen sovelluksen testiversioon samalle iPad Prolle, jossa kehitin sen.

Tässä otamme yksinkertainen iOS-sovellus Swiftissä, jonka kanssa kuvasin videon.

Muutama sana Apple Store -kokoonpanosta

Tarvitsemme App Store -sovelluksen, jakeluvarmenteita ja hallintaprofiilin yhdistääksemme kaiken.

Vaikein asia tässä on allekirjoitusoikeuksien määrittäminen App Storessa. Toivon, että voit selvittää tämän itse. Jos olet uusi, osoitan sinut oikeaan suuntaan, mutta emme puhu tässä Apple-sertifikaattien hallinnan monimutkaisuudesta, ja ne muuttuvat jatkuvasti. Tämä viesti auttaa sinua pääsemään alkuun.

Sovellukseni

Tarvitset sovelluksen App Store Connectissa, jotta sinulla on tunnus määritystä varten .xcodebuild. Profiili ja sovellustunnus yhdistävät koodin koontiversiot, hinnoittelun ja saatavuuden sekä TestFlight-määritykset testisovellusten jakamiseksi käyttäjille. Älä tee julkista testausta, yksityinen testaus riittää, jos sinulla on pieni ryhmä, helppo asennus, etkä tarvitse Applen lisäoikeuksia.

Alustusprofiili

Sovelluksen asennuksen lisäksi tarvitset iOS-jakelu- ja kehitysavaimia, jotka on luotu Apple Developer -konsolin Certificates, Identifiers & Profiles -osiossa. Kaikki nämä varmenteet voidaan yhdistää provisiointiprofiiliksi.

Käyttäjien, jotka todennetaan, on voitava luoda varmenteita, muuten vaiheet varma ja huokaus näet virheen.

muita vaihtoehtoja

Tämän yksinkertaisen menetelmän lisäksi on muitakin tapoja määrittää varmenteita ja profiileja. Joten jos työskentelet eri tavalla, saatat joutua sopeutumaan. Tärkeintä on, että tarvitset konfiguroinnin .xcodebuild, joka osoittaa tarvittaviin tiedostoihin, ja avainnipun on oltava käytettävissä koontitietokoneessa käyttäjälle, jonka nimellä runner toimii. Digitaaliseen allekirjoitukseen käytämme fastlanea, ja jos on ongelmia tai haluat tietää lisää, katso niiden tiedot dokumentaatio digitaalisista allekirjoituksista.

Tässä esimerkissä käytän lähestymistapaa varma ja huokaus, mutta todelliseen käyttöön se sopii luultavasti paremmin ottelu.

Valmistellaan GitLabia ja fastlanea

Valmistellaan CI Runneria

Kun kaikki nämä tiedot on kerätty, siirrymme GitLab-apuohjelman konfigurointiin MacOS-laitteella. Valitettavasti voit tehdä iOS-sovelluksia vain MacOS:ssa. Mutta kaikki voi muuttua, ja jos odotat edistymistä tällä alueella, pidä silmällä sellaisia ​​​​projekteja kuin xcbuild и merkkija sisäinen tehtävämme gitlab-ce#57576.

Juoksun asentaminen on hyvin yksinkertaista. Seuraa nykyistä ohjeet GitLab Runnerin määrittämiseen macOS:ssä.

Huomautus. Juoksijan tulee käyttää suoritettavaa ohjelmaa shell. Tämä vaaditaan iOS:n rakentamiseen macOS:lle toimiakseen suoraan käyttäjänä säilöjen kautta. Jos käytät shell, rakentaminen ja testaus suoritetaan runner-käyttäjänä suoraan koontipalvelimella. Se ei ole yhtä turvallinen kuin kontit, joten on parempi selata turvallisuusasiakirjatjoten et menetä mitään.

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 on määritettävä tälle isännälle, jotta se voi käyttää avaimia, jotka Xcode tarvitsee rakentaakseen. Helpoin tapa testata tämä on kirjautua sisään käyttäjänä, joka suorittaa koontiversion ja yrittää rakentaa sen manuaalisesti. Jos järjestelmä pyytää pääsyä avainnippuun, valitse Salli aina, jotta CI toimii. Saattaa olla syytä mennä sisään ja katsoa pari ensimmäistä putkea varmistaaksesi, etteivät he enää pyydä avaimenperää. Ongelmana on, että Apple ei tee Auto-tilan käytöstä helppoa, mutta kun saat sen käyntiin, kaikki on hyvin.

fastlane init

Jos haluat käyttää fastlanea projektissa, suorita fastlane init. Seuraa vain ohjeet fastlanen asentamiseen ja käyttöön, erityisesti osiossa aiheesta Gemfile, koska tarvitsemme nopean ja ennustettavan käynnistyksen automatisoidun CI-putken kautta.

Suorita projektihakemistossasi nämä komennot:

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

fastlane pyytää perusasetuksia ja luo sitten projektiin fastlane-kansion, jossa on kolme tiedostoa:

1. fastlane/Appfile

Tässä ei ole mitään monimutkaista. Varmista vain, että Apple ID ja App ID ovat oikein.

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

2. fastlane/Fastfile

Fastfile määrittää rakennusvaiheet. Käytämme paljon fastlanen sisäänrakennettuja ominaisuuksia, joten kaikki on selvää täälläkin. Luomme yhden rivin, joka vastaanottaa varmenteita, suorittaa kokoonpanon ja lataa sen TestFlightiin. Voit tarvittaessa jakaa tämän prosessin eri tehtäviin. Kaikki nämä toiminnot (get_certificates, get_provisioning_profile, gym и upload_to_testflight) ovat jo mukana fastlanessa.

Aktiivisuus get_certificates и get_provisioning_profile liittyvät allekirjoitustapaan varma ja huokaus. Jos käytät ottelu tai mitä tahansa, tee muutoksia.

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

Tämä on valinnainen tiedosto, mutta loin sen manuaalisesti muuttaakseni oletustulosteen hakemistoa ja sijoittaakseni tulosteen nykyiseen kansioon. Tämä yksinkertaistaa CI:tä. Jos kiinnostaa, lue aiheesta gym ja sen parametrit dokumentointi.

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

Meidän .gitlab-ci.yml

Meillä on siis projektiin CI-runner ja olemme valmiita testaamaan putkilinjaa. Katsotaan mitä meillä on .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

Kaikki on! Asetamme muodoksi UTF-8 fastlanelle tarpeen mukaan, käytä strategiaa clone suorittavan ohjelman kanssa shell, jotta meillä on puhdas työtila jokaiselle kokoonpanolle, ja soita flappybuild fastlane, kuten yllä näkyy. Tämän seurauksena saamme TestFlightin uusimman kokoonpanon, allekirjoituksen ja käyttöönoton.

Saamme myös artefaktin ja tallennamme sen kokoonpanon mukana. Huomaa, että muoto .ipa on allekirjoitettu ARM-suoritettava tiedosto, joka ei toimi simulaattorissa. Jos haluat tulosteen simulaattorille, lisää vain sen tuottava koontikohde ja sisällytä se sitten artefaktipolkuun.

Muut ympäristömuuttujat

Tässä on pari ympäristömuuttujaa, jotka saavat kaiken toimimaan.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Fastlane-todennus vaaditaan todentamiseen App Storessa ja lataamiseen TestFlightiin. Voit tehdä tämän luomalla salasanan sovellukselle, jota käytetään CI:ssä. Yksityiskohdat täällä.

Jos sinulla on kaksivaiheinen todennus, luo muuttuja FASTLANE_SESSION (ohjeet siellä).

FASTLANE_USER и FASTLANE_PASSWORD

Että varma ja huokaus kutsutaan alustusprofiiliksi ja varmenteiksi pyynnöstä, sinun on asetettava muuttujat FASTLANE_USER и FASTLANE_PASSWORD. Yksityiskohdat täällä. Tämä ei ole välttämätöntä, jos käytät toista allekirjoitustapaa.

lopuksi

Voit nähdä, kuinka kaikki toimii yksinkertaisessa esimerkissäni.

Toivon, että tämä oli hyödyllinen ja inspiroi sinua työskentelemään iOS-versioiden kanssa GitLab-projektissa. Tässä on toinen CI-vinkkejä fastlanelle varmuuden vuoksi. Haluat ehkä käyttää CI_BUILD_ID (inkrementaalisille rakennuksille) to automaattisesti lisää versiota.

Toinen fastlanen hieno ominaisuus on automaattiset kuvakaappaukset App Storeen, jotka on erittäin helppo asentaa.

Kerro meille kommenteissa kokemuksistasi ja jaa ideasi GitLabin parantamiseksi iOS-sovelluskehitykseen.

Lähde: will.com

Lisää kommentti