iOS lietojumprogrammu publicēŔana App Store, izmantojot GitLab un fastlane

iOS lietojumprogrammu publicēŔana App Store, izmantojot GitLab un fastlane

Kā GitLab ar fastlane apkopo, paraksta un publicē iOS lietojumprogrammas App Store.

Mums nesen bija ziņu par to, kā ātri izveidot un palaist Android lietojumprogrammu ar GitLab un fastlane. Å eit mēs redzēsim, kā izveidot un palaist iOS lietotni un publicēt to TestFlight. Pārbaudiet, cik tas ir forÅ”i Es veicu izmaiņas iPad Pro ierÄ«cē ar GitLab Web IDE, es paņemu montāžu un saņemu lietojumprogrammas testa versijas atjauninājumu tajā paŔā iPad Pro, kurā es to izstrādāju.

Å eit mēs ņemsim vienkārÅ”a iOS lietotne Swift, ar kuru kopā ierakstÄ«ju video.

Daži vārdi par Apple Store konfigurāciju

Lai visu savienotu, mums būs nepiecieŔama lietotne App Store, izplatīŔanas sertifikāti un nodroŔināŔanas profils.

Sarežģītākā lieta Å”eit ir parakstÄ«Å”anas tiesÄ«bu iestatÄ«Å”ana App Store. Es ceru, ka jÅ«s varat to izdomāt pats. Ja esat jauns, es norādÄ«Å”u jums pareizo virzienu, taču mēs Å”eit nerunāsim par Apple sertifikātu pārvaldÄ«bas sarežģījumiem, un tie pastāvÄ«gi mainās. Å Ä« ziņa palÄ«dzēs jums sākt.

Manas lietotnes

Lai jums bÅ«tu ID konfigurācijai, jums ir nepiecieÅ”ama lietotne pakalpojumā App Store Connect .xcodebuild. Profils un lietojumprogrammas ID apvieno koda bÅ«ves, cenas un pieejamÄ«bu, kā arÄ« TestFlight konfigurāciju, lai izplatÄ«tu testa lietojumprogrammas lietotājiem. Neveiciet publisku testÄ“Å”anu, ar privātu testÄ“Å”anu pietiks, ja jums ir maza grupa, vienkārÅ”a iestatÄ«Å”ana un jums nav nepiecieÅ”amas papildu Apple atļaujas.

Inicializācijas profils

Papildus lietotņu iestatÄ«Å”anai jums ir nepiecieÅ”amas iOS izplatÄ«Å”anas un izstrādes atslēgas, kas izveidotas Apple izstrādātāja konsoles sadaļā Sertifikāti, identifikatori un profili. Visus Å”os sertifikātus var apvienot nodroÅ”ināŔanas profilā.

Lietotājiem, kuri tiks autentificēti, ir jāspēj izveidot sertifikātus, pretējā gadÄ«jumā jāveic darbÄ«bas ceru un nopÅ«Å”os jÅ«s redzēsit kļūdu.

citas iespējas

Papildus Å”ai vienkārÅ”ajai metodei ir arÄ« citi veidi, kā konfigurēt sertifikātus un profilus. Tātad, ja jÅ«s strādājat savādāk, jums var nākties pielāgoties. VissvarÄ«gākais ir tas, ka jums ir nepiecieÅ”ama konfigurācija .xcodebuild, kas norādÄ«s uz nepiecieÅ”amajiem failiem, un atslēgu piekariņam jābÅ«t pieejamam bÅ«vÄ“Å”anas datorā lietotājam, ar kura vārdu darbojas skrējējs. Digitālajam parakstam mēs izmantojam fastlane, un, ja rodas problēmas vai vēlaties uzzināt vairāk, pārbaudiet to informāciju dokumentācija par digitālajiem parakstiem.

Å ajā piemērā es izmantoju pieeju ceru un nopÅ«Å”os, bet reālai lietoÅ”anai tas, iespējams, ir labāk piemērots spēles.

Notiek GitLab un fastlane sagatavoŔana

Notiek CI Runner sagatavoŔana

Pēc visu Å”o datu apkopoÅ”anas mēs pārejam pie GitLab skrējēja konfigurācijas MacOS ierÄ«cē. Diemžēl iOS lietotnes var izveidot tikai operētājsistēmā MacOS. Bet viss var mainÄ«ties, un, ja sagaidāt progresu Å”ajā jomā, sekojiet lÄ«dzi tādiem projektiem kā xcbuild Šø zÄ«me, un mÅ«su iekŔējais uzdevums gitlab-ce#57576.

Skrējēja iestatÄ«Å”ana ir ļoti vienkārÅ”a. Sekojiet paÅ”reizējam instrukcijas GitLab Runner iestatÄ«Å”anai operētājsistēmā macOS.

PiezÄ«me. Skrējējam ir jāizmanto izpildāma programma shell. Tas ir nepiecieÅ”ams, lai izveidotu iOS operētājsistēmā MacOS, lai darbotos tieÅ”i kā lietotājs, nevis izmantojot konteinerus. Ja jÅ«s lietojat shell, izveide un testÄ“Å”ana tiek veikta kā palaidējs lietotājs tieÅ”i bÅ«vējuma resursdatorā. Tas nav tik droÅ”s kā konteineri, tāpēc labāk pārlÅ«kojiet droŔības dokumentācijatāpēc neko nepalaid garām.

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 ir jākonfigurē Å”ajā resursdatorā ar piekļuvi atslēgām, kas Xcode ir jāizveido. VienkārŔākais veids, kā to pārbaudÄ«t, ir pieteikties kā lietotājam, kurÅ” veiks bÅ«vējumu, un mēģināt to izveidot manuāli. Ja sistēma pieprasa piekļuvi atslēgu piekariņam, atlasiet Vienmēr atļaut, lai CI darbotos. Iespējams, ir vērts ieiet un noskatÄ«ties pirmos pāris cauruļvadus, lai pārliecinātos, ka tie vairs neprasa atslēgu piekariņu. Problēma ir tā, ka Apple neļauj mums ērti izmantot automātisko režīmu, taču, tiklÄ«dz to aktivizēsit, viss bÅ«s kārtÄ«bā.

fastlane init

Lai projektā izmantotu fastlane, palaidiet fastlane init. VienkārÅ”i sekojiet instrukcijas fastlane uzstādÄ«Å”anai un lietoÅ”anai, Ä«paÅ”i sadaļā par Gemfile, jo mums ir nepiecieÅ”ama ātra un paredzama palaiÅ”ana, izmantojot automatizētu CI konveijeru.

Projekta direktorijā palaidiet Ŕīs komandas:

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

fastlane pieprasīs pamata konfigurāciju un pēc tam projektā izveidos fastlane mapi ar trim failiem:

1. fastlane/Appfile

Å eit nav nekā sarežģīta. VienkārÅ”i pārliecinieties, vai jÅ«su Apple ID un lietotnes ID ir pareizi.

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

2. fastlane/Fastfile

Fastfile nosaka izveides soļus. Mēs izmantojam daudz fastlane iebÅ«vēto funkciju, tāpēc arÄ« Å”eit viss ir skaidrs. Mēs izveidojam vienu lÄ«niju, kas saņem sertifikātus, veic montāžu un augÅ”upielādē to TestFlight. Ja nepiecieÅ”ams, Å”o procesu var sadalÄ«t dažādos uzdevumos. Visas Ŕīs operācijas (get_certificates, get_provisioning_profile, gym Šø upload_to_testflight) jau ir iekļauti fastlane.

Aktivitāte get_certificates Šø get_provisioning_profile kas saistÄ«ti ar parakstÄ«Å”anas pieeju ceru un nopÅ«Å”os. Ja jÅ«s lietojat spēles vai kā citādi, veiciet izmaiņas.

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

Å is ir neobligāts fails, taču es to izveidoju manuāli, lai mainÄ«tu noklusējuma izvades direktoriju un ievietotu izvadi paÅ”reizējā mapē. Tas vienkārÅ”o CI. Ja interesē, lasiet par gym un tā parametri dokumentācija.

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

Mūsējais .gitlab-ci.yml

Tātad, mums ir CI vadÄ«tājs projektam, un mēs esam gatavi pārbaudÄ«t cauruļvadu. PaskatÄ«simies, kas mums ir iekŔā .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

Viss ir lieliski! Mēs iestatÄ«jām formātu uz UTF-8 ātrgaitas joslai pēc vajadzÄ«bas, izmantojiet stratēģiju clone ar izpildprogrammu shell, lai mums bÅ«tu tÄ«ra darba vieta katrai montāžai, un vienkārÅ”i zvaniet flappybuild fastlane, kā redzams iepriekÅ”. Rezultātā mēs iegÅ«stam jaunākās komplektācijas montāžu, parakstu un izvietoÅ”anu pakalpojumā TestFlight.

Mēs arÄ« iegÅ«stam artefaktu un saglabājam to kopā ar montāžu. LÅ«dzu, ņemiet vērā, ka formāts .ipa ir parakstÄ«ts ARM izpildāmais fails, kas nedarbojas simulatorā. Ja vēlaties simulatora izvadi, vienkārÅ”i pievienojiet bÅ«vējuma mērÄ·i, kas to rada, un pēc tam iekļaujiet to artefakta ceļā.

Citi vides mainīgie

Šeit ir daži vides mainīgie, kas liek visam darboties.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD Šø FASTLANE_SESSION

Fastlane autentifikācija ir nepiecieÅ”ama, lai autentificētos App Store un augÅ”upielādētu pakalpojumā TestFlight. Lai to izdarÄ«tu, izveidojiet paroli lietojumprogrammai, kas tiks izmantota CI. SÄ«kāka informācija Å”eit.

Ja jums ir divu faktoru autentifikācija, izveidojiet mainīgo FASTLANE_SESSION (norādījumi tur).

FASTLANE_USER Šø FASTLANE_PASSWORD

Ka ceru un nopÅ«Å”os ko sauc par inicializācijas profilu un sertifikātiem pēc pieprasÄ«juma, ir jāiestata mainÄ«gie FASTLANE_USER Šø FASTLANE_PASSWORD. SÄ«kāka informācija Å”eit. Tas nav nepiecieÅ”ams, ja izmantojat citu parakstÄ«Å”anas metodi.

Noslēgumā

JÅ«s varat redzēt, kā tas viss darbojas manā vienkārÅ”ajā piemērā.

Es ceru, ka tas bija noderīgs un iedvesmoja jūs strādāt ar iOS versijām GitLab projektā. Šeit ir vēl viens CI padomi par fastlane, katram gadījumam. Jūs varētu vēlēties izmantot CI_BUILD_ID (papildu veidojumiem) uz automātiski palielināt versiju.

Vēl viena lieliska fastlane iezīme ir automātiskie ekrānuzņēmumi App Store, kuras ir ļoti viegli iestatīt.

Pastāstiet mums komentāros par savu pieredzi un dalieties idejās par GitLab uzlaboÅ”anu iOS lietotņu izstrādei.

Avots: www.habr.com

Pievieno komentāru