KÄ GitLab ar fastlane apkopo, paraksta un publicÄ iOS lietojumprogrammas App Store.
Mums nesen bija
Å eit mÄs Åemsim
Daži vÄrdi par Apple Store konfigurÄciju
Lai visu savienotu, mums bÅ«s nepiecieÅ”ama lietotne App Store, izplatÄ«Å”anas sertifikÄti un nodroÅ”inÄÅ”anas profils.
SarežģītÄkÄ lieta Å”eit ir parakstÄ«Å”anas tiesÄ«bu iestatÄ«Å”ana App Store. Es ceru, ka jÅ«s varat to izdomÄt pats. Ja esat jauns, es norÄdÄ«Å”u jums pareizo virzienu, taÄu mÄs Å”eit nerunÄsim par Apple sertifikÄtu pÄrvaldÄ«bas sarežģījumiem, un tie pastÄvÄ«gi mainÄs. Å Ä« ziÅa palÄ«dzÄs jums sÄkt.
Manas lietotnes
Lai jums bÅ«tu ID konfigurÄcijai, jums ir nepiecieÅ”ama lietotne pakalpojumÄ App Store Connect .xcodebuild
. Profils un lietojumprogrammas ID apvieno koda bÅ«ves, cenas un pieejamÄ«bu, kÄ arÄ« TestFlight konfigurÄciju, lai izplatÄ«tu testa lietojumprogrammas lietotÄjiem. Neveiciet publisku testÄÅ”anu, ar privÄtu testÄÅ”anu pietiks, ja jums ir maza grupa, vienkÄrÅ”a iestatÄ«Å”ana un jums nav nepiecieÅ”amas papildu Apple atļaujas.
InicializÄcijas profils
Papildus lietotÅu iestatÄ«Å”anai jums ir nepiecieÅ”amas iOS izplatÄ«Å”anas un izstrÄdes atslÄgas, kas izveidotas Apple izstrÄdÄtÄja konsoles sadaÄ¼Ä SertifikÄti, identifikatori un profili. Visus Å”os sertifikÄtus var apvienot nodroÅ”inÄÅ”anas profilÄ.
LietotÄjiem, kuri tiks autentificÄti, ir jÄspÄj izveidot sertifikÄtus, pretÄjÄ gadÄ«jumÄ jÄveic darbÄ«bas
citas iespÄjas
Papildus Å”ai vienkÄrÅ”ajai metodei ir arÄ« citi veidi, kÄ konfigurÄt sertifikÄtus un profilus. TÄtad, ja jÅ«s strÄdÄjat savÄdÄk, jums var nÄkties pielÄgoties. VissvarÄ«gÄkais ir tas, ka jums ir nepiecieÅ”ama konfigurÄcija .xcodebuild
, kas norÄdÄ«s uz nepiecieÅ”amajiem failiem, un atslÄgu piekariÅam jÄbÅ«t pieejamam bÅ«vÄÅ”anas datorÄ lietotÄjam, ar kura vÄrdu darbojas skrÄjÄjs. DigitÄlajam parakstam mÄs izmantojam fastlane, un, ja rodas problÄmas vai vÄlaties uzzinÄt vairÄk, pÄrbaudiet to informÄciju
Å ajÄ piemÄrÄ es izmantoju pieeju
Notiek GitLab un fastlane sagatavoŔana
Notiek CI Runner sagatavoŔana
PÄc visu Å”o datu apkopoÅ”anas mÄs pÄrejam pie GitLab skrÄjÄja konfigurÄcijas MacOS ierÄ«cÄ. DiemžÄl iOS lietotnes var izveidot tikai operÄtÄjsistÄmÄ MacOS. Bet viss var mainÄ«ties, un, ja sagaidÄt progresu Å”ajÄ jomÄ, sekojiet lÄ«dzi tÄdiem projektiem kÄ
SkrÄjÄja iestatÄ«Å”ana ir ļoti vienkÄrÅ”a. Sekojiet paÅ”reizÄjam
PiezÄ«me. SkrÄjÄjam ir jÄizmanto izpildÄma programma shell
. Tas ir nepiecieÅ”ams, lai izveidotu iOS operÄtÄjsistÄmÄ MacOS, lai darbotos tieÅ”i kÄ lietotÄjs, nevis izmantojot konteinerus. Ja jÅ«s lietojat shell
, izveide un testÄÅ”ana tiek veikta kÄ palaidÄjs lietotÄjs tieÅ”i bÅ«vÄjuma resursdatorÄ. Tas nav tik droÅ”s kÄ konteineri, tÄpÄc labÄk pÄrlÅ«kojiet
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 ir jÄkonfigurÄ Å”ajÄ resursdatorÄ ar piekļuvi atslÄgÄm, kas Xcode ir jÄizveido. VienkÄrÅ”Äkais veids, kÄ to pÄrbaudÄ«t, ir pieteikties kÄ lietotÄjam, kurÅ” veiks bÅ«vÄjumu, un mÄÄ£inÄt to izveidot manuÄli. Ja sistÄma pieprasa piekļuvi atslÄgu piekariÅam, atlasiet VienmÄr atļaut, lai CI darbotos. IespÄjams, ir vÄrts ieiet un noskatÄ«ties pirmos pÄris cauruļvadus, lai pÄrliecinÄtos, ka tie vairs neprasa atslÄgu piekariÅu. ProblÄma ir tÄ, ka Apple neļauj mums Ärti izmantot automÄtisko režīmu, taÄu, tiklÄ«dz to aktivizÄsit, viss bÅ«s kÄrtÄ«bÄ.
fastlane init
Lai projektÄ izmantotu fastlane, palaidiet fastlane init
. VienkÄrÅ”i sekojiet
Projekta direktorijÄ palaidiet Ŕīs komandas:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane pieprasÄ«s pamata konfigurÄciju un pÄc tam projektÄ izveidos fastlane mapi ar trim failiem:
1. fastlane/Appfile
Å eit nav nekÄ sarežģīta. VienkÄrÅ”i pÄrliecinieties, vai jÅ«su Apple ID un lietotnes ID ir pareizi.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
nosaka izveides soļus. MÄs izmantojam daudz fastlane iebÅ«vÄto funkciju, tÄpÄc arÄ« Å”eit viss ir skaidrs. MÄs izveidojam vienu lÄ«niju, kas saÅem sertifikÄtus, veic montÄžu un augÅ”upielÄdÄ to TestFlight. Ja nepiecieÅ”ams, Å”o procesu var sadalÄ«t dažÄdos uzdevumos. Visas Ŕīs operÄcijas (get_certificates
, get_provisioning_profile
, gym
Šø upload_to_testflight
) jau ir iekļauti fastlane.
AktivitÄte get_certificates
Šø get_provisioning_profile
kas saistīti ar parakstīŔanas pieeju
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
Å is ir neobligÄts fails, taÄu es to izveidoju manuÄli, lai mainÄ«tu noklusÄjuma izvades direktoriju un ievietotu izvadi paÅ”reizÄjÄ mapÄ. Tas vienkÄrÅ”o CI. Ja interesÄ, lasiet par gym
un tÄ parametri
https://docs.fastlane.tools/actions/gym/
MÅ«sÄjais .gitlab-ci.yml
TÄtad, mums ir CI vadÄ«tÄjs projektam, un mÄs esam gatavi pÄrbaudÄ«t cauruļvadu. PaskatÄ«simies, kas mums ir iekÅ”Ä .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
Viss ir lieliski! clone
ar izpildprogrammu shell
, lai mums bÅ«tu tÄ«ra darba vieta katrai montÄžai, un vienkÄrÅ”i zvaniet flappybuild
fastlane, kÄ redzams iepriekÅ”. RezultÄtÄ mÄs iegÅ«stam jaunÄkÄs komplektÄcijas montÄžu, parakstu un izvietoÅ”anu pakalpojumÄ TestFlight.
MÄs arÄ« iegÅ«stam artefaktu un saglabÄjam to kopÄ ar montÄžu. LÅ«dzu, Åemiet vÄrÄ, ka formÄts .ipa
ir parakstÄ«ts ARM izpildÄmais fails, kas nedarbojas simulatorÄ. Ja vÄlaties simulatora izvadi, vienkÄrÅ”i pievienojiet bÅ«vÄjuma mÄrÄ·i, kas to rada, un pÄc tam iekļaujiet to artefakta ceļÄ.
Citi vides mainīgie
Šeit ir daži vides mainīgie, kas liek visam darboties.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
Šø FASTLANE_SESSION
Fastlane autentifikÄcija ir nepiecieÅ”ama, lai autentificÄtos App Store un augÅ”upielÄdÄtu pakalpojumÄ TestFlight. Lai to izdarÄ«tu, izveidojiet paroli lietojumprogrammai, kas tiks izmantota CI. SÄ«kÄka informÄcija
Ja jums ir divu faktoru autentifikÄcija, izveidojiet mainÄ«go FASTLANE_SESSION
(norÄdÄ«jumi tur).
FASTLANE_USER
Šø FASTLANE_PASSWORD
Ka FASTLANE_USER
Šø FASTLANE_PASSWORD
. SÄ«kÄka informÄcija
NoslÄgumÄ
JÅ«s varat redzÄt, kÄ tas viss darbojas
Es ceru, ka tas bija noderÄ«gs un iedvesmoja jÅ«s strÄdÄt ar iOS versijÄm GitLab projektÄ. Å eit ir vÄl viens CI_BUILD_ID
(papildu veidojumiem) uz
VÄl viena lieliska fastlane iezÄ«me ir
PastÄstiet mums komentÄros par savu pieredzi un dalieties idejÄs par GitLab uzlaboÅ”anu iOS lietotÅu izstrÄdei.
Avots: www.habr.com