Bi GitLab û fastlane serîlêdanên iOS-ê li App Store-ê weşandin

Bi GitLab û fastlane serîlêdanên iOS-ê li App Store-ê weşandin

Çawa GitLab bi fastlane serîlêdanên iOS-ê li App Store-ê berhev dike, îmze dike û diweşîne.

Em vê dawiyê hebûn binivîsin ka meriv çawa zû serlêdanek Android-ê ava dike û dimeşîne bi GitLab û Şirîta lezgîn. Li vir em ê bibînin ka meriv çawa serîlêdanek iOS-ê ava dike û dimeşîne û wê li TestFlight-ê belav dike. Binêrin ka ew çiqas xweş e Ez bi GitLab Web IDE re li ser iPad Pro-yê guhertinekê çêdikim, Ez civînê digirim û nûvekirina guhertoya ceribandinê ya serîlêdanê li ser heman iPad Pro-ya ku min lê pêşxistiye distînim.

Li vir em ê bigirin serîlêdana hêsan a iOS-ê li ser Swift, bi kê re min vîdyo tomar kir.

Çend gotin li ser veavakirina Apple Store

Em ê hewceyê serîlêdanek App Store-ê, sertîfîkayên belavkirinê, û profîlek dabînkirinê hewce bikin ku her tiştî bi hev re girêbidin.

Tişta herî dijwar li vir sazkirina mafên îmzekirinê di App Store de ye. Ez hêvî dikim ku hûn dikarin vê yekê ji bo xwe fêm bikin. Ger hûn nû ne, ez ê rê li ber we bidim, lê em ê li vir qala tevliheviyên birêvebirina sertîfîkayên Apple-ê nekin, û ew bi domdarî diguhezin. Ev post dê ji we re bibe alîkar ku hûn dest pê bikin.

My Apps

Di App Store Connect-ê de pêdiviya we bi serîlêdanek heye da ku hûn ji bo veavakirinê nasnameyek we hebe .xcodebuild. Nasnameya profîl û serîlêdanê ji bo belavkirina sepanên ceribandinê li bikarhêneran, avahîyên kodê, biha û hebûna, û veavakirina TestFlight bi hev re dike. Testkirina gelemperî nekin, ceribandina taybet dê têrê bike heke we grûbek piçûk hebe, sazkirina hêsan, û ne hewceyî destûrên zêde ji Apple-ê ne.

Profîla destpêkê

Ji bilî sazkirina sepanê, hûn hewceyê bişkojkên belavkirin û pêşkeftina iOS-ê yên ku di beşa Sertîfîka, Nasname û Profîlên konsolê Pêşdebirê Apple de hatine afirandin hene. Hemî van sertîfîkayan dikarin di profîlek dabînkirinê de bêne hev kirin.

Bikarhênerên ku dê bêne pejirandin hewce ne ku karibin sertîfîkayan biafirînin, wekî din gavan cert û axîn hûn ê xeletiyek bibînin.

Vebijarkên din

Ji bilî vê rêbaza hêsan, awayên din jî hene ku hûn sertîfîka û profîlan mîheng bikin. Ji ber vê yekê, heke hûn bi rengek cûda bixebitin, dibe ku hûn neçar bibin ku xwe adapte bikin. Ya herî girîng ev e ku hûn hewceyê veavakirinê ye .xcodebuild, ya ku dê pelên pêwîst nîşan bide, û zincîra mifteyê divê li ser komputera çêkirî ji bo bikarhênerê ku di bin navê wî de bez dimeşe peyda bibe. Ji bo îmzeya dîjîtal em fastlane bikar tînin, û heke pirsgirêk hebin an hûn dixwazin bêtir zanibin, hûrguliyên wan kontrol bikin belgeyên li ser îmzeyên dîjîtal.

Di vê nimûneyê de ez nêzîkatiyê bikar tînim cert û axîn, lê ji bo karanîna rastîn ew belkî çêtir e wekwî.

Amadekirina GitLab û fastlane

Amadekirina CI Runner

Piştî ku van hemî daneyan berhev kirin, em diçin ser veavakirina gerîdeya GitLab li ser cîhaza MacOS. Mixabin, hûn tenê dikarin serîlêdanên iOS-ê li MacOS-ê çêbikin. Lê her tişt dikare biguhere, û ger hûn li benda pêşkeftina di vî warî de bin, çavê xwe li projeyên mîna bigirin xcbuild и nîşan, û karê me yê navxweyî gitlab-ce#57576.

Sazkirina runner pir hêsan e. Herî dawî bişopînin talîmatên ji bo sazkirina GitLab Runner li ser macOS.

Not. The runner divê bernameyeke îcrakar bi kar tînin shell. Ev pêdivî ye ku iOS-ê li ser macOS-ê ava bike da ku rasterast wekî bikarhênerek ne bi konteyneran bixebite. Heke hûn bikar tînin shell, avakirin û ceribandin wekî bikarhênerê runner, rasterast li ser mêvandarê çêkirinê têne kirin. Ew wekî konteyneran ne ewle ye, ji ber vê yekê çêtir bigerin belgeyên ewlehiyêda ku hûn tiştek ji bîr nekin.

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

Pêdivî ye ku Apple Keychain li ser vê mêvandarê bi gihîştina bişkojkên ku Xcode hewce dike ku ava bike were mîheng kirin. Rêya herî hêsan a ceribandina vê ev e ku meriv wekî bikarhênerê ku dê avahîsaziyê bimeşîne têkeve û hewl bide ku wê bi destan ava bike. Ger pergal ji bo gihîştina zincîra mifteyê bixwaze, Hilbijêre Herdem Destûr bide ku CI bixebite. Dibe ku hêja ye ku hûn biçin hundur û li du lûleyên yekem temaşe bikin da ku pê ewle bibin ku ew êdî zencîra mifteyê nepirsin. Pirsgirêk ev e ku Apple ji me re karanîna moda Auto-yê hêsan nake, lê gava ku hûn wê bi dest bixin, dê her tişt baş be.

fastlane init

Ji bo ku di projeyekê de fastlane bikar bînin, bimeşînin fastlane init. Tenê bişopînin talîmatên ji bo sazkirin û meşandina fastlane, bi taybetî di beşa der barê Gemfile, ji ber ku em hewceyê destpêkirina bilez û pêşbînîkirî bi navgîniya boriyek CI-ya otomatîkî ye.

Di pelrêça projeya xwe de, van fermanan bimeşînin:

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

fastlane dê mîhengek bingehîn bipirse û dûv re di projeyê de peldankek fastlane bi sê pelan biafirîne:

1. fastlane/Appfile

Li vir tiştek tevlihev tune. Tenê piştrast bikin ku ID-a Apple û ID-ya weya App-ê rast in.

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

2. fastlane/Fastfile

Fastfile gavên avakirinê diyar dike. Em gelek taybetmendiyên çêkirî yên fastlane bikar tînin, ji ber vê yekê her tişt li vir jî zelal e. Em yek rêzek diafirînin ku sertîfîkayan distîne, civînê pêk tîne û li TestFlight bar dike. Ger hewce be hûn dikarin vê pêvajoyê li karên cûda dabeş bikin. Hemî van operasyonan (get_certificates, get_provisioning_profile, gym и upload_to_testflight) jixwe di fastlane de hene.

Actions get_certificates и get_provisioning_profile bi nêzîkatiya îmzekirinê ve girêdayî ye cert û axîn. Heke hûn bikar tînin wekwî an jî her çi, guhertinan bikin.

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

Ev pelek vebijarkî ye, lê min ew bi destan afirand da ku pelrêça derketinê ya xwerû biguhezîne û encam di peldanka heyî de bi cîh bike. Ev CI hêsan dike. Ger eleqedar be, li ser bixwînin gym û pîvanên wê di nav de belgekirin.

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

Me .gitlab-ci.yml

Ji ber vê yekê, me ji bo projeyê rêvebirek CI heye û em amade ne ku ceribandina boriyê bikin. Ka em bibînin ka di nav me de çi heye .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

Vîdeo! Me ji bo fastlane wekî ku hewce dike formata UTF-8 saz kir, stratejiyê bikar bînin clone bi pêkanîna bernameyê shell, da ku em ji bo her civînê cîhek xebata paqij heye, û bi tenê bang bikin flappybuild fastlane, wek ku li jor tê dîtin. Wekî encamek, em di TestFlight de civîn, îmzekirin û bicîhkirina civîna herî dawî distînin.

Em eserê jî distînin û bi meclîsê xilas dikin. Ji kerema xwe not bikin ku format .ipa îcrakarek ARM-ê ya îmzekirî ye ku di simulatorê de naxebite. Heke hûn ji bo simulatorê derketinê dixwazin, tenê armanca avakirina ku wê hildiberîne lê zêde bikin, û dûv re wê têxin nav riya hunerî.

Guherbarên hawirdorê yên din

Li vir çend guhêrbarên jîngehê hene ku her tiştî dixebitîne.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Nasname ji bo fastlane hewce ye ku di App Store-ê de were pejirandin û li TestFlight were barkirin. Ji bo vê yekê, ji bo serîlêdana ku dê di CI-ê de were bikar anîn şîfreyek biafirînin. Details vir.

Ger rastkirina du-faktorê we heye, guhêrbarek biafirînin FASTLANE_SESSION (telîmatên li wir).

FASTLANE_USER и FASTLANE_PASSWORD

ku cert û axîn Li ser daxwazê ​​​​profîla destpêkê û sertîfîkayan tê gotin, hûn hewce ne ku guhêrkan saz bikin FASTLANE_USER и FASTLANE_PASSWORD. Details vir. Heke hûn rêbazek îmzekirina cûda bikar tînin ev ne hewce ye.

Di encamê de

Hûn dikarin bibînin ka ew hemî çawa dixebite di mînaka min a hêsan de.

Ez hêvî dikim ku ev arîkar bû û we teşwîq kir ku hûn bi avahîyên iOS-ê re di projeyek GitLab de bixebitin. Va ye din CI tips ji bo fastlane, tenê di doza. Dibe ku hûn bixwazin bikar bînin CI_BUILD_ID (ji bo avahiyên zêdebûyî) bi guhertoya bixweber zêde dike.

Taybetmendiyek din a xweş a fastlane ev e dîmenên otomatîkî ji bo App Store, ku sazkirina wan pir hêsan e.

Di şîroveyan de li ser ezmûna xwe ji me re vebêjin û ramanên xwe ji bo baştirkirina GitLab ji bo pêşkeftina sepana iOS-ê parve bikin.

Source: www.habr.com

Add a comment