iOS-i rakenduste avaldamine App Store'is GitLabi ja fastlane'iga

iOS-i rakenduste avaldamine App Store'is GitLabi ja fastlane'iga

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

Meil oli hiljuti postitus selle kohta, kuidas kiiresti Androidi rakendust luua ja käitada koos GitLabiga ja kiirtee. Siin näeme, kuidas luua ja käitada iOS-i rakendust ning avaldada see TestFlightis. Vaadake, kui lahe see on Teen muudatusi iPad Pros koos GitLabi Web IDE-ga, võtan koostu ja saan värskenduse rakenduse testversioonile samal iPad Pro-l, kus ma selle arendasin.

Siin me võtame lihtne iOS-i rakendus Swiftis, kellega koos video salvestasin.

Paar sõna Apple Store'i konfiguratsiooni kohta

Kõikide ühendamiseks vajame rakendust App Store, levitussertifikaate ja pakkumisprofiili.

Kõige keerulisem on siin App Store'is allkirjastamisõiguste seadistamine. Loodan, et saate selle ise välja mõelda. Kui olete uus, siis ma juhatan teid õiges suunas, kuid me ei räägi siin Apple'i sertifikaatide haldamise keerukusest ja need muutuvad pidevalt. See postitus aitab teil alustada.

Minu rakendused

Vajate App Store Connecti rakendust, et teil oleks seadistamiseks ID .xcodebuild. Profiil ja rakenduse ID ühendavad koodi järge, hinna ja saadavuse ning TestFlighti konfiguratsiooni testrakenduste kasutajatele levitamiseks. Ärge tehke avalikku testimist, privaatsest testimisest piisab, kui teil on väike grupp, lihtne seadistamine ja te ei vaja Apple'i täiendavaid õigusi.

Initsialiseerimisprofiil

Lisaks rakenduse seadistamisele vajate Apple'i arendajakonsooli jaotises Sertifikaadid, identifikaatorid ja profiilid loodud iOS-i levitamis- ja arendusvõtmed. Kõiki neid sertifikaate saab kombineerida ettevalmistusprofiiliks.

Autentitavad kasutajad peavad saama luua sertifikaate, vastasel juhul toimige järgmiselt kindel ja ohkas näete viga.

muid võimalusi

Lisaks sellele lihtsale meetodile on sertifikaatide ja profiilide konfigureerimiseks ka teisi võimalusi. Seega, kui töötate teisiti, peate võib-olla kohanema. Kõige tähtsam on see, et vajate konfiguratsiooni .xcodebuild, mis osutab vajalikele failidele ja võtmehoidja peab olema ehitatavas arvutis kasutajale, kelle nime all jooksja töötab. Digiallkirja andmiseks kasutame fastlane’i ja kui on probleeme või soovid rohkem teada, vaata nende üksikasju dokumentatsioon digitaalallkirjade kohta.

Selles näites kasutan lähenemist kindel ja ohkas, kuid reaalseks kasutamiseks sobib see ilmselt paremini vastama.

GitLabi ja fastlane'i ettevalmistamine

CI Runneri ettevalmistamine

Pärast kõigi nende andmete kogumist liigume edasi MacOS-seadme GitLabi jooksja konfiguratsiooni juurde. Kahjuks saate iOS-i rakendusi teha ainult MacOS-is. Kuid kõik võib muutuda ja kui ootate selles valdkonnas edusamme, hoidke silm peal sellistel projektidel nagu xcbuild и märkja meie sisemine ülesanne gitlab-ce#57576.

Jooksja seadistamine on väga lihtne. Jälgige voolu juhised GitLab Runneri seadistamiseks macOS-is.

Märge. Jooksja peab kasutama käivitatavat programmi shell. See on vajalik iOS-i loomiseks macOS-is, et töötada otse kasutajana, mitte konteinerite kaudu. Kui kasutate shell, ehitamine ja testimine toimub jooksva kasutajana otse järgu hostis. See pole nii turvaline kui konteinerid, seega on parem sirvida ohutusdokumentatsiooninii et sa ei jäta millestki ilma.

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 selles hostis konfigureeritud, et võimaldada juurdepääsu võtmetele, mida Xcode vajab. Lihtsaim viis selle testimiseks on sisse logida kasutajana, kes käivitab ehitust, ja proovida seda käsitsi luua. Kui süsteem küsib juurdepääsu võtmehoidjale, valige Luba alati, et CI töötaks. Võib-olla tasub siseneda ja vaadata paari esimest torujuhet, et olla kindel, et nad enam võtmehoidjat ei küsi. Probleem on selles, et Apple ei tee meil automaatrežiimi kasutamist lihtsaks, kuid kui see käima läheb, on kõik korras.

fastlane init

Fastlane'i kasutamiseks projektis käivitage fastlane init. Lihtsalt järgi juhised fastlane'i paigaldamiseks ja käitamiseks, eriti jaotises teemal Gemfile, sest vajame kiiret ja prognoositavat käivitamist automatiseeritud CI torujuhtme kaudu.

Käivitage oma projektikataloogis järgmised käsud:

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

fastlane küsib põhikonfiguratsiooni ja loob seejärel projektis kolme failiga fastlane'i kausta:

1. fastlane/Appfile

Siin pole midagi keerulist. Lihtsalt veenduge, et teie Apple ID ja rakenduse ID oleksid õiged.

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

2. fastlane/Fastfile

Fastfile määrab ehitusetapid. Kasutame palju fastlane’i sisseehitatud funktsioone, nii et ka siin on kõik selge. Loome ühe rea, mis võtab vastu sertifikaadid, teostab koostamise ja laadib selle TestFlighti üles. Vajadusel saate selle protsessi jagada erinevateks ülesanneteks. Kõik need toimingud (get_certificates, get_provisioning_profile, gym и upload_to_testflight) on juba fastlane'i lisatud.

Tegevus get_certificates и get_provisioning_profile seotud allkirjastamise lähenemisviisiga kindel ja ohkas. Kui kasutate vastama või mis iganes, tee muudatusi.

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

See on valikuline fail, kuid lõin selle käsitsi, et muuta vaikeväljundi kataloogi ja paigutada väljund praegusesse kausta. See lihtsustab CI-d. Huvi korral lugege gym ja selle parameetrid dokumentatsioon.

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

Meie .gitlab-ci.yml

Niisiis, meil on projekti jaoks CI jooksja ja oleme valmis torujuhet testima. Vaatame, mis meil 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

Kõik väga hea! Vastavalt vajadusele määrasime kiirlaine jaoks vorminguks UTF-8, kasutage strateegiat clone käivitava programmiga shell, et meil oleks iga koostu jaoks puhas tööruum, ja helistage lihtsalt flappybuild fastlane, nagu eespool näha. Selle tulemusena saame TestFlighti uusima koostu kokkupaneku, allkirja ja juurutamise.

Samuti saame artefakti ja salvestame selle koos koostuga. Pange tähele, et vorming .ipa on allkirjastatud ARM-i käivitatav fail, mis simulaatoris ei tööta. Kui soovite simulaatori jaoks väljundit, lisage lihtsalt selle loov järgu sihtmärk ja seejärel lisage see artefakti teele.

Muud keskkonnamuutujad

Siin on paar keskkonnamuutujat, mis panevad kõik tööle.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Fastlane'i autentimine on vajalik App Store'is autentimiseks ja TestFlighti üleslaadimiseks. Selleks looge CI-s kasutatavale rakendusele parool. Üksikasjad siin.

Kui teil on kahefaktoriline autentimine, looge muutuja FASTLANE_SESSION (juhend seal).

FASTLANE_USER и FASTLANE_PASSWORD

Et kindel ja ohkas mida kutsutakse nõudmisel lähtestamisprofiiliks ja sertifikaatideks, peate määrama muutujad FASTLANE_USER и FASTLANE_PASSWORD. Üksikasjad siin. See pole vajalik, kui kasutate teist allkirjastamismeetodit.

Kokkuvõttes

Näete, kuidas see kõik töötab minu lihtsas näites.

Loodan, et see oli kasulik ja inspireeris teid GitLabi projektis iOS-i versioonidega töötama. Siin on veel üks CI näpunäited igaks juhuks fastlane'ile. Võib-olla soovite kasutada CI_BUILD_ID (täienduste jaoks) kuni automaatselt suurendada versiooni.

Fastlane’i veel üks lahe omadus on automaatsed ekraanipildid App Store'i jaoks, mida on väga lihtne seadistada.

Rääkige meile kommentaarides oma kogemustest ja jagage oma ideid GitLabi täiustamiseks iOS-i rakenduste arendamiseks.

Allikas: www.habr.com

Lisa kommentaar