Avaldame iOS rakendusi App Store'is GitLab'i ja fastlane'iga

Avaldame iOS rakendusi App Store'is GitLab'i ja fastlane'iga

Kuidas GitLab fastlane'iga koostab, allkirjastab ja avaldab iOS rakendusi App Store'is.

Hiljuti oli meil postitus, kuidas kiiresti kokku panna ja kÀivitada Android rakendus GitLab'i ja fastlane'i. Siin nÀeme, kuidas kokku panna ja kÀivitada iOS rakendus ning avaldada see TestFlight'is. Vaadake, kui Àge ma muudan midagi iPad Pro's GitLab Web IDE's, vÔtan koondamise ja saan uuenduse rakenduse testversioonile samas iPad Pro's, kus ma selle loomise lÔpetasin.

Siin lÀhme lihtsa iOS rakenduse juurde Swift'is, millega ma videot salvestasin.

MÔned sÔnad Apple Store'i konfigureerimisest

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

KĂ”ige raskem on seadistada allkirjastamisĂ”igust App Store'is. Lootan, et saate sellega hakkama. Kui olete algaja, nĂ€itan vajalikku suunda, kuid siin me Apple'i tunnistuste halduse nĂŒanssidest ei rÀÀgi, need muutuvad pidevalt. See postitus aitab teil alustada.

Minu rakendused

Tuleb App Store Connect'i rakendus, et teil oleks ID konfigureerimiseks .xcodebuild. Profiil ja rakenduse ID ĂŒhendavad koodikogumid, hinnad ja saadavuse, samuti TestFlight'i konfigureerimise rakenduste testimiseks kasutajate seas. Ärge tehke avalikku testimist, piisab privaatsetest testidest, kui teil on vĂ€ike grupp, lihtne seadistus ja lisalubade taotlemise vajadus Apple'ilt.

Initsialiseerimise profiil

Peale rakenduse seadistamise on teil vaja jaotustunnistusi ja iOS arendusvÔtmeid, mis on loodud sektsioonis Certificates, Identifiers & Profiles (Tunnistused, Identifikaatorid ja Profiilid) Apple Developer konsoolis. KÔik need tunnistused saab koondada initsialiseerimise profiili.

Kasutajad, kes lÀhevad autentimisele, peavad saama tunnistusi luua, vastasel juhul nÀete etappidel cert ja sigh viga.

Teised valikud

Peale selle lihtsa meetodi on ka teisi viise tunnistuste ja profiilide seadistamiseks. Seega, kui töötate teisiti, vĂ”ite vajalikuks pidada ĂŒmber seadistamist. KĂ”ige olulisem - teil on vajalik konfigureerimine. .xcodebuild, mis nĂ€itab vajalikud failid, ja vĂ”tme sidumine peab olema kergesti ligipÀÀsetav ehituse arvutis, kus kasutaja, kelle nime all runner töötab, on sisse logitud. Digitaalallkirja loomiseks kasutame fastlane'i ja kui teil on probleeme vĂ”i soovite rohkem teada, vaadake nende pĂ”hjalikku dokumentatsiooni digitaalallkirjade kohta.

Selles nÀites kasutan lÀhenemist cert ja sigh, kuid reaalsetes rakendustes sobib ehk paremini match.

GitLabi ja fastlane'i ettevalmistamine

CI Runneri ettevalmistamine

Kogudes kĂ”ik need andmed, liigume edasi GitLab runner'i seadistamise juurde MacOS seadmes. Kahjuks on iOSi rakenduste loomine reaalne ainult MacOS-is. Kuid kĂ”ik vĂ”ib muutuda ja kui ootad arengut, siis jĂ€lgi projekte nagu xcbuild ja isign, ja meie siseĂŒlesannet gitlab-ce#57576.

Runners'i seadistamine on vÀga lihtne. JÀrgi kaasaegseid GitLab Runneri seadistamise juhiseid macOS-is.

MÀrkus. Runnery peaks kasutama kÀivitusprogrammi kÀsurea tÔlgendus. See on iOS-i ehitamiseks macOS-is hÀdavajalik, et töötada otse kasutajana, mitte konteinerite kaudu. Kui kasutate kÀsurea tÔlgendus, ehitamine ja testimine toimub runner'i kasutaja nimel otse ehitusmasinas. See ei ole nii turvaline kui konteinerid, seega tasub lugeda turvajuht, et miski ei jÀÀks tÀhelepanuta.

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Ă”tmeside peab olema seadistatud sellel hostil, et juurdepÀÀsuks oleks vĂ”tmed, mida Xcode vajab ehitamiseks. Lihtsaim viis selle testimiseks on sisse logida kui kasutaja, kes kĂ€ivitab ehituse, ja proovida ehitust kĂ€sitsi teostada. Kui sĂŒsteem kĂŒsib vĂ”tmesideme juurdepÀÀsu, valige „Alati lubada“, et CI pĂ”hjalikult töötaks. VĂ”ib-olla tasub sisse logida ja jĂ€lgida esimest paari pipeline'i, et veenduda, et nad enam vĂ”tmeside juurdepÀÀsu ei kĂŒsi. Probleem on selles, et Apple ei tee meile automaatreĆŸiimiga lihtsaks, kuid kui olete selle seadistanud, siis on kĂ”ik korras.

fastlane init

Fastlane'i kasutamiseks projektis kÀivitage fastlane init. Lihtsalt jÀrgige fastlane'i installimise ja kÀivitamise juhiseid, eriti jaotisest, mis kÀsitleb Gemfile'i, kuna me vajame kiiret ja ettearvatavat kÀivitust automaatse CI toru kaudu.

Kataloogis kÀivitage need kÀsud:

xcode-select --install
sudo gem install fastlane -NV
# Alternatiivselt kasutades Homebrew
# brew cask install fastlane
fastlane init

fastlane kĂŒsib pĂ”hikonfiguratsiooni ja loob seejĂ€rel projekti kausta fastlane kolme faili jaoks:

1. fastlane/Appfile

Siin ei ole midagi keerulist. Lihtsalt veenduge, et 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 ehitusetapid. Kasutame palju fastlane'i sisseehitatud funktsioone, nii et siin on samuti kĂ”ik arusaadav. Loome ĂŒhe rea, mis saab sertifikaadid, koostab ja laadib selle TestFlighti. Vajadusel vĂ”ite need protsessid jagada erinevateks ĂŒlesanneteks. KĂ”ik need toimingud (get_certificates, get_provisioning_profile, gym ja upload_to_testflight) kuuluvad juba fastlane'i alla.

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

default_platform(:ios)

platform :ios do
  desc "Ehita rakendus"
  lane :flappybuild do
    get_certificates
    get_provisioning_profile
    gym
    upload_to_testflight
  end
end

3. fastlane/Gymfile

See on valikuline fail, kuid ma lÔin selle kÀsitsi, et muuta vaikevÀljundkaust ja paigutada vÀljund praegusesse kausta. See lihtsustab CI-d. Kui olete huvitatud, lugege gym ja selle parameetreid dokumentatsioonist dokumentatsioon.

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

Meie .gitlab-ci.yml

Nii et meil on CI-jooksja projektiks ja oleme valmis katsetama torujuhet. Vaadakem, 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 on suurepĂ€rane! Seame UTF-8 formaadi fastlane'ile, nagu nĂ”utud, kasutame strateegiat clone tĂ€itva programmiga, kĂ€surea tĂ”lgendustagamaks, et meil on iga koostamise jaoks puhas tööruum, ja lihtsalt kutsume flappybuild fastlane, nagu nĂ€ha ĂŒlal. LĂ”pptulemusena saame kokku panna, allkirjastada ja tootmise viia viimane koostamine TestFlighti.

Saame ka artefakti ja salvestame selle koos koostamisega. Pange tÀhele, et formaat .ipa on allkirjastatud ARM-eÀrisk, mis ei tööta simulaatoris. Kui soovite vÀljundit simulaatori jaoks, lisage lihtsalt koostamis siht, mis seda toodab, ja seejÀrel lisage see artefakti teele.

Teised keskkonnamuutujad

Siin on paar keskkonnamuutujat, mis aitavad kÔike toimida.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ja FASTLANE_SESSION

App Store'i ja TestFlight'i autentimiseks on vajalik fastlane'i autentimine. Selleks looge rakenduse parool, mida kasutatakse CI-s. Üksikasjad siin.

Kui teil on kahefaasiline autentimine, looge muutujad FASTLANE_SESSION (juhised on seal).

FASTLANE_USER ja FASTLANE_PASSWORD

Et cert ja sigh kutsuda vĂ€lja algatusprofiil ja sertifikaadid vastavalt nĂ”udmisele, tuleb seadistada muutujad FASTLANE_USER ja FASTLANE_PASSWORD. Üksikasjad siin. Seda ei ole vaja, kui kasutate muud allkirjastamismeetodit.

KokkuvÔtteks

Kuidas see kÔik toimib, on nÀha minu lihtsas nÀites.

Loodan, et see oli kasulik ja inspireeris teid töötama iOS kogumistega GitLab'is. Siin on veel nÔuandeid CI fastlane'i jaoks, igaks juhuks. VÔib-olla soovite kasutada CI_BUILD_ID (inkrementaalse kogumise jaoks), et automaatsete versioonide inkrementimist.

Veel ĂŒks lahe vĂ”imalus fastlane'is on automaatne ekraanipilt App Store'i jaoks, mida on vĂ€ga lihtne seadistada.

RÀÀkige kommentaarides oma kogemustest ja jagage ideid GitLab'i tÀiustamiseks iOS rakenduste arendamiseks.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster