Pibliye aplikasyon iOS nan App Store la ak GitLab ak fastlane

Pibliye aplikasyon iOS nan App Store la ak GitLab ak fastlane

Ki jan GitLab ak fastlane kolekte, siyen ak pibliye aplikasyon iOS nan App Store la.

Nou dènyèman te genyen poste sou kijan pou konstwi ak kouri byen vit yon aplikasyon android ak GitLab ak fastlane. Isit la nou pral wè ki jan yo bati ak kouri yon aplikasyon iOS epi pibliye li nan TestFlight. Tcheke kijan li fre Mwen fè yon chanjman sou yon iPad Pro ak GitLab Web IDE, Mwen pran asanble a epi jwenn yon aktyalizasyon nan vèsyon tès aplikasyon an sou menm iPad Pro kote mwen devlope li.

Isit la nou pral pran senp aplikasyon iOS sou Swift, ak ki moun mwen anrejistre videyo a.

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 cert ak soupi ou pral wè yon erè.

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 dokiman sou siyati dijital yo.

Nan egzanp sa a mwen itilize apwòch la cert ak soupi, men pou itilizasyon reyèl li pwobableman pi byen adapte matche ak.

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 xcbuild и siyen, ak travay entèn nou an gitlab-ce#57576.

Mete kanpe kourè a se trè senp. Swiv kouran enstriksyon pou mete GitLab Runner sou macOS.

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 dokiman sekiritepou w pa rate anyen.

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 enstriksyon pou enstale ak kouri Fastlane, espesyalman nan seksyon sou Gemfile, paske nou bezwen lansman rapid ak previzib atravè yon tiyo CI otomatik.

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 cert ak soupi. Si w ap itilize matche ak oswa kèlkeswa sa, fè chanjman.

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 dokiman.

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

Все отлично! Nou mete fòma a nan UTF-8 pou fastlane jan sa nesesè, sèvi ak estrateji 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 isit la.

Si ou gen de-faktè otantifikasyon, kreye yon varyab FASTLANE_SESSION (enstriksyon la).

FASTLANE_USER и FASTLANE_PASSWORD

Sa cert ak soupi rele pwofil la inisyalizasyon ak sètifika sou demann, ou bezwen mete varyab yo FASTLANE_USER и FASTLANE_PASSWORD. Detay yo isit la. Sa a pa nesesè si w ap itilize yon metòd siyen diferan.

Nan konklizyon

Ou ka wè ki jan li tout travay nan egzanp senp mwen an.

Mwen espere ke sa a te itil ak enspire ou travay ak iOS bati nan yon pwojè GitLab. Men yon lòt CI konsèy pou fastlane, jis nan ka. Ou ta ka vle itilize CI_BUILD_ID (pou bati incrémentielle) pou otomatikman ogmante vèsyon an.

Yon lòt karakteristik fre nan fastlane se Ekran otomatik yo pou App Store, ki trè fasil pou mete sou pye.

Di nou nan kòmantè yo sou eksperyans ou epi pataje lide ou pou amelyore GitLab pou devlopman app iOS.

Sous: www.habr.com

Add nouvo kòmantè