Pag-publish sa iOS Apps sa App Store gamit ang GitLab ug fastlane

Pag-publish sa iOS Apps sa App Store gamit ang GitLab ug fastlane

Giunsa ang GitLab nga adunay fastlane sa pagkolekta, pagpirma ug pagmantala sa mga iOS app sa App Store.

Bag-ohay lang mi usa ka post kung giunsa ang dali nga paghimo ug pagpadagan sa usa ka aplikasyon sa android uban sa GitLab ug fastlane. Dinhi atong makita kung giunsa paghimo ug pagpadagan ang usa ka iOS app ug i-publish kini sa TestFlight. Tan-awa kung unsa ka cool Naghimo ako usa ka pagbag-o sa usa ka iPad Pro gamit ang GitLab Web IDE, Gikuha nako ang pagtukod ug nagkuha usa ka update sa pagsulay nga bersyon sa aplikasyon sa parehas nga iPad Pro diin akong gipalambo kini.

Dinhi atong kuhaon yano nga iOS app sa Swiftnga akong girekord ang video.

Pipila ka mga pulong bahin sa pag-configure sa Apple Store

Kinahanglan namon ang usa ka app sa App Store, mga sertipiko sa pag-apod-apod, ug usa ka profile sa paghatag aron mahiusa ang tanan.

Ang labing lisud nga butang dinhi mao ang pag-set up sa mga permiso sa pagpirma sa App Store. Nanghinaut ko nga mahunahuna nimo kini sa imong kaugalingon. Kung bag-o ka, itudlo ko ikaw sa husto nga direksyon, apan dili kami maghisgot bahin sa mga kakuti sa pagdumala sa mga sertipiko sa Apple dinhi, ug kini kanunay nga nagbag-o. Kini nga post makatabang kanimo sa pagsugod.

Akong Apps

Kinahanglan ug app sa App Store Connect para naay ID nga i-configure .xcodebuild. Ang profile sa app ug ID naghiusa sa mga pagtukod sa code, pagpresyo ug pagkaanaa, ug ang configuration sa TestFlight alang sa pag-apod-apod sa mga test app ngadto sa mga tiggamit. Ayaw paghimo sa publiko nga pagsulay, ang pribado nga pagsulay igo na kung ikaw adunay gamay nga grupo, yano nga pag-setup ug wala magkinahanglan dugang nga pagtugot gikan sa Apple.

Profile sa paghatag

Dugang sa pag-setup sa app, kinahanglan nimo ang pag-apod-apod sa iOS ug mga yawe sa pag-uswag nga gihimo sa seksyon sa Mga Sertipiko, Mga Identifier & Profile sa Apple Developer console. Ang tanan niini nga mga sertipiko mahimong mahiusa sa usa ka provisioning profile.

Ang mga tiggamit nga ma-authenticate nanginahanglan ug abilidad sa paghimo og mga sertipiko, kung dili ang mga lakang cert ug panghupaw makakita ka og sayop.

sa uban nga mga kapilian sa

Gawas niining yano nga pamaagi, adunay ubang mga paagi sa pag-set up sa mga sertipiko ug mga profile. Busa, kung lahi ang imong pagtrabaho, kinahanglan nimo nga mag-adjust. Labing hinungdanon, kinahanglan nimo ang usa ka pag-configure .xcodebuild, nga magtudlo sa gikinahanglan nga mga file, ug ang keychain kinahanglang anaa sa build computer alang sa user nga ubos sa iyang ngalan ang runner nagdagan. Gigamit namo ang fastlane para sa digital signing, ug kung naa kay mga problema o gusto nga makahibalo pa, tan-awa ang ilang detalyado digital nga pirma nga dokumentasyon.

Sa kini nga pananglitan gigamit nako ang pamaagi cert ug panghupaw, apan alang sa tinuod nga paggamit, tingali mas haum match.

Pag-andam sa GitLab ug fastlane

Pag-andam sa CI Runner

Sa pagkolekta sa tanan niini nga datos, nagpadayon kami sa pag-configure sa GitLab runner sa usa ka MacOS device. Ikasubo, ang paghimo sa iOS apps posible lamang sa MacOS. Apan mahimo’g mabag-o ang tanan, ug kung naghulat ka alang sa pag-uswag sa kini nga lugar, sunda ang mga proyekto sama xcbuild ΠΈ disenyo, ug ang atong internal nga buluhaton gitlab-ce#57576.

Ang pag-set up sa runner sayon ​​ra kaayo. Sunda ang pinakabag-o mga panudlo alang sa pag-set up sa GitLab Runner sa macOS.

Nota. Ang magdadagan kinahanglang mogamit ug executing program shell. Gikinahanglan kini aron matukod ang iOS sa macOS aron direktang magtrabaho isip usa ka tiggamit ug dili pinaagi sa mga sudlanan. Kung ikaw naggamit shell, ang pagtukod ug pagsulay gihimo ingon nga tiggamit sa runner, diha mismo sa build host. Dili kini luwas sama sa mga sudlanan, busa mas maayo nga imong i-flip dokumentasyon sa seguridadbusa wala ka mingawon bisan unsa.

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

Ang Apple Keychain kinahanglan nga i-set up sa kini nga host nga adunay access sa mga yawe nga kinahanglan nga tukuron sa Xcode. Ang labing sayon ​​​​nga paagi sa pagsulay niini mao ang pag-log in isip user nga modagan sa pagtukod ug mosulay sa pagtukod sa mano-mano. Kung ang sistema mangayo alang sa pag-access sa keychain, pilia ang "Kanunay itugot" aron magtrabaho ang CI. Mahimong angayan nga mosulod ug motan-aw sa unang parisan sa mga pipeline aron masiguro nga dili na sila mangayo og keychain. Ang problema kay wala gipasayon ​​sa Apple para namo ang pagtrabaho gamit ang automatic mode, pero kung ma-set up na nimo, mamaayo ra ang tanan.

fastlane init

Aron magamit ang fastlane sa usa ka proyekto, pagdagan fastlane init. Sunda lang mga instruksyon sa pag-instalar ug pagpadagan sa fastlaneilabi na sa seksyon sa gemfile, tungod kay kinahanglan namon ang usa ka paspas ug matag-an nga paglansad pinaagi sa usa ka awtomatikong CI pipeline.

Sa direktoryo sa proyekto, padagana kini nga mga sugo:

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

Ang fastlane mangayo ug usa ka sukaranan nga pag-configure ug dayon maghimo usa ka folder nga fastlane sa proyekto nga adunay tulo nga mga file:

1. fastlane/Appfile

Walay bisan unsa nga komplikado dinhi. Siguruha lang nga husto ang imong Apple ID ug 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 naghubit sa mga lakang sa pagtukod. Gigamit namo ang daghang mga built-in nga feature sa fastlane, mao nga klaro usab ang tanan dinhi. Naghimo kami usa ka linya nga nakadawat mga sertipiko, nagtukod ug nag-upload niini sa TestFlight. Mahimo nimong bahinon kini nga proseso sa lainlaing mga buluhaton kung gikinahanglan. Kining tanan nga mga operasyonget_certificates, get_provisioning_profile, gym ΠΈ upload_to_testflight) naapil na sa fastlane.

Mga aksyon get_certificates ΠΈ get_provisioning_profile nalangkit sa pamaagi sa pagpirma cert ug panghupaw. Kung ikaw naggamit match o uban pa, paghimo og mga pagbag-o.

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

Kini usa ka opsyonal nga file, apan gibuhat ko kini nga mano-mano aron usbon ang default nga direktoryo sa output ug ibutang ang output sa kasamtangan nga folder. Gipasimple niini ang CI. Kung interesado, basaha ang bahin gym ug ang mga parametro niini sa dokumentasyon.

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

Atong .gitlab-ci.yml

Busa, kami adunay usa ka CI runner alang sa proyekto ug kami andam sa pagsulay sa pipeline. Atong tan-awon kon unsa ang anaa kanato .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

ВсС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ! Among gibutang ang UTF-8 nga format para sa fastlane kon gikinahanglan, gigamit namo ang estratehiya clone uban sa pagpatuman sa programa shellaron kita adunay usa ka limpyo nga workspace alang sa matag pagtukod, ug tawag lang flappybuild fastlane sama sa makita sa ibabaw. Ingon usa ka sangputanan, nakuha namon ang asembliya, pirma ug pag-deploy sa labing bag-ong asembliya sa TestFlight.

Nagkuha usab kami usa ka artifact ug gitipigan kini sa asembliya. Timan-i nga ang format .ipa usa ka gipirmahan nga ARM executable nga dili modagan sa simulator. Kung gusto nimo ang output sa simulator, idugang lang ang target sa pagtukod nga nagpatungha niini, ug dayon ilakip kini sa agianan sa artifact.

Ang ubang mga variable sa palibot

Adunay usa ka magtiayon nga mga variable sa palibot dinhi nga ang tanan molihok.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION

Aron ma-authenticate sa App Store ug ma-upload sa TestFlight, kinahanglan nimo ang authentication para sa fastlane. Aron mahimo kini, paghimo og password sa aplikasyon nga gamiton sa CI. Mga Detalye dinhi.

Kung naa kay two-factor authentication, paghimo ug variable FASTLANE_SESSION (mga instruksyon didto).

FASTLANE_USER ΠΈ FASTLANE_PASSWORD

nga cert ug panghupaw gitawag ang initialization profile ug mga sertipiko sa hangyo, kinahanglan nimo nga magbutang mga variable FASTLANE_USER ΠΈ FASTLANE_PASSWORD. Mga Detalye dinhi. Dili kini kinahanglan kung mogamit ka ug lahi nga pamaagi sa pagpirma.

Sa konklusyon

Imong makita kung giunsa kini tanan molihok sa akong simple nga ehemplo.

Nanghinaut ko nga kini makatabang ug nakadasig kanimo sa pagtrabaho uban sa mga gitukod sa iOS sa proyekto sa GitLab. Ania ang lain Mga tip sa CI para sa fastlane, in case lang. Basin gusto nimo gamiton CI_BUILD_ID (alang sa incremental nga mga pagtukod) sa auto increment nga bersyon.

Ang laing cool nga bahin sa fastlane mao ang awtomatik nga mga screenshot alang sa App Store, nga sayon ​​kaayo i-set up.

Sultihi kami bahin sa imong kasinatian sa mga komento ug pagpaambit sa mga ideya alang sa pagpalambo sa GitLab alang sa pagpalambo sa app sa iOS.

Source: www.habr.com

Idugang sa usa ka comment