Gym (Fastlane): nədir, IPA qurulumu və tətbiq inkişafında avtomatlaşdırma

Müəllif: IT Sectr Dərc olunub: 2026-04-14 Oxuma vaxtı: 9 dəq

Gym (Fastlane) — iOS tətbiqlərini komanda sətri vasitəsilə IPA formatında yığmaq və imzalamaq üçün bir alətdir. Sxem və profil seçimi tələb edən Xcode-dan fərqli olaraq, Gym ixrac və tətbiq paketləmə prosesini tam avtomatlaşdırır. Fastlane rəsmi sənədlərinə (2026) görə, Gym xcodebuild parametrlərinin optimallaşdırılması və resursların paralel işlənməsi sayəsində qurulum vaxtını 30% azaldır.

Başlıca

  • Gym — iOS tətbiqlərini vahid komanda sətri interfeysi ilə IPA-da avtomatik yığmaq üçün Fastlane alətidir.
  • Alət xcodebuild üzərində işləyir, lakin mürəkkəb ixrac flaqlarını gizlədir və avtomatik olaraq düzgün imzalama metodunu seçir.
  • Gym bütün profil növləri üçün qurulumu dəstəkləyir: development, appstore, adhoc və enterprise — export_method parametri vasitəsilə.
  • Konfiqurasiya Gymfile faylı vasitəsilə həyata keçirilir, bu fayl mənbə kodu ilə birlikdə layihə repo-zitoriyasında versiyalaşdırıla bilər.
  • CI/CD ilə inteqrasiya proqramçının iştirakı olmadan hər bir push-dan sonra IPA qurulumunu avtomatik işə salmağa imkan verir.

Gym (Fastlane) nədir?

Gym (Fastlane) — iOS tətbiqlərini bir terminal əmri ilə IPA formatında yığmağı təmin edən Fastlane ekosisteminin komponentidir. O, onlarla flaqla xcodebuild-ə zəng etməyin mürəkkəb prosesini abstraksiya edir və proqramçıya ağlabatan defolt dəyərlərlə sadə interfeys təqdim edir.

Xcode-da IPA qurmaq üçün layihəni açmaq, sxem seçmək, Archive və Export-ı konfiqurasiya etmək, yayılma metodunu göstərmək və tamamlanmasını gözləmək lazımdır. Qurulumun avtomatlaşdırılması Gym vasitəsilə manual addımları aradan qaldırır və hər qurulumun eyni parametrlərlə yerinə yetirilməsini təmin edir — bu, CI/CD pipeline-nın proqnozlaşdırıla bilməsi üçün vacibdir.

SwiftLee (2024) məlumatlarına görə, Gym-dən istifadə edən komandalar, Xcode Organizer vasitəsilə manual ixracla müqayisədə, buraxılış prosesinin konfiqurasiyasına 40% daha az vaxt sərf edirlər. Gym həmçinin uğursuz build-lərin aradan qaldırılmasını asanlaşdıran və kompilyasiya səhvlərinin təhlilini sadələşdirən hər bir xcodebuild addımı ilə ətraflı qurulum jurnalları yaradır.

Gym-i test etmək və ya nəşr etmək üçün mütəzəm IPA qurulumu tələb edən istənilən iOS layihəsində istifadə edin — bu, komandadakı bütün maşınlarda eyni qurulum konfiqurasiyasına zəmanət verməyin yeganə yoludur.

Gym IPA-nı necə yığır: proses və parametrlər

Gym vasitəsilə IPA qurulum prosesi

Gym vasitəsilə IPA qurulumu üç ardıcıl mərhəlidən ibarətdir: xcodebuild vasitəsilə layihənin arxivləşdirilməsi, arxivin ikili paketə ixracı və imza ilə IPA formatında paketləmə. Gym avtomatik olaraq layihə növünü (tək target və ya workspace) müyyənləşdirir və düzgün qurulum metodunu seçir.

Arxivləşdirmə mərhələsində Gym layihədə göstərilən sxem və konfiqurasiya parametrləri ilə xcodebuild archive-i işə salır. .xcarchive arxivinin uğurla yaradılmasından sonra Gym seçilmiş ixrac metodu ilə xcodebuild -exportArchive-i işə salır. IPA ixracı — .xcarchive arxivinin bütün lazımi resurslar və imzalar daxil olmaqla .ipa quraşdırma faylına çevrilməsi prosesidir.

Qurulum ixracının parametrləri

Ixrac metodu IPA-nın imzalanması üçün istifadə ediləcək Provisioning Profile növünü müyyənləşdirir. Gym dörd metodu dəstəkləyir: proqramçı cihazlarında debug üçün development, App Store-da nəşr üçün app-store, məhdud sayda cihazlarda beta testi üçün ad-hoc və korporativ yayılma üçün enterprise.

Əlavə parametrlərə ixracın dəqiq konfiqurasiyası üçün export_options_plist göstərilməsi, IPA ölçüsünü azaltmaq üçün Swift overlay-in söndürülməsi və bitcode idarə edilməsi daxildir. Gym həmçinin tam ixrac olmadan kodu tez yoxlamaq üçün faydalı olan --skip_package_ipa flaqı vasitəsilə simulyator üçün qurulumu dəstəkləyir.

bash
# Gym vasitəsilə əsas IPA build-i
fastlane gym --workspace "MyApp.xcworkspace" --scheme "MyApp"

# İxrac metodunu göstərməklə build
fastlane gym --export_method app-store

# IPA ixracı olmadan yalnız arxivin build-i
fastlane gym --skip_package_ipa

Gym-i Gymfile vasitəsilə konfiqurasiya etmək

Gymfile — bütün qurulum parametrlərini strukturlu Ruby formatında saxlayan Fastlane konfiqurasiya faylıdır. Flaqları komanda sətri vasitəsilə ötürməkdən fərqli olaraq, Gymfile konfiqurasiyanı repo-zitoriyada təsbit etməyə və bütün proqramçıların və CI-nin eyni qurulum parametrlərindən istifadə etməsini təmin etməyə imkan verir.

ruby
# Gymfile — build konfiqurasiyası
workspace("MyApp.xcworkspace")
scheme("MyApp")
export_method(:app-store)
configuration("Release")
output_directory("./build")
output_name("MyApp.ipa")
include_symbols(true)
include_bitcode(false)

Gymfile-də export_method parametri Apple Developer Portal-dakı profil növlərinə uyğundur. App Store buraxılışları üçün :app-store, test üçün :development və ya :ad-hoc istifadə olunur. configuration parametri qurulum konfiqurasiyasını müyyənləşdirir: buraxılışlar üçün Release və ya debug versiyaları üçün Debug.

include_bitcode parametri IPA-da bitcode daxil edilməsini idarə edir. Apple watchOS və tvOS tətbiqləri üçün bitcode tələb edirdi, lakin iOS üçün bu parametr ikili faylın ölçüsünü azaltmaq üçün söndürülə bilər. include_symbols App Store Connect və ya xarici monitorinq xidmətlərindən crash jurnallarını simvolizasiya etmək üçün lazım olan .dSYM simvolik debug fayllarını daxil edir.

Gymfile-ın əlavə parametrlərinə fərdi ixrac plist faylı üçün export_options_plist, jurnallarda artıq məlumatın qarşısını almaq üçün silent və müvəqqəti qurulum kataloqunu göstərmək üçün build_path daxildir. Bu parametrlər Gym-i artefaktlara xüsusi tələbləri olan mürəkkəb CI/CD pipeline-ları ilə inteqrasiya edərkən faydalıdır.

Tətbiqlərin qurulumu üçün Gym əmrləri

Əmr interfeysi Gym tipik qurulum ssenariləri üçün əsas parametrlər və davranışın dəqiq tənzimlənməsi üçün genişləndirilmiş flaq-lar ehtiva edir. Parametrlərin əksəriyyəti həm komanda sətri, həm də Gymfile vasitəsilə ötürülə bilər, komanda sətri arqumentləri konfiqurasiya faylından üstünlük təşkil edir.

fastlane gym əmri parametrsiz Gymfile-dən parametrləri istifadə edir və ya cari kataloqda layihəni avtomatik aşkar edir. Bir neçə targeti olan layihələr üçün hədəf qurulum konfiqurasiyasının düzgün seçilməsi üçün --scheme--workspace göstərilməlidir.

Tipik qurulum əmrləri

Sürətli debug qurulumu üçün fastlane gym --export_method development istifadə olunur — bu, proqramçı cihazlarında quraşdırmaq üçün Development profili ilə IPA yığır. App Store üçün IPA qurulumu --export_method app-store flaqı və Match və ya Keychain-də əvvəlcədən konfiqurasiya edilməli Distribution sertifikatının istifadəsini tələb edir.

bash
# App Store üçün custom adla build
fastlane gym --export_method app-store --output_name "Release_1.0.ipa"

# Arxivləşdirmədən əvvəl təmizləmə ilə build
fastlane gym --clean --configuration Debug

# IPA olmadan simulator üçün build
fastlane gym --skip_package_ipa --destination "generic/platform=iOS Simulator"

--clean flaqı işə salınmazdan əvvəl əvvəlki qurulumun müvəqqəti fayllarını silir, bu da köhnəlmiş keş istifadəsinin qarşısını alır və təmiz build-ə zəmanət verir. --destination flaqı qurulum üçün hədəf platformanı göstərməyə imkan verir: iOS Simulator, iOS Device və ya macOS Catalyst.

Gym ParametriTəyinatNümunə dəyər
--schemeQurulum üçün Xcode sxeminin seçilməsiMyApp
--export_methodProfil ixrac metoduapp-store, ad-hoc
--configurationQurulum konfiqurasiyasıRelease, Debug
--cleanQurulumdan əvvəl təmizləməflaq
--output_nameÇıxış IPA faylının adıApp_1.0.ipa

Gym-in CI/CD pipeline-na inteqrasiyası

Gym-in CI/CD ilə inteqrasiyası — davamlı çatdırılmaya can atan iOS tətbiq komandaları üçün standart təcrübədir. Gym test mərhələsindən sonra və TestFlight və ya App Store-a göndərilməzdən əvvəl GitHub Actions, GitLab CI, Bitrise və ya Jenkins pipeline-larında işə salınır.

Tipik iOS CI/CD pipeline-ına daxildir: repo-zitoriyanın klonlanması, CocoaPods və ya SPM vasitəsilə asılılıqların quraşdırılması, Match vasitəsilə sertifikatların konfiqurasiyası, Gym vasitəsilə IPA qurulumu və Pilot və ya Deliver vasitəsilə yükləmə. GitLab CI — repo-zitoriyaya hər push-da qurulumları işə salmağa imkan verən GitLab-dan davamlı inteqrasiya sistemidir.

bash
# GitLab CI-da build addımı nümunəsi
fastlane gym --scheme "MyApp" \
      --export_method app-store \
      --output_directory "$CI_PROJECT_DIR/build"
      
# IPA-nın build artefaktı kimi saxlanması
cp "build/MyApp.ipa" "$CI_PROJECT_DIR/artifacts/"

Gym-in CI-da düzgün işləməsi üçün sertifikatlarla Keychain-ə xcodebuild girişini konfiqurasiya etmək lazımdır. Bu, Gym-i işə salmazdan əvvəl security unlock-keychain əmri ilə həyata keçirilir. Match istifadə olunursa, sertifikatlar avtomatik quraşdırılır və Keychain-in ayrıca konfiqurasiyası tələb olunmur — Match özü qurulum üçün müvəqqəti açar qrupu yaradır.

Uğurlu IPA qurulumundan sonra fayl pipeline-nın növbəti addımlarına ötürülə bilər: Pilot vasitəsilə TestFlight-a yüklənmə və ya Deliver vasitəsilə App Store Connect-ə göndərilmə. Pipeline-ın bütün mərhələlərinin interaktiv daxiletmə olmadan işləməsi üçün FASTLANE_APPLE_API_KEY və MATCH_PASSWORD daxil olmaqla Apple Developer məlumatlarını saxlamaq üçün CI sisteminin ətraf mühit dəyişənlərini konfiqurasiya edin.

Gym qurulumunun tipik səhvləri

Gym-dən istifadə edərkən proqramçılar tez-tez xcodebuild-in səhv konfiqurasiyası, sertifikatların olmaması və ya Xcode versiyalarının uyğunsuzluğu ilə bağlı səhvlərlə qarşılaşırlar. Səhv diaqnostikası Gym hər əmrin tamamlanmasından sonra konsola çıxarılan tam qurulum jurnalının təhlili ilə başlayır.

error: No matching provisioning profiles found” səhvi seçilmiş ixrac metodu üçün uyğun Provisioning Profile-in olmadığını göstərir. Həll yolu: Match və ya Keychain-in göstərilmiş export_method üçün düzgün profil ehtiva etdiyinə əmin olun. Provisioning Profile IPA-nın uğurlu imzalanması üçün tətbiq identifikatoruna və sertifikat növünə (Development və ya Distribution) uyğun olmalıdır.

error: Signing for requires a development team” səhvi layihədə inkişaf komandası göstərilmədikdə baş verir. Həll yolu: layihə nin qurulum konfiqurasiyasına DEVELOPMENT_TEAM əlavə edin və ya Gymfile-də export_team_id parametri vasitəsilə team_id göstərin. Bu, xüsusilə bir neçə Apple Developer hesabı ilə işləyən layihələr üçün aktualdır.

error: Multiple commands produce...” səhvində workspace-dəki müxtəlif targetlər arasında çıxış fayllarının konflikti baş verir. Həll yolu: Xcode layihəsinin Build Settings-də hər target üçün unikal çıxış yolları konfiqurasiya edin və ya Xcode 14 və daha yenisində defolt olaraq aktiv olan yeni qurulum sistemindən istifadə edin. Gym hər iki variantı --use_legacy_build_system flaqı vasitəsilə dəstəkləyir.

Tez-tez verilən suallar

Gym adi Xcode qurulumundan nə ilə fərqlənir?

Gym xcodebuild prosesini avtomatlaşdırır və manual Archive və Export addımlarını aradan qaldırır. Xcode-dan fərqli olaraq, Gym bütün maşınlarda eyni qurulum parametrlərinə zəmanət verir, ətraflı jurnallar yaradır və qrafik interfeysi açmaq zərurəti olmadan CI/CD pipeline-larına inteqrasiya olunur.

Gym hansı ixrac metodlarını dəstəkləyir?

Gym dörd metodu dəstəkləyir: debug üçün development, nəşr üçün app-store, məhdud sayda cihazlarda beta testi üçün ad-hoc və In-House korporativ yayılma üçün enterprise. Metod --export_method parametri və ya Gymfile-də export_method vasitəsilə təyin edilir.

Gym vasitəsilə qurulum zamanı IPA ölçüsünü necɘ azaltmaq olar?

IPA ölçüsünü azaltmaq üçün universal ikili fayl yaratmaq üçün thinning parametri ilə --export_options_plist istifadə edin, include_bitcode(false) vasitəsilə bitcode-ni söndürün və crash jurnalları lazım deyilsə, --include_symbols false parametri ilə simvol stripping-i konfiqurasiya edin.

Niyə Gym CI-da Code Signing xətası ilə çıxır?

CI-da Code Signing xətası adətən Keychain-də sertifikatların olmaması səbəbindən yaranır. Həll yolu: sertifikatların avtomatik quraşdırılması üçün Match-ı konfiqurasiya edin və ya Gym-i işə salmazdan əvvəl security unlock-keychain əmrini əlavə edin. MATCH_PASSWORD dəyişənin CI mühitinə ötürüldüyünə əmin olun.

Gym macOS tətbiqlərinin qurulumu üçün istifadə edilə bilərmi?

Bəli, Gym təkcə iOS deyil, həmçinin macOS, tvOS və watchOS tətbiqlərinin qurulumunu dəstəkləyir. macOS üçün --platform macos parametri vasitəsilə platformanı göstərin və ya Xcode-da müvafiq sxemi konfiqurasiya edin. Gym hədəf platforma üçün avtomatik olaraq düzgün arxiv formatını seçəcək.

Nəticə

  • Gym — iOS tətbiqlərini vahid komanda sətri interfeysi arxasında mürəkkəb xcodebuild flaq-larını abstraksiya edərək IPA-da avtomatik yığmaq üçün Fastlane alətidir.
  • Qurulum prosesi xcodebuild archive vasitəsilə arxivləşdirmə və seçilmiş imza metodu və profili ilə IPA formatına ixracdan ibarətdir.
  • Gymfile faylı vasitəsilə konfiqurasiya bütün parametrləri repo-zitoriyada təsbit edir: sxem, workspace, ixrac metodu, konfiqurasiya və çıxış yolları.
  • Gym dörd ixrac metodunu dəstəkləyir: development, app-store, ad-hoc və enterprise — tətbiq yayılmasının müxtəlif ssenariləri üçün.
  • GitHub Actions, GitLab CI və ya Bitrise vasitəsilə CI/CD ilə inteqrasiya repo-zitoriyada hər kod dəyişikliyindən sonra IPA qurulumunu avtomatlaşdırmağa imkan verir.
  • Gym-in tipik səhvləri sertifikatların olmaması, səhv ixrac metodu və ya bir neçə targeti olan workspace-də çıxış fayl konfliktləri ilə bağlıdır.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun