Titẹjade Awọn ohun elo iOS si Ile itaja App pẹlu GitLab ati fastlane

Titẹjade Awọn ohun elo iOS si Ile itaja App pẹlu GitLab ati fastlane

Bii GitLab pẹlu fastlane ṣe n gba, awọn ami ati ṣe atẹjade awọn ohun elo iOS si Ile itaja App.

A laipe ní firanṣẹ nipa bi o ṣe le yara kọ ati ṣiṣe ohun elo Android kan pẹlu GitLab ati ọna iyara. Nibi a yoo rii bii o ṣe le kọ ati ṣiṣe ohun elo iOS kan ati ṣe atẹjade si TestFlight. Ṣayẹwo bi o ṣe dara to Mo n ṣe iyipada lori iPad Pro pẹlu GitLab Web IDE, Mo gba apejọ naa ati gba imudojuiwọn si ẹya idanwo ti ohun elo lori iPad Pro kanna nibiti Mo ti ṣe idagbasoke rẹ.

Nibi a yoo gba o rọrun iOS app on Swift, pẹlu ẹniti mo ṣe igbasilẹ fidio naa.

Awọn ọrọ diẹ nipa iṣeto Apple Store

A yoo nilo ohun elo App Store, awọn iwe-ẹri pinpin, ati profaili ipese lati so ohun gbogbo pọ.

Ohun ti o nira julọ nibi ni ṣiṣeto awọn ẹtọ iforukọsilẹ ni Ile itaja App. Mo nireti pe o le ro eyi fun ara rẹ. Ti o ba jẹ tuntun, Emi yoo tọka si ọ ni itọsọna ọtun, ṣugbọn a kii yoo sọrọ nipa awọn intricacies ti iṣakoso awọn iwe-ẹri Apple nibi, ati pe wọn n yipada nigbagbogbo. Ifiweranṣẹ yii yoo ran ọ lọwọ lati bẹrẹ.

Awọn ohun elo Mi

O nilo ohun elo kan ni App Store Sopọ ki o ni ID kan fun iṣeto ni .xcodebuild. Profaili ati ID ohun elo darapọ awọn kikọ koodu, idiyele ati wiwa, ati iṣeto TestFlight fun pinpin awọn ohun elo idanwo si awọn olumulo. Maṣe ṣe idanwo gbogbo eniyan, idanwo ikọkọ yoo to ti o ba ni ẹgbẹ kekere kan, iṣeto irọrun, ati pe ko nilo awọn igbanilaaye afikun lati ọdọ Apple.

Profaili ibẹrẹ

Ni afikun si iṣeto app, o nilo pinpin iOS ati awọn bọtini idagbasoke ti a ṣẹda ni Awọn iwe-ẹri, Awọn idanimọ & Awọn profaili apakan ti console Olùgbéejáde Apple. Gbogbo awọn iwe-ẹri wọnyi le ni idapo sinu profaili ipese kan.

Awọn olumulo ti yoo jẹ ifọwọsi nilo lati ni anfani lati ṣẹda awọn iwe-ẹri, bibẹẹkọ awọn igbesẹ naa cert ati sigh o yoo ri ohun ašiše.

Awọn aṣayan miiran

Yato si ọna ti o rọrun yii, awọn ọna miiran wa lati tunto awọn iwe-ẹri ati awọn profaili. Nitorina, ti o ba ṣiṣẹ ni iyatọ, o le ni lati ṣe deede. Ohun pataki julọ ni pe o nilo iṣeto ni .xcodebuild, eyi ti yoo tọka si awọn faili pataki, ati pe keychain gbọdọ wa lori kọǹpútà alágbèéká fun olumulo labẹ orukọ ẹniti olusare nṣiṣẹ. Fun oni Ibuwọlu a lilo fastlane, ati ti o ba nibẹ ni o wa isoro tabi ti o fẹ lati mọ siwaju si, ṣayẹwo jade wọn alaye iwe nipa oni ibuwọlu.

Ni apẹẹrẹ yii Mo nlo ọna naa cert ati sigh, ṣugbọn fun lilo gidi o ṣee ṣe dara julọ baramu.

Ngbaradi GitLab ati fastlane

Ngbaradi CI Runner

Lẹhin ti o ti gba gbogbo data yii, a tẹsiwaju si iṣeto ti olusare GitLab lori ẹrọ MacOS. Laanu, o le ṣe awọn ohun elo iOS nikan lori MacOS. Ṣugbọn ohun gbogbo le yipada, ati pe ti o ba nireti ilọsiwaju ni agbegbe yii, tọju oju lori awọn iṣẹ akanṣe bi xcbuild и ami, ati iṣẹ-ṣiṣe inu wa gitlab-ce # 57576.

Ṣiṣeto olusare jẹ rọrun pupọ. Tẹle awọn titun awọn ilana fun eto GitLab Runner lori macOS.

Akiyesi. Isare gbọdọ lo ohun executable eto shell. Eyi nilo lati kọ iOS lori macOS lati ṣiṣẹ taara bi olumulo ju nipasẹ awọn apoti. Ti o ba nlo shell, Ilé ati igbeyewo ti wa ni ošišẹ ti bi olusare olumulo, taara lori Kọ ogun. Ko ṣe aabo bi awọn apoti, nitorinaa lilọ kiri dara julọ ailewu iwenitorina o ko padanu ohunkohun.

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 gbọdọ wa ni tunto lori agbalejo yii pẹlu iraye si awọn bọtini ti Xcode nilo lati kọ. Ọna to rọọrun lati ṣe idanwo eyi ni lati wọle bi olumulo ti yoo ṣiṣẹ kọ ati gbiyanju lati kọ pẹlu ọwọ. Ti eto ba beere fun iraye si keychain, yan Gba laaye nigbagbogbo fun CI lati ṣiṣẹ. O le jẹ tọ lati wọle ati wiwo tọkọtaya akọkọ ti awọn opo gigun ti epo lati rii daju pe wọn ko beere fun keychain mọ. Iṣoro naa ni pe Apple ko jẹ ki o rọrun fun wa lati lo ipo Aifọwọyi, ṣugbọn ni kete ti o ba ti lọ, ohun gbogbo yoo dara.

fastlane init

Lati lo fastlane ni iṣẹ akanṣe kan, ṣiṣe fastlane init. Kan tẹle awọn ilana fun fifi ati nṣiṣẹ fastlane, paapa ni apakan nipa Gemfile, nitori a nilo ifilọlẹ iyara ati asọtẹlẹ nipasẹ opo gigun ti epo CI adaṣe.

Ninu itọsọna iṣẹ akanṣe rẹ, ṣiṣe awọn aṣẹ wọnyi:

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

fastlane yoo beere fun iṣeto ipilẹ ati lẹhinna ṣẹda folda fastlane ninu iṣẹ akanṣe pẹlu awọn faili mẹta:

1. fastlane/Appfile

Ko si ohun idiju nibi. Kan rii daju pe ID Apple rẹ ati ID App jẹ deede.

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

2. fastlane/Fastfile

Fastfile asọye awọn igbesẹ Kọ. A lo ọpọlọpọ awọn ẹya ti a ṣe sinu fastlane, nitorinaa ohun gbogbo han gbangba nibi paapaa. A ṣẹda laini kan ti o gba awọn iwe-ẹri, ṣe apejọ ati gbejade si TestFlight. O le pin ilana yii si awọn iṣẹ ṣiṣe oriṣiriṣi ti o ba jẹ dandan. Gbogbo awọn iṣẹ wọnyi (get_certificates, get_provisioning_profile, gym и upload_to_testflight) ti wa ni tẹlẹ ninu fastlane.

Яействия get_certificates и get_provisioning_profile jẹmọ si fawabale ona cert ati sigh. Ti o ba nlo baramu tabi ohunkohun ti, ṣe awọn ayipada.

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

Eyi jẹ faili iyan, ṣugbọn Mo ṣẹda pẹlu ọwọ lati yi ilana iṣelọpọ aiyipada pada ki o si gbe iṣẹjade sinu folda lọwọlọwọ. Eyi jẹ irọrun CI. Ti o ba nife, ka nipa gym ati awọn paramita rẹ ni iwe.

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

Tiwa .gitlab-ci.yml

Nitorinaa, a ni olusare CI fun iṣẹ akanṣe ati pe a ti ṣetan lati ṣe idanwo opo gigun ti epo. Jẹ ká wo ohun ti a ni ninu .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

Все отлично! A ṣeto ọna kika si UTF-8 fun fastlane bi o ṣe nilo, lo nwon.Mirza clone pẹlu eto ṣiṣe shell, ki a ni aaye iṣẹ ti o mọ fun apejọ kọọkan, ati pe nirọrun pe flappybuild fastlane, bi a ti ri loke. Bi abajade, a gba apejọ, ibuwọlu ati imuṣiṣẹ ti apejọ tuntun ni TestFlight.

A tun gba artifact ati fi pamọ pẹlu apejọ. Jọwọ ṣe akiyesi pe ọna kika naa .ipa jẹ imuṣiṣẹ ARM ti o fowo si ti ko ṣiṣẹ ni simulator. Ti o ba fẹ iṣelọpọ fun simulator, kan ṣafikun ibi-afẹde kikọ ti o ṣe agbejade rẹ, lẹhinna fi sii si ọna artifact.

Miiran ayika oniyipada

Awọn oniyipada agbegbe kan wa nibi ti o jẹ ki ohun gbogbo ṣiṣẹ.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Ijeri fun fastlane ni a nilo lati jẹri ni Ile itaja App ati gbejade si TestFlight. Lati ṣe eyi, ṣẹda ọrọ igbaniwọle kan fun ohun elo ti yoo ṣee lo ni CI. Awọn alaye nibi.

Ti o ba ni ijẹrisi ifosiwewe meji, ṣẹda oniyipada kan FASTLANE_SESSION (awọn ilana nibẹ).

FASTLANE_USER и FASTLANE_PASSWORD

ti cert ati sigh ti a npe ni profaili ibẹrẹ ati awọn iwe-ẹri lori ibeere, o nilo lati ṣeto awọn oniyipada FASTLANE_USER и FASTLANE_PASSWORD. Awọn alaye nibi. Eyi kii ṣe dandan ti o ba nlo ọna ti o yatọ si ibuwọlu.

Ni ipari

O le wo bi gbogbo rẹ ṣe n ṣiṣẹ ninu mi rọrun apẹẹrẹ.

Mo nireti pe eyi ṣe iranlọwọ ati atilẹyin fun ọ lati ṣiṣẹ pẹlu awọn itumọ iOS ni iṣẹ akanṣe GitLab kan. Eyi ni miiran Awọn imọran CI fun fastlane, o kan ni irú. O le fẹ lati lo CI_BUILD_ID (fun awọn ile afikun) si laifọwọyi afikun version.

Ẹya itura miiran ti fastlane jẹ laifọwọyi sikirinisoti fun awọn App Store, eyi ti o wa gidigidi rọrun lati ṣeto soke.

Sọ fun wa ninu awọn asọye nipa iriri rẹ ki o pin awọn imọran rẹ fun ilọsiwaju GitLab fun idagbasoke ohun elo iOS.

orisun: www.habr.com

Fi ọrọìwòye kun