Ki jan GitLab ak fastlane kolekte, siyen ak pibliye aplikasyon iOS nan App Store la.
Nou dènyèman te genyen
Isit la nou pral pran
Kèk mo sou konfigirasyon Apple Store la
Nou pral bezwen yon aplikasyon App Store, sètifika distribisyon, ak yon pwofil pwovizyon pou mare tout bagay ansanm.
Bagay ki pi difisil isit la se mete kanpe dwa siyen nan App Store la. Mwen espere ou ka kalkile sa pou tèt ou. Si ou se nouvo, mwen pral montre ou nan bon direksyon an, men nou pa pral pale sou sibtilite yo nan jere sètifika Apple isit la, epi yo ap toujou ap chanje. Pòs sa a pral ede w kòmanse.
Aplikasyon mwen yo
Ou bezwen yon aplikasyon nan App Store Connect pou ou gen yon ID pou konfigirasyon .xcodebuild
. Pwofil ak ID aplikasyon an konbine kòd, pri ak disponiblite, ak konfigirasyon TestFlight pou distribye aplikasyon tès bay itilizatè yo. Pa fè tès piblik, tès prive ap sifi si ou gen yon ti gwoup, konfigirasyon senp, epi ou pa bezwen plis otorizasyon nan men Apple.
Pwofil inisyalizasyon
Anplis konfigirasyon aplikasyon an, ou bezwen distribisyon iOS ak kle devlopman ki te kreye nan seksyon Sètifika, Idantifyan ak pwofil konsole Apple Developer. Tout sètifika sa yo ka konbine nan yon pwofil pwovizyon.
Itilizatè yo ki pral otantifye bezwen pou kapab kreye sètifika, otreman etap yo
lòt opsyon
Anplis metòd senp sa a, gen lòt fason pou konfigirasyon sètifika ak pwofil. Kidonk, si w ap travay yon fason diferan, ou ka oblije adapte w. Bagay ki pi enpòtan an se ke ou bezwen konfigirasyon .xcodebuild
, ki pral lonje dwèt sou dosye ki nesesè yo, ak keychain a dwe disponib sou òdinatè a bati pou itilizatè a ki anba non moun kap kouri a ap kouri. Pou siyati dijital nou itilize fastlane, epi si gen pwoblèm oswa ou vle konnen plis, tcheke detay yo
Nan egzanp sa a mwen itilize apwòch la
Prepare GitLab ak fastlane
Prepare CI Runner
Lè w fin kolekte tout done sa yo, nou ale nan konfigirasyon kourè GitLab la sou aparèy MacOS la. Malerezman, ou ka sèlman fè iOS apps sou MacOS. Men, tout bagay ka chanje, epi si ou espere pwogrè nan domèn sa a, kenbe yon je sou pwojè tankou
Mete kanpe kourè a se trè senp. Swiv kouran
Remak. Kourè a dwe itilize yon pwogram ègzekutabl shell
. Sa a oblije bati iOS sou macOS pou travay dirèkteman kòm yon itilizatè olye ke atravè resipyan. Si w ap itilize shell
, bati ak tès yo fèt kòm itilizatè a kourè, dirèkteman sou lame a bati. Li pa an sekirite tankou resipyan, kidonk pi bon browse
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 dwe configuré sou lame sa a ak aksè a kle yo ke Xcode bezwen bati. Fason ki pi fasil pou teste sa a se konekte kòm itilizatè a ki pral kouri bati a epi eseye bati li manyèlman. Si sistèm nan mande pou aksè nan keychain, chwazi Toujou Pèmèt pou CI travay. Li ta ka vo antre epi gade premye koup la nan tiyo asire w ke yo pa mande pou keychain a ankò. Pwoblèm lan se ke Apple pa fè li fasil pou nou sèvi ak mòd Auto, men yon fwa ou jwenn li ale, tout bagay pral byen.
fastlane init
Pou itilize fastlane nan yon pwojè, kouri fastlane init
. Jis swiv
Nan anyè pwojè ou a, kouri kòmandman sa yo:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane pral mande pou yon konfigirasyon debaz ak Lè sa a, kreye yon katab fastlane nan pwojè a ak twa dosye:
1. fastlane/Appfile
Pa gen anyen konplike isit la. Jis asire w ke ID Apple ou ak ID App yo kòrèk.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
defini etap yo bati. Nou itilize yon anpil nan karakteristik entegre Fastlane a, kidonk tout bagay klè isit la tou. Nou kreye yon liy ki resevwa sètifika, fè asanble a epi telechaje li nan TestFlight. Ou ka divize pwosesis sa a an diferan travay si sa nesesè. Tout operasyon sa yo (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) yo deja enkli nan fastlane.
Aksyon yo get_certificates
и get_provisioning_profile
ki gen rapò ak apwòch siyen an
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
Sa a se yon dosye opsyonèl, men mwen te kreye li manyèlman chanje anyè pwodiksyon default la epi mete pwodiksyon an nan katab aktyèl la. Sa senplifye CI. Si enterese, li sou gym
ak paramèt li yo nan
https://docs.fastlane.tools/actions/gym/
Nou .gitlab-ci.yml
Se konsa, nou gen yon kourè CI pou pwojè a epi nou pare pou teste tiyo a. Ann wè sa nou genyen ladann .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
Все отлично! clone
ak pwogram egzekite shell
, pou nou gen yon espas travay pwòp pou chak asanble, epi tou senpleman rele flappybuild
fastlane, jan yo wè pi wo a. Kòm yon rezilta, nou jwenn asanble a, siyati ak deplwaman dènye asanble a nan TestFlight.
Nou menm tou nou jwenn zafè a epi sove li ak asanble a. Tanpri sonje ke fòma a .ipa
se yon ègzèkutabl ARM ki siyen ki pa kouri nan similatè a. Si ou vle pwodiksyon pou similatè a, jis ajoute sib la bati ki pwodui li, ak Lè sa a, enkli li nan chemen an asosye.
Lòt varyab anviwònman an
Gen yon koup nan varyab anviwònman isit la ki fè tout bagay travay.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Otantifikasyon pou Fastlane oblije otantifye nan App Store la epi telechaje sou TestFlight. Pou fè sa, kreye yon modpas pou aplikasyon an ki pral itilize nan CI. Detay yo
Si ou gen de-faktè otantifikasyon, kreye yon varyab FASTLANE_SESSION
(enstriksyon la).
FASTLANE_USER
и FASTLANE_PASSWORD
Sa FASTLANE_USER
и FASTLANE_PASSWORD
. Detay yo
Nan konklizyon
Ou ka wè ki jan li tout travay
Mwen espere ke sa a te itil ak enspire ou travay ak iOS bati nan yon pwojè GitLab. Men yon lòt CI_BUILD_ID
(pou bati incrémentielle) pou
Yon lòt karakteristik fre nan fastlane se
Di nou nan kòmantè yo sou eksperyans ou epi pataje lide ou pou amelyore GitLab pou devlopman app iOS.
Sous: www.habr.com