Kudhinda iOS zvikumbiro kuApp Store neGitLab uye fastlane

Kudhinda iOS zvikumbiro kuApp Store neGitLab uye fastlane

GitLab ine fastlane inounganidza sei, isaina uye inoburitsa iOS zvikumbiro kuApp Store.

Takava nawo nguva pfupi yadarika post nezve nzira yekukurumidza kuvaka uye kumhanya Android application neGitLab uye fast lane. Pano tichaona maitiro ekuvaka nekumhanyisa iOS app uye kuishambadza kuTestFlight. Tarisa kuti inotonhorera sei Ndiri kuita shanduko pane iPad Pro ine GitLab Web IDE, Ini ndinotora gungano uye ndinowana yekuvandudza kune bvunzo vhezheni yekushandisa pane imwecheteyo iPad Pro kwandakaigadzira.

Pano tichatora iri nyore iOS app paSwift, wandakarekodha naye vhidhiyo yacho.

Mazwi mashoma nezve Apple Store kumisikidza

Tichada app Store app, zvitupa zvekugovera, uye profil yekusunganidza zvese pamwechete.

Chinhu chakanyanya kuoma apa kuseta kodzero dzekusaina muApp Store. Ndinovimba unogona kuzvisarudzira izvi. Kana iwe uri mutsva, ini ndinonongedza iwe munzira kwayo, asi isu hatitaure nezve kuoma kwekutonga Apple zvitupa pano, uye ivo vari kuramba vachichinja. Ichi chinyorwa chichakubatsira iwe kutanga.

Mapurogiramu angu

Iwe unoda app muApp Store Batanidza kuti uve nechitupa chekugadzirisa .xcodebuild. Iyo mbiri uye application ID inosanganisa kuvaka kodhi, mitengo uye kuwanikwa, uye TestFlight kumisikidza yekugovera bvunzo maapplication kune vashandisi. Usaite bvunzo dzeruzhinji, kuongororwa kwakavanzika kunokwana kana uine boka diki, kuseta kuri nyore, uye usingade mimwe mvumo kubva kuApple.

Initialization profile

Pamusoro pekuseta kweapp, iwe unoda iOS yekugovera uye makiyi ekusimudzira akagadzirwa muChitupa, Identifiers & Profiles chikamu cheApple Developer console. Zvese izvi zvitupa zvinogona kusanganiswa kuita profil yekugovera.

Vashandisi vanozove vechokwadi vanofanirwa kukwanisa kugadzira zvitupa, zvikasadaro matanho cert uye kugomera uchaona kukanganisa.

vamwe mikana

Kunze kweiyi nzira iri nyore, kune dzimwe nzira dzekugadzirisa zvitupa nemaprofile. Saka, kana ukashanda zvakasiyana, ungafanira kugadzirisa. Chinhu chinonyanya kukosha ndechekuti iwe unoda configuration .xcodebuild, iyo inonongedzera kune anodiwa mafaera, uye keychain inofanira kuwanikwa pakuvaka komputa yemushandisi pasi pezita rake mumhanyi ari kumhanya. Kune siginecha yedhijitari tinoshandisa fastlane, uye kana paine matambudziko kana iwe uchida kuziva zvakawanda, tarisa iwo ruzivo zvinyorwa pamusoro pemasaini edhijitari.

Mumuenzaniso uyu ndiri kushandisa nzira cert uye kugomera, asi kushandiswa kwechokwadi pamwe kunokodzera zviri nani mutambo.

Kugadzirira GitLab uye fastlane

Kugadzirira CI Runner

Taunganidza data rese iri, tinoenderera mberi nekugadziriswa kweGitLab mumhanyi pane MacOS mudziyo. Nehurombo, iwe unogona chete kugadzira iOS maapplication paMacOS. Asi zvese zvinogona kuchinja, uye kana iwe uchitarisira kufambira mberi munzvimbo ino, ramba uine ziso pamapurojekiti akadai xcbuild ΠΈ sign, uye basa redu remukati gitlab-ce#57576.

Kugadzika mumhanyi kuri nyore kwazvo. Tevera zvazvino mirairo yekumisikidza GitLab Runner pane macOS.

Cherechedza. Mumhanyi anofanira kushandisa chirongwa chinogoneka shell. Izvi zvinodikanwa kuvaka iOS pane macOS kushanda zvakananga semushandisi kwete kuburikidza nemidziyo. Kana uri kushandisa shell, kuvaka uye kuyedzwa kunoitwa semumhanyi mushandisi, zvakananga pane inovaka. Haina kuchengetedzeka semidziyo, saka zvirinani kutarisa kuchengetedza zvinyorwasaka hapana chaunopotsa.

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 inofanirwa kugadziridzwa pane ino host nekuwana makiyi ayo Xcode inoda kuvaka. Nzira iri nyore yekuyedza iyi ndeyekupinda semushandisi anomhanyisa kuvaka uye kuyedza kuivaka nemaoko. Kana iyo system ichikumbira kuwana keychain, sarudza Nguva dzose Bvumira kuti CI ishande. Zvingave zvakakodzera kuti upinde uye utarise maviri ekutanga emapombi kuti ave nechokwadi chekuti havachabvunzi keychain zvakare. Dambudziko nderekuti Apple haiite kuti zvive nyore kwatiri kuti tishandise Auto mode, asi kana iwe uchinge waita kuti iende, zvese zvichanaka.

fastlane init

Kuti ushandise fastlane mupurojekiti, mhanya fastlane init. Ingotevera mirayiridzo yekuisa uye kumhanya fastlane, kunyanya muchikamu pamusoro Gemfile, nekuti isu tinoda kukurumidza uye kufungidzira kuvhurwa kuburikidza neotomatiki CI pombi.

Mune dhairekitori reprojekiti yako, mhanyisa iyi mirairo:

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

fastlane inokumbira kugadziridzwa kwekutanga uye wozogadzira folda yefastlane mupurojekiti ine mafaera matatu:

1. fastlane/Appfile

Hapana chakaoma apa. Ingoita shuwa kuti Apple ID yako uye App ID ndezvechokwadi.

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

2. fastlane/Fastfile

Fastfile inotsanangura matanho ekuvaka. Isu tinoshandisa akawanda efastlane akavakirwa-mukati maficha, saka zvese zviri pachena pano futi. Isu tinogadzira mutsara mumwe unogamuchira zvitupa, kuita gungano uye kurodha kuTestFlight. Iwe unogona kugovera iyi nzira mumabasa akasiyana kana zvichidikanwa. Zvese izvi mashandiro (get_certificates, get_provisioning_profile, gym ΠΈ upload_to_testflight) dzakatobatanidzwa mufastlane.

Zviito get_certificates ΠΈ get_provisioning_profile zvine chekuita nekusaina nzira cert uye kugomera. Kana uri kushandisa mutambo kana chii, ita shanduko.

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

Iri ifaira rekusarudza, asi ndakarigadzira nemaoko kuti ndichinje dhairekitori rekubuda uye nekuisa iyo inobuda muforodha iripo. Izvi zvinorerutsa CI. Kana uchida, verenga nezve gym uye maparameter ayo mukati zvinyorwa.

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

Yedu .gitlab-ci.yml

Saka, isu tine CI mumhanyi wepurojekiti uye takagadzirira kuyedza pombi. Ngationei zvatinazvo .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

ВсС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ! Isu tinoisa iyo fomati kuUTF-8 yefastlane sezvinodiwa, shandisa zano clone pamwe nekuita chirongwa shell, kuitira kuti tive nenzvimbo yekushanda yakachena yegungano rega rega, uye kungofonera flappybuild fastlane, sezvaonekwa pamusoro. Nekuda kweizvozvo, tinowana gungano, siginecha uye kutumira kwegungano razvino muTestFlight.

Isu tinotorawo artifact uye tinoichengeta pamwe negungano. Ndapota cherechedza kuti chimiro .ipa ndeye yakasainwa ARM inogoneka iyo isingamhanye mune simulator. Kana iwe uchida kuburitsa kune iyo simulator, ingo wedzera iyo yekuvaka chinangwa chinoigadzira, wobva waisanganisa munzira yekugadzira.

Zvimwe zvakasiyana-siyana zvakatipoteredza

Kune akati wandei emamiriro ekunze akasiyana pano anoita kuti zvese zvishande.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION

Kusimbiswa kwefastlane kunodiwa kuti utendeke muApp Store uye kurodha kuTestFlight. Kuti uite izvi, gadzira password yekushandisa iyo ichashandiswa muCI. Details pano.

Kana uine mbiri-chinhu chechokwadi, gadzira shanduko FASTLANE_SESSION (mirayiridzo ipapo).

FASTLANE_USER ΠΈ FASTLANE_PASSWORD

kuti cert uye kugomera yakadanwa iyo yekutanga mbiri uye zvitupa pakukumbira, iwe unofanirwa kuseta zvinosiyana FASTLANE_USER ΠΈ FASTLANE_PASSWORD. Details pano. Izvi hazvidiwi kana uri kushandisa imwe nzira yekusaina.

Mukupedzisa

Unogona kuona kuti zvese zvinoshanda sei mumuenzaniso wangu wakapfava.

Ndinovimba izvi zvaibatsira uye zvakakukurudzira kuti ushande neIOS inovaka muGitLab purojekiti. Hechino chimwe CI mazano for fastlane, just in case. Ungada kushandisa CI_BUILD_ID (yekuwedzera kuvaka) ku automatic increment version.

Chimwe chinhu chinotonhorera chefastlane ndeye otomatiki skrini yeApp Store, zviri nyore kwazvo kumisikidza.

Tiudze mune zvakataurwa nezve ruzivo rwako uye ugovane mazano ako ekuvandudza GitLab ye iOS app kuvandudza.

Source: www.habr.com

Voeg