Nerbitkeun Aplikasi ios ka App Store nganggo GitLab sareng fastlane

Nerbitkeun Aplikasi ios ka App Store nganggo GitLab sareng fastlane

Kumaha GitLab sareng fastlane ngumpulkeun, nandaan sareng nyebarkeun aplikasi ios ka App Store.

Simkuring nembe kagungan posting ngeunaan kumaha gancang ngawangun tur ngajalankeun hiji aplikasi Android kalawan GitLab na jalur gancang. Di dieu urang bakal ningali kumaha ngawangun sareng ngajalankeun aplikasi ios sareng nyebarkeun ka TestFlight. Pariksa kumaha tiis éta Kuring nyieun parobahan dina iPad Pro kalawan GitLab Web IDE, Kuring nyokot assembly jeung meunang apdet pikeun versi test tina aplikasi dina iPad Pro sarua dimana kuring dimekarkeun.

Di dieu urang bakal nyandak aplikasi ios basajan dina Swift, sareng saha kuring ngarékam pidéo.

Sababaraha kecap ngeunaan konfigurasi Apple Store

Kami peryogi aplikasi App Store, sertipikat distribusi, sareng profil provisioning pikeun ngahijikeun sadayana.

Hal anu paling hese di dieu nyaéta nyetél hak nandatanganan di App Store. Abdi ngarepkeun anjeun tiasa terang ieu nyalira. Upami anjeun énggal, kuring bakal nunjukkeun anjeun ka arah anu leres, tapi urang moal ngobrol ngeunaan seluk-beluk ngatur sertipikat Apple di dieu, sareng aranjeunna terus-terusan robih. Tulisan ieu bakal ngabantosan anjeun ngamimitian.

Aplikasi kuring

Anjeun peryogi aplikasi dina App Store Connect supados anjeun gaduh ID pikeun konfigurasi .xcodebuild. Profil sareng ID aplikasi ngagabungkeun kode ngawangun, harga sareng kasadiaan, sareng konfigurasi TestFlight pikeun nyebarkeun aplikasi uji ka pangguna. Entong ngalakukeun tés umum, tés pribadi bakal cekap upami anjeun gaduh grup leutik, pangaturan anu gampang, sareng henteu peryogi idin tambahan ti Apple.

Propil initialization

Salian setelan aplikasi, anjeun peryogi distribusi ios sareng konci pamekaran anu didamel dina bagian Sértipikat, Identifiers & Profil dina konsol Apple Developer. Sadaya sertipikat ieu tiasa digabungkeun kana profil provisioning.

Pamaké anu bakal dioténtikasi kedah tiasa ngadamel sertipikat, upami henteu léngkah-léngkahna cert jeung ngahuleng anjeun bakal nempo kasalahan.

Pilihan séjén

Salian metode saderhana ieu, aya cara sanés pikeun ngonpigurasikeun sertipikat sareng profil. Janten, upami anjeun damel béda, anjeun panginten kedah adaptasi. Hal pangpentingna nyaéta yén anjeun peryogi konfigurasi .xcodebuild, nu bakal nunjuk ka file perlu, sarta keychain kudu sadia dina ngawangun komputer pikeun pamaké handapeun ngaran runner nu ngajalankeun. Pikeun tanda tangan digital kami nganggo fastlane, sareng upami aya masalah atanapi anjeun hoyong terang langkung seueur, pariksa detilna dokuméntasi ngeunaan tanda tangan digital.

Dina conto ieu kuring nganggo pendekatan cert jeung ngahuleng, Tapi pikeun pamakéan nyata meureun leuwih cocog pertandingan.

Nyiapkeun GitLab sareng fastlane

Nyiapkeun CI Runner

Saatos ngumpulkeun sadaya data ieu, urang teraskeun kana konfigurasi runner GitLab dina alat MacOS. Hanjakalna, anjeun ngan ukur tiasa ngadamel aplikasi ios dina MacOS. Tapi sagalana bisa ngarobah, sarta lamun nyangka kamajuan di wewengkon ieu, tetep hiji panon on proyék kawas xcbuild и tanda, jeung tugas internal urang gitlab-ce#57576.

Nyetél runner basajan pisan. Turutan ayeuna parentah pikeun nyetel GitLab Runner dina macOS.

Catetan. Pelari kedah nganggo program anu tiasa dieksekusi shell. Ieu diperlukeun pikeun ngawangun ios dina macOS pikeun dianggo langsung salaku pamaké tinimbang ngaliwatan peti. Upami anjeun nganggo shell, Gedong sareng uji dilaksanakeun salaku pangguna runner, langsung dina host ngawangun. Éta henteu aman sapertos wadah, janten langkung saé ngotéktak dokuméntasi kaamananngarah teu sono nanaon.

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 kudu ngonpigurasi dina host ieu kalawan aksés ka kenop nu Xcode perlu ngawangun. Cara panggampangna pikeun nguji ieu nyaéta log in salaku pangguna anu bakal ngajalankeun ngawangun sareng nyobian ngawangun sacara manual. Lamun sistem ménta aksés keychain, pilih Salawasna Ngidinan pikeun CI jalan. Éta patut lebet sareng ningali sababaraha saluran pipa anu munggaran pikeun mastikeun yén aranjeunna henteu naroskeun gantungan konci deui. Masalahna nyaéta Apple henteu ngagampangkeun urang ngagunakeun mode Otomatis, tapi saatos anjeun badé jalanna, sadayana bakal saé.

fastlane init

Pikeun nganggo fastlane dina proyék, jalankeun fastlane init. Ngan nuturkeun parentah pikeun masang jeung ngajalankeun fastlane, utamana dina bagian ngeunaan Gemfile, sabab urang kudu gancang sarta bisa diprediksi peluncuran ngaliwatan hiji pipa CI otomatis.

Dina diréktori proyék anjeun, jalankeun paréntah ieu:

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

fastlane bakal naroskeun konfigurasi dasar teras jieun folder fastlane dina proyék sareng tilu file:

1. fastlane/Appfile

Henteu aya anu rumit di dieu. Ngan pastikeun Apple ID jeung App ID anjeun bener.

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

2. fastlane/Fastfile

Fastfile nangtukeun léngkah ngawangun. Kami nganggo seueur fitur anu diwangun dina fastlane, janten sadayana ogé jelas di dieu. Urang nyieun hiji garis nu narima sertipikat, ngalakukeun assembly jeung unggah ka TestFlight. Anjeun tiasa ngabagi prosés ieu kana tugas anu béda upami diperyogikeun. Sadaya operasi ieu (get_certificates, get_provisioning_profile, gym и upload_to_testflight) geus kaasup kana fastlane.

lampah get_certificates и get_provisioning_profile patali jeung pendekatan signing cert jeung ngahuleng. Upami anjeun nganggo pertandingan atanapi naon, jieun perobahan.

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

Ieu mangrupikeun file pilihan, tapi kuring nyiptakeun sacara manual pikeun ngarobih diréktori kaluaran standar sareng nempatkeun kaluaran dina folder ayeuna. Ieu simplifies CI. Upami kabetot, baca ngeunaan gym jeung parameter na di dokuméntasi.

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

urang .gitlab-ci.yml

Janten, kami gaduh runner CI pikeun proyék sareng kami siap nguji pipa. Hayu urang tingali naon anu urang gaduh .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

Все отлично! Urang nyetel format ka UTF-8 pikeun fastlane sakumaha diperlukeun, ngagunakeun strategi clone kalawan executing program shell, ku kituna urang boga workspace bersih pikeun tiap assembly, tur saukur nelepon flappybuild fastlane, sakumaha katingal di luhur. Hasilna, urang meunang assembly, signature na deployment tina assembly panganyarna dina TestFlight.

Urang ogé meunang artefak jeung simpen eta kalawan rakitan. Punten dicatet yén formatna .ipa mangrupakeun laksana ARM ditandatanganan nu teu dijalankeun dina simulator nu. Upami anjeun hoyong kaluaran pikeun simulator, tambahkeun udagan ngawangun anu ngahasilkeun éta, teras lebetkeun kana jalur artefak.

variabel lingkungan lianna

Aya sababaraha variabel lingkungan di dieu anu ngajantenkeun sadayana jalan.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Auténtikasi pikeun fastlane diperlukeun pikeun auténtikasi dina App Store sarta unggah ka TestFlight. Jang ngalampahkeun ieu, jieun kecap akses pikeun aplikasi anu bakal dianggo dina CI. Rincian di dieu.

Upami anjeun gaduh auténtikasi dua faktor, jieun variabel FASTLANE_SESSION (parentah aya).

FASTLANE_USER и FASTLANE_PASSWORD

yen cert jeung ngahuleng disebut profil initialization jeung sertipikat kana pamundut, Anjeun kudu nyetel variabel FASTLANE_USER и FASTLANE_PASSWORD. Rincian di dieu. Ieu henteu diperyogikeun upami anjeun nganggo metode tandatangan anu béda.

dina kacindekan

Anjeun tiasa ningali kumaha eta sadayana jalan dina conto basajan kuring.

Kuring miharep ieu mantuan sarta mere ilham anjeun pikeun digawekeun ku ios ngawangun dina proyék GitLab. Di dieu hiji deui tips CI pikeun fastlane, ngan bisi. Anjeun meureun hoyong nganggo CI_BUILD_ID (pikeun ngawangun Incremental) ka otomatis ningkatkeun versi.

fitur cool sejen tina fastlane nyaeta Potret layar otomatis pikeun App Store, nu pisan gampang pikeun nyetél.

Béjakeun ka kami dina koméntar ngeunaan pangalaman anjeun sareng bagikeun ideu anjeun pikeun ningkatkeun GitLab pikeun pamekaran aplikasi ios.

sumber: www.habr.com

Tambahkeun komentar