Ke hoʻopuka nei i nā noi iOS ma ka Hale Kūʻai App me GitLab a me ka wikiwiki

Ke hoʻopuka nei i nā noi iOS ma ka Hale Kūʻai App me GitLab a me ka wikiwiki

Pehea ʻo GitLab me fastlane e hōʻiliʻili ai, hōʻailona a hoʻopuka i nā noi iOS i ka hale kūʻai App.

Ua loaʻa iā mākou i kēia manawa hoʻopuka e pili ana i ke kūkulu wikiwiki ʻana a me ka holo ʻana i kahi noi Android me GitLab a me alahele wikiwiki. Maanei e ʻike mākou pehea e kūkulu ai a holo i kahi polokalamu iOS a hoʻolaha iā ia i TestFlight. E nānā i ka ʻoluʻolu Ke hoʻololi nei au i kahi iPad Pro me GitLab Web IDE, Lawe au i ka hui a loaʻa i kahi mea hou i ka mana hoʻāʻo o ka noi ma ka iPad Pro hoʻokahi kahi aʻu i kūkulu ai.

Maanei mākou e lawe ai polokalamu iOS maʻalahi ma Swift, ka mea aʻu i hoʻopaʻa ai i ka wikiō.

ʻO kekahi mau huaʻōlelo e pili ana i ka hoʻonohonoho Apple Store

Pono mākou i kahi polokalamu App Store, nā palapala hōʻoia, a me kahi ʻaoʻao hoʻolako e hoʻopili i nā mea āpau.

ʻO ka mea paʻakikī loa ma aneʻi ʻo ka hoʻonohonoho ʻana i nā kuleana ma ka App Store. Manaʻo wau hiki iā ʻoe ke noʻonoʻo i kēia no ʻoe iho. Inā he mea hou ʻoe, e kuhikuhi wau iā ʻoe i ke ala pololei, akā ʻaʻole mākou e kamaʻilio e pili ana i ka paʻakikī o ka mālama ʻana i nā palapala Apple ma aneʻi, a ke loli mau nei lākou. E kōkua kēia pou iā ʻoe e hoʻomaka.

ʻO kaʻu mau polokalamu

Pono ʻoe i kahi polokalamu ma App Store Connect i loaʻa iā ʻoe kahi ID no ka hoʻonohonoho .xcodebuild. Hoʻohui ka ʻaoʻao a me ka ID noi i nā code build, ke kumu kūʻai a me ka loaʻa, a me ka hoʻonohonoho TestFlight no ka hāʻawi ʻana i nā noi hoʻāʻo i nā mea hoʻohana. Mai hana i ka hoʻāʻo lehulehu, lawa ka hoʻāʻo pilikino inā he hui liʻiliʻi kāu, hoʻonohonoho maʻalahi, a ʻaʻole pono i nā ʻae hou mai Apple.

Hōʻike hoʻomaka

Ma waho aʻe o ka hoʻonohonoho ʻana i ka app, pono ʻoe i ka hoʻolaha ʻana a me nā kī hoʻomohala iOS i hana ʻia ma nā palapala palapala, ʻike a me nā ʻaoʻao o ka Apple Developer console. Hiki ke hoʻohui ʻia kēia mau palapala hōʻoia a pau i kahi ʻaoʻao hoʻolako.

Pono nā mea hoʻohana e hōʻoia ʻia e hana i nā palapala hōʻoia, inā ʻaʻole nā ​​ʻanuʻu hōʻoia a kanikau e ʻike ʻoe i kahi hewa.

nā koho

Ma waho aʻe o kēia ʻano maʻalahi, aia nā ala ʻē aʻe e hoʻonohonoho i nā palapala hōʻoia a me nā profiles. No laila, inā ʻokoʻa kāu hana, pono paha ʻoe e hoʻololi. ʻO ka mea nui, pono ʻoe i ka hoʻonohonoho .xcodebuild, e kuhikuhi ana i nā faila pono, a pono e loaʻa ke kī kī ma ke kamepiula kūkulu no ka mea hoʻohana ma lalo o kona inoa e holo nei ka mea holo. No ka hōʻailona kikohoʻe hoʻohana mākou i ka fastlane, a inā he pilikia a makemake ʻoe e ʻike hou aku, e nānā i kā lākou kikoʻī palapala e pili ana i nā pūlima kikohoʻe.

I kēia laʻana, ke hoʻohana nei au i ke ala hōʻoia a kanikau, akā no ka hoʻohana maoli ʻana ʻoi aku ka maikaʻi ń.

Ke hoʻomākaukau nei iā GitLab a me ka wikiwiki

Hoʻomākaukau ʻana iā CI Runner

Ma hope o ka hōʻiliʻili ʻana i kēia ʻikepili āpau, neʻe mākou i ka hoʻonohonoho ʻana o ka mea holo GitLab ma ka polokalamu MacOS. ʻO ka mea pōʻino, hiki iā ʻoe ke hana i nā polokalamu iOS ma MacOS. Akā hiki ke loli nā mea a pau, a inā e manaʻo ʻoe i ka holomua ma kēia wahi, e nānā i nā papahana like xcbuild и hōʻailona, a me kā mākou hana kūloko gitlab-ce#57576.

He maʻalahi loa ka hoʻonohonoho ʻana i ka mea holo. E hahai i kēia manawa nā ʻōlelo kuhikuhi no ka hoʻonohonoho ʻana iā GitLab Runner ma macOS.

Nānā. Pono ka mea holo e hoʻohana i kahi polokalamu hoʻokō shell. Pono kēia e kūkulu iā iOS ma macOS e hana pololei ma ke ʻano he mea hoʻohana ma mua o nā ipu. Inā ʻoe e hoʻohana nei shell, hana ʻia ke kūkulu ʻana a me ka hoʻāʻo ʻana e like me ka mea hoʻohana runner, pololei ma ka hale kūkulu hale. ʻAʻole palekana e like me nā pahu, no laila ʻoi aku ka maikaʻi o ka nānā ʻana palapala palekanano laila ʻaʻole ʻoe e haʻalele i kekahi 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

Pono e hoʻonohonoho ʻia ʻo Apple Keychain ma kēia pūʻali me ke komo ʻana i nā kī e pono ai ʻo Xcode e kūkulu. ʻO ke ala maʻalahi e hoʻāʻo ai i kēia, ʻo ia ke komo ʻana ma ke ʻano he mea hoʻohana e holo i ka hale a hoʻāʻo e kūkulu me ka lima. Inā noi ka ʻōnaehana no ke komo ʻana i ke kaula kī, koho E ʻae mau iā CI e hana. Pono paha e komo i loko a nānā i nā paipu mua ʻelua e ʻike pono ʻaʻole lākou e noi hou aku i ke kaula kī. ʻO ka pilikia, ʻaʻole maʻalahi ʻo Apple iā mākou e hoʻohana i ke ʻano Auto, akā ke hele ʻoe, e maikaʻi nā mea a pau.

holo wikiwiki init

No ka hoʻohana ʻana i ka fastlane i kahi papahana, holo fastlane init. Hahai wale nā ʻōlelo aʻoaʻo no ka hoʻokomo ʻana a me ka holo ʻana i ka laina wikiwiki, oi loa aku ma ka pauku e pili ana Gemfile, no ka mea pono mākou i ka hoʻomaka wikiwiki a me ka wānana ma o kahi pipeline CI automated.

Ma kāu papa kuhikuhi papahana, e holo i kēia mau kauoha:

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

E noi ʻo fastlane i kahi hoʻonohonoho maʻamau a laila hana i kahi folder fastlane i ka papahana me ʻekolu faila:

1. fastlane/Appfile

ʻAʻohe mea paʻakikī ma ʻaneʻi. E hōʻoia i ka pololei o kāu Apple ID a me App ID.

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

2. fastlane/Fastfile

Fastfile wehewehe i nā ʻanuʻu kūkulu. Hoʻohana mākou i nā hiʻohiʻona i kūkulu ʻia o fastlane, no laila ua maopopo nā mea āpau ma aneʻi. Hana mākou i hoʻokahi laina e loaʻa nā palapala hōʻoia, hana i ka hui a hoʻouka iā ia i TestFlight. Hiki iā ʻoe ke hoʻokaʻawale i kēia kaʻina hana i nā hana like ʻole inā pono. ʻO kēia mau hana a pau (get_certificates, get_provisioning_profile, gym и upload_to_testflight) ua hoʻokomo mua ʻia i ke ala wikiwiki.

Nā hana get_certificates и get_provisioning_profile pili i ke ala hoailona hōʻoia a kanikau. Inā ʻoe e hoʻohana nei ń a i ʻole, e hoʻololi.

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 faila koho kēia, akā ua hana au ia mea me ka lima e hoʻololi i ka papa kuhikuhi hoʻopuka paʻamau a kau i ka hopena i ka waihona o kēia manawa. Hoʻomaʻamaʻa kēia iā CI. Inā hoihoi, heluhelu e pili ana gym a me kona mau palena ma palapala.

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

ʻO mākou .gitlab-ci.yml

No laila, loaʻa iā mākou he kukini CI no ka papahana a ua mākaukau mākou e hoʻāʻo i ka pipeline. E ʻike kāua i kā mākou mea i loko .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

Все отлично! Hoʻonohonoho mākou i ka hōpili i UTF-8 no ka holo wikiwiki e like me ka makemake, hoʻohana i ka hoʻolālā clone me ka hoʻokō ʻana i ka papahana shell, i loaʻa iā mākou kahi wahi hana maʻemaʻe no kēlā me kēia hui, a kāhea wale aku flappybuild holo wikiwiki, e like me ka mea i ʻike ʻia ma luna. ʻO ka hopena, loaʻa iā mākou ka hui, pūlima a me ka hoʻonohonoho ʻana o ka hui hou loa ma TestFlight.

Loaʻa iā mākou ka artifact a mālama iā ia me ka hui. E ʻoluʻolu e hoʻomaopopo i ke ʻano .ipa he mea hoʻokō ARM i hoʻopaʻa ʻia ʻaʻole holo i ka simulator. Inā makemake ʻoe i ka hoʻopuka no ka simulator, e hoʻohui wale i ka pahuhopu kūkulu e hana ai, a laila e hoʻokomo iā ia i ke ala artifact.

Nā hoʻololi kaiapuni ʻē aʻe

Aia kekahi mau ʻano hoʻololi kaiapuni ma ʻaneʻi e hana i nā mea a pau.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Pono ka hōʻoia no fastlane e hōʻoia i ka App Store a hoʻouka i TestFlight. No ka hana ʻana i kēia, hana i kahi ʻōlelo huna no ka noi e hoʻohana ʻia ma CI. Nā kikoʻī maanei.

Inā loaʻa iā ʻoe ka hōʻoia ʻelua kumu, e hana i kahi loli FASTLANE_SESSION (instructions there).

FASTLANE_USER и FASTLANE_PASSWORD

ia hōʻoia a kanikau i kapa ʻia ka ʻaoʻao hoʻomaka a me nā palapala hōʻoia ma ke noi, pono ʻoe e hoʻonohonoho i nā ʻano FASTLANE_USER и FASTLANE_PASSWORD. Nā kikoʻī maanei. ʻAʻole pono kēia inā ʻoe e hoʻohana ana i kahi ʻano hana pūlima ʻokoʻa.

I ka hopena

Hiki iā ʻoe ke ʻike pehea e hana ai nā mea a pau ma kaʻu laʻana maʻalahi.

Manaʻo wau ua kōkua kēia a hoʻoikaika iā ʻoe e hana me iOS i kūkulu ʻia i kahi papahana GitLab. Eia kekahi Nā ʻōlelo aʻoaʻo CI no ka holo wikiwiki, no ka hihia. Makemake paha ʻoe e hoʻohana CI_BUILD_ID (no ke kūkulu hou ʻana) i hoʻonui ʻakomi i ka mana.

ʻO kekahi hiʻohiʻona maikaʻi o ka fastlane kiʻi ʻoniʻoni ʻakomi no ka App Store, he mea maʻalahi loa ia e hoʻonohonoho.

E haʻi mai iā mākou ma nā manaʻo e pili ana i kāu ʻike a kaʻana like i kāu mau manaʻo no ka hoʻomaikaʻi ʻana iā GitLab no ka hoʻomohala ʻana i ka app iOS.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka