Te whakaputa i nga tono a iOS ki te Toa App me te GitLab me te tere tere

Te whakaputa i nga tono a iOS ki te Toa App me te GitLab me te tere tere

Me pehea a GitLab me te tere tere ki te kohikohi, ki te tohu me te whakaputa i nga tono iOS ki te Toa App.

I tata matou panui mo te hanga tere me te whakahaere i tetahi tono Android me GitLab me tere. I konei ka kite tatou me pehea te hanga me te whakahaere i tetahi taupānga iOS me te whakaputa ki TestFlight. Tirohia te hauhautanga Kei te huri au i tetahi iPad Pro me te IDE Tukutuku a GitLab, Ka tango ahau i te huihuinga ka whiwhi whakahou ki te putanga whakamatautau o te tono i runga i te iPad Pro kotahi i whakawhanakehia ai e ahau.

I konei ka tangohia e matou taupānga iOS ngawari i runga i te Swift, i tuhia e ahau te ataata ki a ia.

He kupu torutoru mo te whirihoranga a Apple Store

Ka hiahia matou i tetahi taupānga Toa Toa, tiwhikete tohatoha, me tetahi tohu whakarato hei hono i nga mea katoa.

Ko te mea tino uaua i konei ko te whakatuu motika hainatanga ki te Toa App. Te ti'aturi nei au ka taea e koe te whakaaro i tenei mo koe ake. Mena he hou koe, ka tohu ahau i a koe ki te huarahi tika, engari kare matou e korero mo nga uauatanga o te whakahaere i nga tiwhikete Apple i konei, a kei te huri haere tonu. Ma tenei panui ka awhina koe ki te timata.

Aku Taupānga

Kei te hiahia koe ki tetahi taupānga kei App Store Connect kia whai ID koe mo te whirihoranga .xcodebuild. Ko te kōtaha me te ID tono e whakakotahi ana i te hanga waehere, te utu me te waatea, me te whirihoranga TestFlight mo te tohatoha tono whakamatautau ki nga kaiwhakamahi. Kaua e mahi i nga whakamatautau a te iwi, ka rato nga whakamatautau motuhake mena he roopu iti koe, he ngawari te whakarite, kaore koe e hiahia ki etahi atu whakaaetanga mai i a Apple.

Kōtaha arataki

I tua atu i te tatūnga taupānga, me hiahia koe ki te tohatoha me nga taviri whanaketanga iOS i hangaia i roto i nga Tiwhikete, Kaitohu me nga Profile waahanga o te papatohu Kaiwhakawhanake Apple. Ko enei tiwhikete katoa ka taea te whakakotahi ki roto i tetahi tohu tuku.

Ko nga kaiwhakamahi ka whakamotuhēhēhia me kaha ki te hanga tiwhikete, ki te kore ko nga hikoinga cert me te aue ka kite koe i tetahi hapa.

atu kōwhiringa

I tua atu i tenei tikanga ngawari, tera ano etahi atu huarahi hei whirihora i nga tiwhikete me nga korero. Na, ki te mahi rereke koe, me urutau pea koe. Ko te mea nui ka hiahia koe ki te whirihoranga .xcodebuild, ka tohu ki nga konae e tika ana, a me waatea te mekameka matua i runga i te rorohiko hanga mo te kaiwhakamahi kei raro nei tona ingoa e rere ana te kaiwhai. Mo te hainatanga matihiko ka whakamahi matou i te tere tere, a mena he raru kei te pirangi koe ki te mohio atu, tirohia o raatau korero tuhinga mo nga waitohu matihiko.

I tenei tauira kei te whakamahi ahau i te huarahi cert me te aue, engari mo te tino whakamahi he pai ake pea ōrite.

Te whakarite i a GitLab me te ara tere

Te whakarite CI Runner

Ka kohia enei raraunga katoa, ka neke atu ki te whirihoranga o te kaikawe GitLab i runga i te taputapu MacOS. Kia aroha mai, ka taea e koe anake te hanga i nga taupānga iOS i runga i te MacOS. Engari ka huri nga mea katoa, a, ki te tumanako koe ki te ahunga whakamua i roto i tenei waahanga, kia mau ki nga kaupapa penei xc hanga и tohu, me ta matou mahi o roto gitlab-ce#57576.

Ko te whakarite i te kaihoroi he tino ngawari. Whai i te wa nga tohutohu mo te whakarite GitLab Runner ki runga macOS.

Tuhipoka. Me whakamahi te kaihoroi i tetahi papatono ka taea te whakahaere shell. Me mahi tenei ki te hanga iOS ki runga macOS kia mahi tika hei kaiwhakamahi, kaua ma nga ipu. Mena kei te whakamahi koe shell, Ko te hanga me te whakamatautau ka mahia hei kaiwhakamahi kaikawe, i runga tonu i te kaihautu hanga. Ehara i te mea haumaru penei i nga ipu, no reira pai ake te tirotiro tuhinga haumarukia kore koe e ngaro i tetahi mea.

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

Me whirihorahia a Apple Keychain ki runga i tenei kaihautu me te uru ki nga taviri me hanga e Xcode. Ko te huarahi ngawari ki te whakamatau i tenei ko te takiuru hei kaiwhakamahi mana e whakahaere te hanga me te ngana ki te hanga a-ringa. Mena ka tono te punaha mo te uru ki te mekameka matua, tohua te Whakaaetanga i nga wa katoa kia mahi a CI. He pai pea te haere ki roto ki te mataki i nga paipa tuatahi e rua kia kore ai e tono mo te mekameka matua. Ko te raru ko te kore a Apple e ngawari ki a maatau ki te whakamahi i te aratau Aunoa, engari ka eke koe, ka pai nga mea katoa.

tererangi init

Hei whakamahi tere tere i roto i te kaupapa, rere fastlane init. Whai noa nga tohutohu mo te whakauru me te whakahaere i te ara tere, ina koa i roto i te waahanga mo Kōwae kohatu, na te mea e hiahia ana matou ki te whakarewanga tere me te matapae ma te paipa CI aunoa.

I roto i to whaiaronga kaupapa, whakahaere enei whakahau:

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

ka tono a fastlane mo tetahi whirihoranga taketake katahi ka hanga he kōpaki tere ki roto i te kaupapa me nga konae e toru:

1. fastlane/Appfile

Kaore he mea uaua i konei. Me mohio kei te tika to ID Apple me to ID Taupānga.

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

2. fastlane/Fastfile

Fastfile ka tautuhi i nga waahanga hanga. Ka whakamahia e matou te maha o nga waahanga hanga-i roto i te fastlane, no reira kua marama nga mea katoa i konei. Ka hangaia e matou tetahi raina ka whiwhi tiwhikete, ka whakahaere i te huihuinga me te tuku ki te TestFlight. Ka taea e koe te wehewehe i tenei tukanga ki nga mahi rereke mehemea e tika ana. Ko enei mahi katoa (get_certificates, get_provisioning_profile, gym и upload_to_testflight) kua whakauruhia ki roto i te tere tere.

Nga mahi get_certificates и get_provisioning_profile e pa ana ki te huarahi hainatanga cert me te aue. Mena kei te whakamahi koe ōrite aha ranei, whakarereketia.

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

He konae whiriwhiri tenei, engari i hanga a ringatia e au hei huri i te raarangi whakaputa taunoa me te tuu i te putanga ki te kōpaki o naianei. Ma tenei ka ngawari te CI. Ki te hiahia, panui mo gym me ona tawhā i roto tuhinga.

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

Tatou .gitlab-ci.yml

Na, he kaikawe CI mo te kaupapa, kua rite matou ki te whakamatautau i te paipa. Kia kite tatou he aha kei roto .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

Все отлично! I tautuhia e matou te whakatakotoranga ki te UTF-8 mo te tere tere ina hiahiatia, whakamahi rautaki clone me te whakahaere i te kaupapa shell, kia whai waahi mahi ma mo ia huihuinga, ka waea noa flappybuild tererangi, pera i runga ake nei. Ko te mutunga, ka whiwhi matou i te huihuinga, hainatanga me te tukunga o te huihuinga hou i TestFlight.

Ka whiwhi hoki matou i te taonga me te penapena me te huihuinga. Kia mahara ko te whakatakotoranga .ipa he ARM kua hainatia e kore e rere i roto i te simulator. Mena kei te pirangi koe ki te whakaputanga mo te simulator, taapiri noa i te whaainga hanga e whakaputa ana, katahi ka whakauruhia ki te ara toi.

Ētahi atu taurangi taiao

E rua nga taurangi taiao i konei e mahi ai nga mea katoa.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Ko te motuhēhēnga mo te tere tere e hiahiatia ana ki te whakamotuhēhē i roto i te Toa App me te tuku ki TestFlight. Ki te mahi i tenei, hanga he kupuhipa mo te tono ka whakamahia ki te CI. Nga korero konei.

Mena he motuhēhēnga-rua koe, hangahia he taurangi FASTLANE_SESSION (he tohutohu kei reira).

FASTLANE_USER и FASTLANE_PASSWORD

e cert me te aue huaina te kōtaha arawhiti me nga tiwhikete i runga i te tono, me whakarite e koe nga taurangi FASTLANE_USER и FASTLANE_PASSWORD. Nga korero konei. Kaore e tika ana mena kei te whakamahi koe i tetahi tikanga hainatanga rereke.

I te mutunga

Ka taea e koe te kite me pehea te mahi katoa i roto i taku tauira ngawari.

Te ti'aturi nei au i awhina tenei me te whakaawe i a koe ki te mahi me te hanga iOS i roto i te kaupapa GitLab. Tenei ano tetahi Tohutohu CI mo te teretere, mena ka tika. Ka hiahia pea koe ki te whakamahi CI_BUILD_ID (mo te hanga incremental) ki te whakanui aunoa i te putanga.

Ko tetahi atu ahuatanga pai o te tere tere screenshots aunoa mo te Toa App, he tino ngawari ki te whakarite.

Korerohia mai ki a matou i roto i nga korero mo to wheako me te tiri i o whakaaro mo te whakapai ake i te GitLab mo te whanaketanga taupānga iOS.

Source: will.com

Tāpiri i te kōrero