GitLab болон fastlane ашиглан iOS програмуудыг App Store-д нийтлэх

GitLab болон fastlane ашиглан iOS програмуудыг App Store-д нийтлэх

Fastlane-тэй GitLab нь iOS програмуудыг хэрхэн цуглуулж, гарын үсэг зурж, App Store-д нийтэлдэг вэ.

Бид саяхан байсан Андройд программыг хэрхэн хурдан бүтээж, ажиллуулах тухай нийтлэл GitLab болон хурдан эгнээ. Энд бид iOS програмыг хэрхэн бүтээж, ажиллуулж, TestFlight дээр нийтлэхийг харах болно. Энэ нь хэр дажгүй болохыг хараарай Би GitLab Web IDE-тэй iPad Pro дээр өөрчлөлт хийж байна, Би угсралтыг аваад програмын туршилтын хувилбарын шинэчлэлтийг өөрийн боловсруулсан iPad Pro дээр авдаг.

Энд бид авах болно Swift дээрх энгийн iOS програм, би түүнтэй видео бичлэг хийсэн.

Apple Store-ийн тохиргооны талаар хэдэн үг хэлье

Бидэнд бүх зүйлийг нэгтгэхийн тулд App Store програм, түгээлтийн гэрчилгээ, нөөцийн профайл хэрэгтэй болно.

Энд хамгийн хэцүү зүйл бол App Store дээр гарын үсэг зурах эрхийг тохируулах явдал юм. Та үүнийг өөрөө ойлгож чадна гэж найдаж байна. Хэрэв та шинэ хүн бол би таныг зөв чиглэлд чиглүүлэх болно, гэхдээ бид энд Apple-ийн гэрчилгээг удирдах нарийн төвөгтэй байдлын талаар ярихгүй бөгөөд тэдгээр нь байнга өөрчлөгдөж байдаг. Энэхүү нийтлэл нь танд эхлэхэд тусална.

Миний програмууд

Танд App Store Connect-д програм хэрэгтэй бөгөөд ингэснээр тохиргоо хийх ID-тай болно .xcodebuild. Профайл болон програмын ID нь кодын бүтэц, үнэ, хүртээмж, туршилтын програмуудыг хэрэглэгчдэд түгээх TestFlight тохиргоог нэгтгэдэг. Олон нийтийн туршилтыг бүү хий, хэрэв та жижиг бүлэгтэй, тохируулахад хялбар, Apple-аас нэмэлт зөвшөөрөл авах шаардлагагүй бол хувийн тест хийхэд хангалттай.

Эхлүүлэх профайл

Програмын тохиргооноос гадна танд Apple Developer консолын Сертификат, танигч, профайл хэсэгт үүсгэсэн iOS түгээлтийн болон хөгжүүлэлтийн түлхүүрүүд хэрэгтэй. Эдгээр бүх гэрчилгээг нөөцийн профайл болгон нэгтгэж болно.

Баталгаажсан хэрэглэгчид гэрчилгээ үүсгэх боломжтой байх ёстой, эс тэгвээс алхамууд батлах ба санаа алдах та алдаа харах болно.

бусад сонголтууд

Энэхүү энгийн аргаас гадна гэрчилгээ, профайлыг тохируулах өөр аргууд байдаг. Тиймээс, хэрэв та өөрөөр ажиллах юм бол дасан зохицох хэрэгтэй болж магадгүй юм. Хамгийн гол нь танд тохиргоо хэрэгтэй .xcodebuild, энэ нь шаардлагатай файлуудыг зааж өгөх бөгөөд түлхүүрийн оосор нь гүйгч нэрээр ажиллаж байгаа хэрэглэгчийн бүтээх компьютер дээр байх ёстой. Тоон гарын үсгийн хувьд бид fastlane ашигладаг бөгөөд хэрэв асуудал гарвал эсвэл та илүү ихийг мэдэхийг хүсвэл тэдгээрийн дэлгэрэнгүй мэдээллийг шалгана уу тоон гарын үсгийн талаархи баримт бичиг.

Энэ жишээнд би аргыг ашиглаж байна батлах ба санаа алдах, гэхдээ бодит хэрэглээнд энэ нь илүү тохиромжтой байх магадлалтай тоглолт.

GitLab болон fastlane бэлтгэж байна

CI Runner бэлтгэж байна

Энэ бүх өгөгдлийг цуглуулсны дараа бид MacOS төхөөрөмж дээрх GitLab гүйгчийг тохируулах руу шилжлээ. Харамсалтай нь та зөвхөн MacOS дээр iOS програмуудыг хийх боломжтой. Гэхдээ бүх зүйл өөрчлөгдөж болно, хэрэв та энэ чиглэлээр ахиц дэвшил хүлээж байгаа бол, гэх мэт төслүүдийг анхаарч үзээрэй xcbuild и тэмдэг, мөн бидний дотоод үүрэг gitlab-ce#57576.

Гүйгчийг тохируулах нь маш энгийн. Одоогийн дагах macOS дээр GitLab Runner-ийг тохируулах заавар.

Анхаарна уу. Гүйгч нь гүйцэтгэх боломжтой програмыг ашиглах ёстой shell. Энэ нь контейнерээр бус шууд хэрэглэгчээр ажиллахын тулд macOS дээр iOS-г бүтээхэд шаардлагатай. Хэрэв та хэрэглэж байгаа бол shell, бүтээх болон туршилтыг гүйгч хэрэглэгчийн хувьд шууд бүтээх хост дээр гүйцэтгэдэг. Энэ нь чингэлэг шиг аюулгүй биш тул хайсан нь дээр аюулгүй байдлын баримт бичигТиймээс та юу ч алдахгүй.

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 түлхүүрийн оосорыг Xcode-н бүтээх шаардлагатай түлхүүрүүдэд хандах эрхээр энэ хост дээр тохируулсан байх ёстой. Үүнийг шалгах хамгийн хялбар арга бол уг бүтээцийг ажиллуулах хэрэглэгчээр нэвтэрч, гараар бүтээхийг оролдох явдал юм. Хэрэв систем түлхүүрийн оосор ашиглахыг хүсвэл CI-г ажиллуулахыг үргэлж зөвшөөрөхийг сонгоно уу. Дахиж түлхүүрийн оосор асуухгүй байхын тулд эхний хоёр хоолой руу орж үзэх нь зүйтэй болов уу. Асуудал нь Apple бидэнд Auto горимыг ашиглахад хялбар болгодоггүй, гэхдээ та үүнийг ажиллуулсны дараа бүх зүйл сайхан болно.

fastlane init

Төсөлд fastlane ашиглахын тулд ажиллуулна уу fastlane init. Зүгээр л дага fastlane суулгах, ажиллуулах заавар, ялангуяа тухай хэсэгт Gemfile, учир нь бидэнд автоматжуулсан CI дамжуулах хоолойгоор хурдан бөгөөд урьдчилан таамаглах боломжтой хөөргөх хэрэгтэй.

Төслийн лавлахдаа дараах тушаалуудыг ажиллуулна уу:

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

fastlane нь үндсэн тохиргоог асууж, дараа нь төсөлд гурван файл бүхий fastlane хавтас үүсгэнэ.

1. fastlane/Appfile

Энд ямар ч төвөгтэй зүйл байхгүй. Таны Apple ID болон 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 бүтээх үе шатуудыг тодорхойлдог. Бид fastlane-ийн олон функцийг ашигладаг тул энд бүх зүйл тодорхой байна. Бид гэрчилгээг хүлээн авч, угсрах ажлыг хийж, TestFlight руу байршуулдаг нэг мөрийг үүсгэдэг. Шаардлагатай бол та энэ үйл явцыг өөр өөр ажилд хувааж болно. Эдгээр бүх үйлдлүүд (get_certificates, get_provisioning_profile, gym и upload_to_testflight) аль хэдийн fastlane-д орсон байна.

Үйлдэл get_certificates и get_provisioning_profile гарын үсэг зурах арга барилтай холбоотой батлах ба санаа алдах. Хэрэв та хэрэглэж байгаа бол тоглолт эсвэл ямар ч байсан өөрчлөлт хийх.

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

Энэ нь нэмэлт файл боловч анхдагч гаралтын лавлахыг өөрчилж, гаралтыг одоогийн хавтсанд байрлуулахын тулд үүнийг гараар үүсгэсэн. Энэ нь CI-г хялбаршуулдаг. Хэрэв сонирхож байвал уншина уу gym ба түүний параметрүүд баримт бичиг.

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

Бидний .gitlab-ci.yml

Тиймээс бид төслийн CI гүйгчтэй бөгөөд дамжуулах хоолойг туршихад бэлэн байна. Бидэнд юу байгааг харцгаая .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

Все отлично! Бид шаардлагатай бол UTF-8 форматыг fastlane болгон тохируулсан, стратегийг ашиглах clone гүйцэтгэх програмтай shell, ингэснээр бид угсралт бүрийг цэвэрхэн ажлын байртай болгож, зүгээр л дуудаарай flappybuild fastlane, дээр дурдсанчлан. Үүний үр дүнд бид TestFlight дахь хамгийн сүүлийн үеийн угсралтын угсралт, гарын үсэг, байршуулалтыг авдаг.

Мөн бид олдворыг аваад угсралтын хамт хадгалдаг. Формат гэдгийг анхаарна уу .ipa нь симулятор дээр ажилладаггүй, гарын үсэг зурсан ARM программ юм. Хэрэв та симуляторын гаралтыг авахыг хүсвэл түүнийг үүсгэсэн бүтээх зорилтыг нэмж, дараа нь олдворын замд оруулаарай.

Бусад орчны хувьсагч

Энд бүх зүйлийг хэвийн болгодог хэд хэдэн орчны хувьсагч байдаг.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

App Store-оос баталгаажуулж, TestFlight-д байршуулахын тулд fastlane-ийн баталгаажуулалт шаардлагатай. Үүнийг хийхийн тулд CI-д ашиглагдах програмын нууц үгийг үүсгэ. Дэлгэрэнгүй мэдээлэл энд.

Хэрэв танд хоёр хүчин зүйлийн баталгаажуулалт байгаа бол хувьсагч үүсгэнэ үү FASTLANE_SESSION (зааварчилгаа тэнд байна).

FASTLANE_USER и FASTLANE_PASSWORD

гэж батлах ба санаа алдах хүсэлтийн дагуу эхлүүлэх профайл болон гэрчилгээ гэж нэрлэгддэг бол та хувьсагчдыг тохируулах хэрэгтэй FASTLANE_USER и FASTLANE_PASSWORD. Дэлгэрэнгүй мэдээлэл энд. Хэрэв та өөр гарын үсэг зурах арга хэрэглэж байгаа бол энэ шаардлагагүй.

Эцэст нь хэлэхэд

Энэ бүхэн хэрхэн ажилладагийг та харж болно миний энгийн жишээн дээр.

Энэ нь танд хэрэг болж, GitLab төсөл дээр iOS бүтээцтэй ажиллахад урам зориг өгсөн гэж найдаж байна. Энд бас нэг юм CI зөвлөмжүүд fastlane-д зориулсан, ямар ч тохиолдолд. Та ашиглахыг хүсч магадгүй юм CI_BUILD_ID (өсмөөр бүтээхэд) to хувилбарыг автоматаар нэмэгдүүлнэ.

Fastlane-ийн өөр нэг гайхалтай онцлог автомат дэлгэцийн агшин тохируулахад маш хялбар App Store-д зориулсан.

Бидэнд туршлагаасаа сэтгэгдлээ хуваалцаж, iOS програм хөгжүүлэхэд зориулсан GitLab-ийг сайжруулах санаагаа хуваалцаарай.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх