Avaldame iOS-i rakendusi App Store'is GitLabi ja fastlane'i abil

Avaldame iOS-i rakendusi App Store'is GitLabi ja fastlane'i abil

Kuidas GitLab koos fastlane'iga kogub, allkirjastab ja avaldab iOS-i rakendusi App Store'is.

Hiljuti oli meil postitus selle kohta, kuidas kiiresti koguda ja kÀivitada Androidi rakendus GitLabi ja fastlane. Siin vaatame, kuidas koguda ja kÀivitada iOS-i rakendus ning avaldada see TestFlightis. Vaadake, kui Àge ma teen muudatuse iPad Pro-l GitLab Web IDE-s, vÔtan kogumise ja saan testversiooni vÀrskenduse sama iPad Pro-l, kus ma selle vÀlja töötasin.

Siin kasutame lihtsat iOS-i rakendust Swiftis, millega ma videot salvestasin.

MÔned sÔnad Apple Store'i konfiguratsioonist

Me vajame rakendust App Store'is, levitamise sertifikaate ja initsialiseerimise profiili, et kÔik kokku siduda.

K kĂ”ige keerulisem on siin Apple'i rakenduste allkirjastamise Ă”iguste seadistamine. Loodetavasti saate sellega ise hakkama. Kui olete algaja, annan ma vajalikku suunda, kuid siin me ei rÀÀgi Apple'i sertifikaatide haldamise nĂŒanssidest, kuna need pidevalt muutuvad. See postitus aitab teil asjaga alustada.

Minu rakendused

Vajalik on rakendus App Store Connectis, et teil oleks ID konfiguratsiooni jaoks .xcodebuild. Rakenduse profiil ja ID ĂŒhendavad koodikogumikud, hinnad ja kĂ€ttesaadavuse ning TestFlighti seadistamine, et jagada testrakendusi kasutajatega. Avalik testimine ei ole vajalik; privaatne testimine on piisav, kui teil on vĂ€ike grupp, lihtne seadistus ja ei ole vaja lisalubasid Apple'ilt.

Seadistusprofiil

Lisaks rakenduse seadistusele vajate iOS’i jaotamise ja arendamise vĂ”tmeid, mis on loodud Apple Developer konsoolis sektsioonis Certificates, Identifiers & Profiles (Sertifikaadid, identifikaatorid ja profiilid). KĂ”ik need sertifikaadid saab kokku panna seadistusprofiili.

Kasutajatel, kes peavad autentimist lÀbima, peab olema vÔimalik sertifikaate luua, vastasel juhul nÀete etappidel cert ja sigh vea.

Teised variandid

Lisaks sellele lihtsale meetodile on muidki viise sertifikaatide ja profiilide seadistamiseks. Seega, kui töötate teisiti, vĂ”ib olla vajalik ĂŒmber seadistamine. Peamine on, et teil on vaja konfiguratsiooni. .xcodebuild, mis suunab vajalikud failid, ja vĂ”tme sidumine peab olema koostatava kasutaja arvutis, kelle nime all töötab jooksja. Digitaalallkirja jaoks kasutame fastlane'i, ja kui esineb probleeme vĂ”i soovite rohkem teada, uurige nende pĂ”hjalikku dokumentatsiooni digitaalallkirjade kohta.

Selles nÀites kasutan lÀhenemist cert ja sigh, kuid reaalseks rakendamiseks sobib tÔenÀoliselt paremini match.

GitLabi ja fastlane'i ettevalmistamine

CI Runneri ettevalmistamine

Kogunud kĂ”ik need andmed, liigume edasi GitLab Runneri konfigureerimise juurde MacOS seadmes. Kahjuks saab iOS-i rakendusi luua tĂ”eliselt ainult MacOS-is. Kuid kĂ”ik vĂ”ib muutuda, ja kui ootad selles valdkonnas edusamme, siis jĂ€lgi projekte, nagu xcbuild ja , isign, ja meie sisemine ĂŒlesanne gitlab-ce#57576.

Jooksja seadistamine on vÀga lihtne. JÀrgige kehtivaid GitLab Runneri seadistamise juhiseid MacOS-is.

MÀrkus. Jooksja peab kasutama tÀitmisprogrammi shell. See on iOS-i kogumise jaoks MacOS-is hÀdavajalik, et töötada otse kasutajana, mitte konteinerite kaudu. Kui kasutate shell, kokkupanek ja testimine toimub kasutaja jooksja nimel, otse kokkupaneku hostis. See ei ole nii turvaline kui konteinerid, seega parem kerige edasi turvalisuse dokumentatsiooni, et midagi vahele ei jÀÀks.

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'i vĂ”tmehoidja peab olema sellel hostil konfigureeritud juurdepÀÀsuga vĂ”tmetele, mida Xcode vajab kokkupanekuks. Lihtsaim viis seda testida on sisse logida kasutajana, kes alustab kokkupanekut, ja proovida kokkupanekut kĂ€sitsi teostada. Kui sĂŒsteem kĂŒsib juurdepÀÀsu vĂ”tmehoidjale, valige 'Alati lubada', et CI töötaks. VĂ”ib-olla tasub sisse logida ja vaadata esimesi paari torujuhtmeid, et veenduda, et nad enam vĂ”tmehoidjat ei kĂŒsi. Probleem on selles, et Apple ei lihtsusta automaatset reĆŸiimi, kuid kui te selle seadistate, siis lĂ€heb kĂ”ik hĂ€sti.

fastlane init

Fastlane'i kasutamiseks projektis kÀivitage fastlane init. JÀrgige lihtsalt fastlane'i installimise ja kÀivitamise juhiseid, eriti osas Gemfile, sest meil on vaja kiiret ja ennustatavat kÀivitamist lÀbi automaatse CI toru.

Projektikataloogis kÀivitage need kÀsud:

xcode-select --install
sudo gem install fastlane -NV
# Alternatiivina kasutage Homebrew'd
# brew cask install fastlane
fastlane init

fastlane kĂŒsib pĂ”hilist seadistust ja loob seejĂ€rel projekti kausta fastlane kolm faili:

1. fastlane/Appfile

Siin pole midagi keerulist. Lihtsalt kontrollige, kas Apple ID ja rakenduse ID on Ôigesti mÀÀratud.

app_identifier("com.vontrance.flappybird") # Teie rakenduse paketi identifikaator
apple_id("your-email@your-domain.com") # Teie Apple'i e-posti aadress

2. fastlane/Fastfile

Fastfile mÀÀratleb koostamisprotsessid. Me kasutame palju sisseehitatud funktsioone fastlane'ist, seega on siin ka kĂ”ik arusaadav. Loome ĂŒhe rea, mis saab sertifikaadid, koostab ja laadib selle TestFlighti. Kui vaja, saate selle protsessi jagada erinevateks ĂŒlesanneteks. KĂ”ik need toimingud (get_certificates, get_provisioning_profile, gym ja upload_to_testflight) kuuluvad juba fastlane'i sisse.

Toimingud get_certificates ja get_provisioning_profile seotud allkirjastamise lÀhenemisega cert ja sigh. Kui kasutate match vÔi midagi muud, tehke muudatusi.

default_platform(:ios)

platform :ios do
  desc "Rakenduse kokku panemine"
  lane :flappybuild do
    get_certificates
    get_provisioning_profile
    gym
    upload_to_testflight
  end
end

3. fastlane/Gymfile

See ei ole kohustuslik fail, aga ma lÔin selle kÀsitsi, et muuta vaikimisi vÀljundkausta ja panna vÀljundid praegusesse kausta. See lihtsustab CI-d. Kui huvi, loe lÀhemalt gym ja selle parameetreid dokumentatsioonis.

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

Meie .gitlab-ci.yml

Nii et meil on CI-jooksja projekti jaoks ja oleme valmis katsetama torujuhet. Vaatame, mis meil on .gitlab-ci.yml:

stages:
  - build

variables:
  LC_ALL: "et_EE.UTF-8"
  LANG: "et_EE.UTF-8"
  GIT_STRATEGY: clone

build:
  stage: build
  script:
    - bundle install
    - bundle exec fastlane flappybuild
  artifacts:
    paths:
    - ./FlappyBird.ipa

KÔik on suurepÀrane! Seame UTF-8 formaadi fastlane'i jaoks, nagu nÔutud, kasutame strateegiat clone tÀidetava programmiga shell, et meil oleks iga ehituse jaoks puhas tööruum, ja lihtsalt kutsume flappybuild fastlane, nagu eespool nÀhtud. Tulemuseks on ehitus, allkiri ja viimase ehituse juurutamine TestFlighti.

Saame ka artefakti ja salvestame selle koos ehitusega. Pane tÀhele, et formaadi .ipa on allkirjastatud ARM tÀidetav fail, mis ei toimi simulaatoris. Kui soovid vÀljundit simulaatori jaoks, lisa lihtsalt ehituslÀhtese eesmÀrk, mis seda tootab, ja seejÀrel lisa see artefakti teele.

Muud keskkonnamuutujad

Siin on paar keskkonnamuutujat, millel kÔik toimib.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ja FASTLANE_SESSION

App Store'i autentimiseks ja TestFlighti ĂŒleslaadimiseks on vajalik fastlane'i autentimine. Selleks looge rakenduse parool, mida kasutatakse CI-s. Lisainfot siit.

Kui teil on kahefaktoriline autentimine, looge muutuja FASTLANE_SESSION (juhised leiate sealt).

FASTLANE_USER ja FASTLANE_PASSWORD

Et cert ja sigh kutsuti vÀlja algatamisprofiil ja sertifikaadid nÔudmisel, tuleb mÀÀrata muutujad FASTLANE_USER ja FASTLANE_PASSWORD. Lisainfot siit. See ei ole vajalik, kui kasutate teist allkirjastamisviisi.

KokkuvÔtteks

Saate nÀha, kuidas see kÔik toimib minu lihtsas nÀites.

Loodan, et see oli kasulik ja ma inspireerisin teid töötama iOSi kogumistega GitLabis. Siin on veel CI nÀpunÀiteid fastlane'i jaoks, juhuks kui soovite kasutada CI_BUILD_ID (inkrementaalsete kogumiste jaoks), et automaatne inkrementimine versiooniga.

Veel ĂŒks lahe vĂ”imalus fastlane'is on automaatne ekraanipiltide tegemine App Store'i jaoks, mille seadistamine on vĂ€ga lihtne.

RÀÀkige kommentaarides oma kogemusest ja jagage ideid GitLabi parandamiseks iOSi rakenduste arendamiseks.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster