GitLab və fastlane ilə iOS Proqramlarının App Store-da dərc edilməsi

GitLab və fastlane ilə iOS Proqramlarının App Store-da dərc edilməsi

Fastlane ilə GitLab necə App Store-da iOS proqramlarını toplayır, imzalayır və dərc edir.

Bu yaxınlarda bizdə idi android proqramını necə tez qurmaq və işə salmaq haqqında yazı GitLab ilə və sürətli zolaq. Burada iOS tətbiqini necə qurmağı və işə salmağı və onu TestFlight-da dərc etməyi görəcəyik. Nə qədər sərin olduğunu yoxlayın GitLab Web IDE ilə iPad Pro-da dəyişiklik edirəm, mən tərtibatı götürürəm və onu hazırladığım iPad Pro-da tətbiqin sınaq versiyasına yeniləmə əldə edirəm.

Budur götürürük Swift-də sadə iOS proqramıonunla videonu çəkdim.

Apple Store-un konfiqurasiyası haqqında bir neçə söz

Hər şeyi birləşdirmək üçün bizə App Store-da proqram, paylama sertifikatları və təminat profili lazımdır.

Burada ən çətin şey App Store-da imzalama icazələrini qurmaqdır. Ümid edirəm ki, bunu özünüz başa düşə bilərsiniz. Əgər yenisinizsə, sizə düzgün istiqamət göstərəcəyəm, lakin biz burada Apple sertifikatlarının idarə edilməsinin incəliklərindən danışmayacağıq və onlar daim dəyişir. Bu yazı sizə başlamanıza kömək edəcək.

Proqramlarım

Konfiqurasiya etmək üçün ID-yə sahib olmaq üçün App Store Connect-də proqram lazımdır .xcodebuild. Tətbiq profili və identifikatoru kod quruluşlarını, qiymətləri və mövcudluğu və test proqramlarını istifadəçilərə paylamaq üçün TestFlight konfiqurasiyasını birləşdirir. İctimai sınaq keçirməyin, kiçik bir qrupunuz, sadə quraşdırmanız varsa və Apple-dan əlavə icazələrə ehtiyacınız yoxdursa, şəxsi test kifayətdir.

Təminat profili

Tətbiq quraşdırmasına əlavə olaraq, Apple Developer Console-un Sertifikatlar, İdentifikatorlar və Profillər bölməsində yaradılmış iOS paylanması və inkişaf açarları lazımdır. Bu sertifikatların hamısı təminat profilində birləşdirilə bilər.

Doğrulanacaq istifadəçilər sertifikatlar yaratmaq qabiliyyətinə ehtiyac duyurlar, əks halda addımlar təsdiq və ah çək bir səhv görəcəksiniz.

digər variantları

Bu sadə üsulla yanaşı, sertifikatlar və profillər qurmağın başqa yolları da var. Beləliklə, fərqli işləyirsinizsə, yenidən tənzimləməli ola bilərsiniz. Ən əsası, konfiqurasiyaya ehtiyacınız olacaq .xcodebuild, lazımi fayllara işarə edəcək və brelok qaçışçının adı altında işlədiyi istifadəçi üçün qurulmuş kompüterdə mövcud olmalıdır. Rəqəmsal imza üçün fastlane istifadə edirik və probleminiz varsa və ya daha çox bilmək istəyirsinizsə, onların ətraflı məlumatlarına baxın rəqəmsal imza sənədləri.

Bu nümunədə mən yanaşmadan istifadə edirəm təsdiq və ah çək, lakin real istifadə üçün, yəqin ki, daha uyğundur uyğun.

GitLab və fastlane hazırlanır

CI Runner hazırlanır

Bütün bu məlumatları topladıqdan sonra MacOS cihazında GitLab runner konfiqurasiyasına keçirik. Təəssüf ki, iOS proqramları yaratmaq yalnız MacOS-da mümkündür. Amma hər şey dəyişə bilər və bu sahədə irəliləyiş gözləyirsinizsə, kimi layihələri izləyin xcbuild и dizaynvə daxili vəzifəmiz gitlab-ce#57576.

Koşucunun quraşdırılması çox asandır. Yenilikləri izləyin macOS-da GitLab Runner qurmaq üçün təlimatlar.

Qeyd. Qaçışçı icraçı proqramdan istifadə etməlidir shell. Bu, konteynerlər vasitəsilə deyil, birbaşa istifadəçi kimi işləmək üçün macOS-da iOS qurmaq üçün tələb olunur. Əgər istifadə edirsinizsə shell, qurmaq və sınaqdan keçmək, qurma hostunda qaçışçı istifadəçi kimi həyata keçirilir. Konteynerlər qədər təhlükəsiz deyil, ona görə də çevirmək daha yaxşıdır təhlükəsizlik sənədləribuna görə heç bir şeyi əldən vermirsən.

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 Açar Zinciri Xcode-un qurmaq üçün lazım olan açarlara çıxışı ilə bu hostda qurulmalıdır. Bunu sınamağın ən asan yolu quruluşu işlədəcək və əl ilə qurmağa çalışacaq istifadəçi kimi daxil olmaqdır. Sistem açar zəncirinə giriş tələb edərsə, CI-nin işləməsi üçün "Həmişə icazə ver" seçin. Artıq açarlıq istəmədiklərinə əmin olmaq üçün içəri girib ilk boru kəmərlərinə baxmağa dəyər ola bilər. Problem ondadır ki, Apple bizə avtomatik rejimlə işləməyi asanlaşdırmır, lakin siz onu quraşdırdığınız zaman hər şey yaxşı olacaq.

fastlane init

Layihədə fastlane istifadə etmək üçün işə salın fastlane init. Sadəcə izləyin fastlane-in quraşdırılması və işə salınması üçün təlimatlarxüsusilə bölməsində gemfile, çünki bizə avtomatik CI boru kəməri vasitəsilə sürətli və proqnozlaşdırıla bilən işə ehtiyacımız var.

Layihə kataloqunda bu əmrləri yerinə yetirin:

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

fastlane əsas konfiqurasiya tələb edəcək və sonra layihədə üç fayldan ibarət fastlane qovluğu yaradacaq:

1. fastlane/Appfile

Burada mürəkkəb bir şey yoxdur. Sadəcə Apple ID və Tətbiq ID-nizin düzgün olduğundan əmin olun.

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

2. fastlane/Fastfile

Fastfile qurma mərhələlərini müəyyənləşdirir. Biz fastlane-in bir çox daxili xüsusiyyətlərindən istifadə edirik, ona görə də burada da hər şey aydındır. Biz sertifikatları alan, onu quran və TestFlight-a yükləyən bir xətt yaradırıq. Lazım gələrsə, bu prosesi müxtəlif vəzifələrə bölmək olar. Bütün bu əməliyyatlarget_certificates, get_provisioning_profile, gym и upload_to_testflight) artıq fastlane-ə daxildir.

Aktivlik get_certificates и get_provisioning_profile imzalama yanaşması ilə bağlıdır təsdiq və ah çək. Əgər istifadə edirsinizsə uyğun və ya başqa bir şey, dəyişikliklər edin.

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

Bu isteğe bağlı fayldır, lakin mən onu standart çıxış kataloqunu dəyişmək və çıxışı cari qovluğa yerləşdirmək üçün əl ilə yaratdım. Bu, CI-ni asanlaşdırır. Əgər maraqlanırsınızsa, oxuyun gym və onun parametrləri sənədləşdirmə.

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

Ours .gitlab-ci.yml

Beləliklə, layihə üçün CI runnerimiz var və biz boru kəmərini sınaqdan keçirməyə hazırıq. Görək nəyimiz var .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

Все отлично! Biz tələb olunduğu kimi fastlane üçün UTF-8 formatını təyin etdik, strategiyasından istifadə edirik clone icra proqramı ilə shellki, hər bir tikinti üçün təmiz iş yerimiz olsun və sadəcə zəng edin flappybuild yuxarıda göründüyü kimi fastlane. Nəticədə, biz TestFlight-da ən son montajın montajını, imzasını və yerləşdirilməsini əldə edirik.

Biz də bir artefakt alırıq və onu montajla saxlayırıq. Qeyd edək ki, format .ipa simulyatorda işləməyən imzalanmış ARM icraedicisidir. Əgər simulyator çıxışı istəyirsinizsə, sadəcə onu yaradan qurma hədəfini əlavə edin və sonra onu artefakt yoluna daxil edin.

Digər mühit dəyişənləri

Burada hər şeyin işlədiyi bir neçə mühit dəyişəni var.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

App Store-a autentifikasiya etmək və TestFlight-a yükləmək üçün sizə fastlane üçün autentifikasiya lazımdır. Bunun üçün CI-də istifadə olunacaq proqram parolu yaradın. Təfərrüatlar burada.

İki faktorlu autentifikasiyanız varsa, dəyişən yaradın FASTLANE_SESSION (təlimatlar orada).

FASTLANE_USER и FASTLANE_PASSWORD

O təsdiq və ah çək başlatma profili və sertifikatlar çağırılır, siz dəyişənləri təyin etməlisiniz FASTLANE_USER и FASTLANE_PASSWORD. Ətraflı məlumat burada. Fərqli imzalama metodundan istifadə edirsinizsə, bu lazım deyil.

Nəticədə

Bütün bunların necə işlədiyini görə bilərsiniz mənim sadə nümunəmdə.

Ümid edirəm ki, bu faydalı oldu və sizi GitLab layihəsində iOS qurğuları ilə işləməyə ruhlandırdı. Budur başqa CI məsləhətləri fastlane üçün, hər halda. Bəlkə istifadə etmək istəyirsən CI_BUILD_ID (artan qurmalar üçün) üçün avtomatik artım versiyası.

Fastlane-nin başqa bir gözəl xüsusiyyətidir avtomatik ekran görüntüləri qurmaq çox asan olan App Store üçün.

Şərhlərdə təcrübəniz barədə bizə məlumat verin və iOS proqramlarının inkişafı üçün GitLab-ı təkmilləşdirmək üçün fikirləri paylaşın.

Mənbə: www.habr.com

Добавить комментарий