Gym (Fastlane): bu nima, IPA yaratish va ilovalarni ishlab chiqishda avtomatlashtirish

Muallif: IT Sectr Nashr etilgan: 2026-04-14 O'qish vaqti: 9 daq

Gym (Fastlane) — bu buyruq satri orqali iOS ilovalarini IPA formatida yaratish va imzolash vositasi. Xcode dan farqli o'laroq, u sxema va profilni qo'lda tanlashni talab qiladi, Gym esa ilovani eksport qilish va paketlash jarayonini to'liq avtomatlashtiradi. Fastlane (2026) rasmiy hujjatlariga ko'ra, Gym xcodebuild parametrlarini optimallashtirish va resurslarni parallel qayta ishlash hisobiga yaratish vaqtini 30% ga qisqartiradi.

Asosiy

  • Gym — iOS ilovalarini IPA formatida avtomatik yaratish uchun Fastlane yordamchi dasturi yagona buyruq satri interfeysi bilan.
  • Asbob xcodebuild ustida ishlaydi, lekin murakkab eksport bayroqlarini yashiradi va avtomatik ravishda to'g'ri imzolash usulini tanlaydi.
  • Gym barcha profil turlari uchun yaratishni qo'llab-quvvatlaydi: development, appstore, adhoc va enterprise — export_method parametri orqali.
  • Sozlash Gymfile fayli orqali amalga oshiriladi, uni loyiha repozitoriyasida manba kodi bilan birga versiyalash mumkin.
  • CI/CD bilan integratsiya har bir repozitoriyaga pushdan so'ng dasturchi ishtirokisiz IPA yaratishni avtomatik boshlash imkonini beradi.

Gym (Fastlane) nima?

Gym (Fastlane) — bu Fastlane ekotizimining komponenti bo'lib, bitta terminal buyrug'i orqali iOS ilovalarini IPA formatida yaratishni ta'minlaydi. U o'nlab bayroqlar bilan xcodebuildni chaqirishning murakkab jarayonini abstraktlashtiradi va dasturchiga oqilona standart qiymatlar bilan oddiy interfeysni taqdim etadi.

Xcode da IPA yaratish uchun loyihani ochish, sxemani tanlash, Archive va Export ni sozlash, tarqatish usulini ko'rsatish va tugashini kutish kerak. Yaratishni avtomatlashtirish Gym orqali qo'lda bajariladigan qadamlarni yo'q qiladi va har bir yaratish bir xil parametrlar bilan bajarilishini kafolatlaydi — bu CI/CD quvurining bashorat qilish imkoniyati uchun juda muhimdir.

SwiftLee (2024) ma'lumotlariga ko'ra, Gym dan foydalanadigan jamoalar Xcode Organizer orqali qo'lda eksport qilish bilan solishtirganda, reliz jarayonini sozlashga 40% kamroq vaqt sarflaydi. Gym shuningdek, har bir xcodebuild qadamini ko'rsatadigan batafsil yaratish jurnallarini yaratadi, bu muvaffaqiyatsiz qurilmalarni tuzatish va kompilyatsiya xatolarini tahlil qilishni soddalashtiradi.

Gym dan sinov yoki nashr qilish uchun muntazam IPA yaratishni talab qiladigan har qanday iOS loyihasida foydalaning — bu jamoadagi barcha mashinalarda bir xil yaratish konfiguratsiyasini kafolatlashning yagona usuli.

Gym IPA ni qanday yaratadi: jarayon va parametrlar

Gym orqali IPA yaratish jarayoni

Gym orqali IPA yaratish uchta ketma-ket bosqichdan iborat: loyihani xcodebuild orqali arxivlash, arxivni ikkilik paketga eksport qilish va imzo bilan IPA formatiga paketlash. Gym loyiha turini (single target yoki workspace) avtomatik aniqlaydi va to'g'ri yaratish usulini tanlaydi.

Arxivlash bosqichida Gym loyihada ko'rsatilgan sxema va konfiguratsiya parametrlari bilan xcodebuild archive ni ishga tushiradi. .xcarchive arxivi muvaffaqiyatli yaratilgandan so'ng, Gym tanlangan eksport usuli bilan xcodebuild -exportArchive ni ishga tushiradi. IPA eksporti — bu .xcarchive arxivini barcha kerakli resurslar va imzolarni o'z ichiga olgan .ipa o'rnatish fayliga aylantirish jarayoni.

Yaratish eksport parametrlari

Eksport usuli IPA ni imzolash uchun ishlatiladigan Provisioning Profile turini aniqlaydi. Gym to'rtta usulni qo'llab-quvvatlaydi: development dasturchilar qurilmalarida tuzatish uchun, app-store App Store da nashr qilish uchun, ad-hoc cheklangan miqdordagi qurilmalarda beta-sinov uchun va enterprise korporativ tarqatish uchun.

Qo'shimcha parametrlar eksportni aniq sozlash uchun export_options_plist ni ko'rsatish, IPA hajmini kamaytirish uchun Swift overlay ni bostirish va bitkodni boshqarishni o'z ichiga oladi. Gym shuningdek, --skip_package_ipa bayrog'i orqali simulyator uchun yaratishni qo'llab-quvvatlaydi, bu to'liq eksportsiz kodni tezkor tekshirish uchun foydalidir.

bash
# Gym orqali IPA asosiy qurish
fastlane gym --workspace "MyApp.xcworkspace" --scheme "MyApp"

# Eksport usulini ko'rsatgan holda qurish
fastlane gym --export_method app-store

# IPA eksportsiz faqat arxivni qurish
fastlane gym --skip_package_ipa

Gymni Gymfile orqali sozlash

Gymfile — bu barcha yaratish parametrlarini tuzilgan Ruby formatida saqlaydigan Fastlane konfiguratsiya fayli. Buyruq satri orqali bayroqlarni uzatishdan farqli o'laroq, Gymfile konfiguratsiyani repozitoriyada mahkamlash imkonini beradi va barcha dasturchilar va CI bir xil yaratish sozlamalaridan foydalanishini kafolatlaydi.

ruby
# Gymfile — qurish konfiguratsiyasi
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 dagi export_method parametri Apple Developer Portalidagi profil turlariga mos keladi. App Store relizlari uchun :app-store, sinov uchun — :development yoki :ad-hoc ishlatiladi. configuration parametri yaratish konfiguratsiyasini aniqlaydi: relizlar uchun Release yoki tuzatish versiyalari uchun Debug.

include_bitcode parametri IPA ga bitkodni kiritishni boshqaradi. Apple watchOS va tvOS ilovalari uchun bitkodni talab qilgan, ammo iOS uchun bu parametr ikkilik fayl hajmini kamaytirish uchun o'chirilishi mumkin. include_symbols App Store Connect yoki uchinchi tomon monitoring xizmatlaridan crash jurnallarini ramzlash uchun zarur bo'lgan .dSYM ramzli tuzatish fayllarini o'z ichiga oladi.

Gymfile ning qo'shimcha parametrlari maxsus eksport plist fayli uchun export_options_plist, jurnallarda ortiqcha chiqishni bostirish uchun silent va vaqtinchalik yaratish katalogini ko'rsatish uchun build_path ni o'z ichiga oladi. Ushbu parametrlar artefaktlarga maxsus talablar bilan murakkab CI/CD quvurlariga Gymni integratsiya qilishda foydalidir.

Ilovalarni yaratish uchun Gym buyruqlari

Buyruqlar interfeysi Gym odatiy yaratish stsenariylari uchun asosiy parametrlarni va xatti-harakatni aniq sozlash uchun kengaytirilgan bayroqlarni o'z ichiga oladi. Ko'pgina parametrlar buyruq satri orqali ham, Gymfile orqali ham uzatilishi mumkin, buyruq satri argumentlari konfiguratsiya faylidan ustun turadi.

fastlane gym buyrug'i parametrlarsiz Gymfile sozlamalaridan foydalanadi yoki joriy katalogdagi loyihani avtomatik aniqlaydi. Bir nechta targetlarga ega loyihalar uchun maqsadli yaratish konfiguratsiyasini to'g'ri tanlash uchun --scheme va --workspace ni ko'rsatish kerak.

Odatiy yaratish buyruqlari

Tezkor tuzatish yaratish uchun fastlane gym --export_method development ishlatiladi — u Development profili bilan IPA ni dasturchilar qurilmalariga o'rnatish uchun yaratadi. IPA yaratish App Store uchun --export_method app-store bayrog'ini va oldindan Match yoki Keychain da sozlangan Distribution sertifikatidan foydalanishni talab qiladi.

bash
# App Store uchun custom nom bilan qurish
fastlane gym --export_method app-store --output_name "Release_1.0.ipa"

# Arxivlashdan oldin tozalash bilan qurish
fastlane gym --clean --configuration Debug

# IPA siz simulator uchun qurish
fastlane gym --skip_package_ipa --destination "generic/platform=iOS Simulator"

--clean bayrog'i ishga tushirishdan oldin oldingi yaratishning vaqtinchalik fayllarini o'chiradi, bu eskirgan keshdan foydalanishni oldini oladi va toza yaratishni kafolatlaydi. --destination bayrog'i yaratish uchun maqsadli platformani ko'rsatish imkonini beradi: iOS Simulator, iOS Device yoki macOS Catalyst.

Gym parametriVazifasiQiymat namunasi
--schemeYaratish uchun Xcode sxemasini tanlashMyApp
--export_methodProfilni eksport qilish usuliapp-store, ad-hoc
--configurationYaratish konfiguratsiyasiRelease, Debug
--cleanYaratishdan oldin tozalashbayroq
--output_nameChiqish IPA faylining nomiApp_1.0.ipa

Gymni CI/CD quvuriga integratsiya qilish

Gymni CI/CD bilan integratsiya qilish uzluksiz yetkazib berishga intilayotgan iOS dasturchilar jamoalari uchun standart amaliyotdir. Gym GitHub Actions, GitLab CI, Bitrise yoki Jenkins quvurlarida sinov bosqichidan so'ng va TestFlight yoki App Store ga yuborishdan oldin ishga tushiriladi.

Odatiy iOS CI/CD quvuri quyidagilarni o'z ichiga oladi: repozitoriyani klonlash, CocoaPods yoki SPM orqali bog'liqliklarni o'rnatish, Match orqali sertifikatlarni sozlash, Gym orqali IPA yaratish va Pilot yoki Deliver orqali yuklash. GitLab CI — bu GitLab dan uzluksiz integratsiya tizimi bo'lib, repozitoriyaga har bir pushda yaratishni boshlash imkonini beradi.

bash
# GitLab CI da qurish bosqichi misoli
fastlane gym --scheme "MyApp" \
      --export_method app-store \
      --output_directory "$CI_PROJECT_DIR/build"
      
# IPA ni qurish artefakti sifatida saqlash
cp "build/MyApp.ipa" "$CI_PROJECT_DIR/artifacts/"

Gymning CI da to'g'ri ishlashi uchun xcodebuild ga sertifikatlar bilan Keychain ga kirishni sozlash kerak. Bu Gymni ishga tushirishdan oldin security unlock-keychain buyrug'i orqali amalga oshiriladi. Agar Match ishlatilsa, sertifikatlar avtomatik o'rnatiladi va alohida Keychain sozlash talab qilinmaydi — Match o'zi yaratish uchun vaqtinchalik kalitlar to'plamini yaratadi.

Muvaffaqiyatli yaratishdan so'ng IPA quvurning keyingi bosqichlariga uzatilishi mumkin: Pilot orqali TestFlight ga yuklash yoki Deliver orqali App Store Connect ga yuborish. Apple Developer hisob ma'lumotlarini saqlash uchun CI tizimining atrof-muhit o'zgaruvchilari ni, jumladan FASTLANE_APPLE_API_KEY va MATCH_PASSWORD ni sozlang, shunda quvurning barcha bosqichlari interaktiv kiritishsiz ishlaydi.

Gym yaratishdagi odatiy xatolar

Gym dan foydalanishda dasturchilar ko'pincha xcodebuild noto'g'ri konfiguratsiyasi, sertifikatlarning yo'qligi yoki Xcode versiyalarining mos kelmasligi bilan bog'liq xatolarga duch kelishadi. Xatolarni diagnostika qilish Gym har bir buyruq tugagandan so'ng konsolda ko'rsatiladigan to'liq yaratish jurnalini tahlil qilishdan boshlanadi.

«error: No matching provisioning profiles found» xatosi tanlangan eksport usuli uchun mos Provisioning Profile yo'qligini ko'rsatadi. Yechim: Match yoki Keychain belgilangan export_method uchun to'g'ri profilni o'z ichiga olganligiga ishonch hosil qiling. Provisioning Profile IPA ni muvaffaqiyatli imzolash uchun ilova identifikatoriga va sertifikat turiga (Development yoki Distribution) mos kelishi kerak.

«error: Signing for requires a development team» xatosi loyihada ishlab chiqish jamoasi ko'rsatilmaganda yuzaga keladi. Yechim: loyihaning yaratish konfiguratsiyasiga DEVELOPMENT_TEAM ni qo'shing yoki Gymfile da export_team_id parametri orqali team_id ni ko'rsating. Bu bir nechta Apple Developer akkauntlari bilan ishlaydigan loyihalar uchun ayniqsa muhimdir.

«error: Multiple commands produce...» xatosi workspace dagi turli targetlar o'rtasida chiqish fayllari ziddiyati sodir bo'lganda yuzaga keladi. Yechim: Xcode loyihasining Build Settings da har bir target uchun noyob chiqish yo'llarini sozlang yoki Xcode 14 va undan yangi versiyalarida standart yoqilgan yangi qurilish tizimidan foydalaning. Gym ikkala variantni --use_legacy_build_system bayrog'i orqali qo'llab-quvvatlaydi.

Tez-tez beriladigan savollar

Gym Xcode orqali oddiy yaratishdan nimasi bilan farq qiladi?

Gym xcodebuild jarayonini avtomatlashtiradi va Archive va Export qo'lda bajariladigan qadamlarini yo'q qiladi. Xcode dan farqli o'laroq, Gym barcha mashinalarda bir xil yaratish parametrlarini kafolatlaydi, batafsil jurnallarni yaratadi va grafik interfeysni ochish zaruratisiz CI/CD quvurlariga integratsiyalanadi.

Gym qanday eksport usullarini qo'llab-quvvatlaydi?

Gym to'rtta usulni qo'llab-quvvatlaydi: development tuzatish uchun, app-store nashr qilish uchun, ad-hoc cheklangan miqdordagi qurilmalarda beta-sinov uchun va enterprise In-House korporativ tarqatish uchun. Usul --export_method parametri yoki Gymfile dagi export_method orqali o'rnatiladi.

Gym orqali yaratishda IPA hajmini qanday kamaytirish mumkin?

IPA hajmini kamaytirish uchun universal ikkilik fayl yaratish uchun --export_options_plist ni thinning parametri bilan ishlating, include_bitcode(false) orqali bitkodni o'chiring va agar crash jurnallari kerak bo'lmasa, --include_symbols false parametri orqali ramzlarni stripping qilishni sozlang.

Nega Gym CI da Code Signing xatosi bilan ishlamay qoladi?

CI dagi Code Signing xatosi odatda Keychain da sertifikatlar yo'qligi sababli yuzaga keladi. Yechim: Match ni sertifikatlarni avtomatik o'rnatish uchun sozlang yoki Gymni ishga tushirishdan oldin security unlock-keychain buyrug'ini qo'shing. MATCH_PASSWORD o'zgaruvchisi CI muhitiga uzatilganligiga ishonch hosil qiling.

Gym dan macOS ilovalarini yaratish uchun foydalanish mumkinmi?

Ha, Gym faqat iOS emas, balki macOS, tvOS va watchOS ilovalarini yaratishni ham qo'llab-quvvatlaydi. macOS uchun --platform macos parametri orqali platformani ko'rsating yoki Xcode da tegishli sxemani sozlang. Gym maqsadli platforma uchun avtomatik ravishda to'g'ri arxiv formatini tanlaydi.

Xulosa

  • Gym — iOS ilovalarini IPA da avtomatik yaratish uchun Fastlane yordamchi dasturi bo'lib, xcodebuild ning murakkab bayroqlarini yagona buyruq satri interfeysi orqali abstraktlashtiradi.
  • Yaratish jarayoni xcodebuild archive orqali arxivlash va tanlangan imzolash usuli va profil bilan IPA formatiga eksport qilishdan iborat.
  • Gymfile fayli orqali sozlash barcha parametrlarni repozitoriyada mahkamlaydi: sxema, workspace, eksport usuli, konfiguratsiya va chiqish yo'llari.
  • Gym to'rtta eksport usulini qo'llab-quvvatlaydi: development, app-store, ad-hoc va enterprise — ilovani tarqatishning turli stsenariylari uchun.
  • GitHub Actions, GitLab CI yoki Bitrise orqali CI/CD bilan integratsiya repozitoriyadagi har bir kod o'zgarishidan so'ng IPA yaratishni avtomatlashtirish imkonini beradi.
  • Gym ning odatiy xatolari sertifikatlarning yo'qligi, noto'g'ri eksport usuli yoki bir nechta targetlarga ega workspace da chiqish fayllari ziddiyatlari bilan bog'liq.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing