Fastlane ilə GitLab necə App Store-da iOS proqramlarını toplayır, imzalayır və dərc edir.
Bu yaxınlarda bizdə idi
Budur götürürük
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
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
Bu nümunədə mən yanaşmadan istifadə edirəm
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
Koşucunun quraşdırılması çox asandır. Yenilikləri izləyin
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
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
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
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
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
Все отлично! clone
icra proqramı ilə shell
ki, 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
İki faktorlu autentifikasiyanız varsa, dəyişən yaradın FASTLANE_SESSION
(təlimatlar orada).
FASTLANE_USER
и FASTLANE_PASSWORD
O FASTLANE_USER
и FASTLANE_PASSWORD
. Ətraflı məlumat
Nəticədə
Bütün bunların necə işlədiyini görə bilərsiniz
Ü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_BUILD_ID
(artan qurmalar üçün) üçün
Fastlane-nin başqa bir gözəl xüsusiyyətidir
Şə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