Gym (Fastlane): یہ کیا ہے، IPA بلڈ اور ایپ ڈیولپمنٹ میں آٹومیشن

مصنف: IT Sectr اشاعت: 2026-04-14 مطالعے کا وقت: 9 منٹ

Gym (Fastlane) ایک کمانڈ لائن کے ذریعے iOS ایپلیکیشنز کو IPA فارمیٹ میں بلڈ اور سائن کرنے کا ایک ٹول ہے۔ Xcode کے برخلاف، جو سکیما اور پروفائل کے دستی انتخاب کا مطالبہ ہے، Gym ایپ کے ایکسپورٹ اور پیکیجنگ کے پورے عمل کو آٹومیٹ کرتا ہے۔ Fastlane کی سرکاری دستاویزات (2026) کے مطابق، Gym xcodebuild پیرامیٹرز کی بہترینی اور وسائل کی متوازی پروسیسنگ کے ذریعے بلڈ کا وقت 30% تک کم کرتا ہے۔

اہم نکات

Gym (Fastlane) کیا ہے؟

Gym (Fastlane) Fastlane ایکوسسٹم کا ایک جز ہے جو ایک ہی ٹرمینل کمانڈ کے ذریعے iOS ایپلیکیشنز کو IPA فارمیٹ میں بلڈ کرتا ہے۔ یہ درجنوں فلیگ کے ساتھ xcodebuild کو کال کرنے کے پیچیدہ عمل کو تجرید کرتا ہے اور ڈیویلپر کو مناسب ڈیفالٹ ویلیوز کے ساتھ ایک سادہ انٹرفیس فراہم کرتا ہے۔

Xcode میں IPA بلڈ کرنے کے لیے پروجیکٹ کھولنا، سکیما چننا، Archive اور Export ترتیب دینا، تقسیم کا طریقہ متعین کرنا اور مکمل ہونے کا انتظار کرنا ضروری ہے۔ Gym کے ذریعے بلڈ آٹومیشن دستی مراحل کو ختم کرتی ہے اور اس بات کی ضمانت دیتی ہے کہ ہر بلڈ ایک جیسے پیرامیٹرز کے ساتھ کیا جائے — یہ CI/CD پائپ لائن کی پیش نمائی کے لیے بہت اہم ہے۔

SwiftLee (2024) کے مطابق، Gym کو بلڈنگ کے لیے استعمال کرنے والی ٹیمیں Xcode Organizer کے ذریعے دستی ایکسپورٹ کے مقابلے ریلیز عمل کی ترتیب میں 40% کم وقت صرف کرتی ہیں۔ Gym xcodebuild کے ہر مرحلے کے ساتھ مفصل بلڈ لاگز بھی تیار کرتا ہے، جو ناکام بلڈز کی ڈیبگنگ اور کمپائل خامیوں کے تجزیے کو آسان بناتا ہے۔

Gym کو کسی بھی iOS پروجیکٹ میں استعمال کریں جسے ٹیسٹنگ یا پبلشنگ کے لیے باقاعدہ IPA بلڈنگ کی ضرورت ہو — ٹیم کی تمام مشینوں پر یکساں بلڈ ترتیب کی ضمانت کا یہ واحد ذریعہ ہے۔

Gym IPA کیسے بناتا ہے: عمل اور پیرامیٹرز

Gym کے ذریعے IPA بلڈ کا عمل

Gym کے ذریعے IPA بلڈنگ تین مسلسل مراحل پر مشتمل ہے: xcodebuild کے ذریعے پروجیکٹ کا آرکائیو، آرکائیو کا بائنری پیکیج میں ایکسپورٹ اور دستخط کے ساتھ IPA فارمیٹ میں پیکیجنگ۔ Gym خودکار پروجیکٹ کی قسم (واحد target یا workspace) کا تعین کرتا ہے اور صحیح بلڈ طریقہ منتخب کرتا ہے۔

آرکائیو کے مرحلے پر، Gym پروجیکٹ میں متعین سکیما اور ترتیب کے پیرامیٹرز کے ساتھ xcodebuild archive چلاتا ہے۔ .xcarchive آرکائیو کے کامیاب طریقے سے بننے کے بعد، Gym چہدے گئے ایکسپورٹ طریقے کے ساتھ xcodebuild -exportArchive چلاتا ہے۔ IPA ایکسپورٹ .xcarchive آرکائیو کو تمام ضروری وسائل اور دستخطوں کے ساتھ .ipa انسٹیلیشن فائل میں تبدیل کرنے کا عمل ہے۔

بلڈ ایکسپورٹ کے پیرامیٹرز

ایکسپورٹ کا طریقہ IPA پر دستخط کرنے کے لیے استعمال ہونے والے Provisioning Profile کی قسم کا تعین کرتا ہے۔ Gym چار طریقے سپورٹ کرتا ہے: ڈیویلپرز کے آلات پر ڈیبگنگ کے لیے development، App Store پر اشاعت کے لیے app-store، محدود تعداد کے آلات پر بیٹا ٹیسٹنگ کے لیے ad-hoc اور کارپوریٹ تقسیم کے لیے enterprise۔

اضافی پیرامیٹرز میں عین ایکسپورٹ ترتیب کے لیے export_options_plist، IPA کا حجم کم کرنے کے لیے Swift overlay کا خاتمہ اور بٹ کوڈ کا انتظام شامل ہے۔ Gym مکمل ایکسپورٹ کے بغیر کوڈ کی تیز تصدیق کے لیے مفید --skip_package_ipa فلیگ کے ذریعے سیمیولیٹر کے لیے بلڈنگ کی بھی حمایت کرتا ہے۔

bash
# Gym کے ذریعے بنیادی IPA بلڈ
fastlane gym --workspace "MyApp.xcworkspace" --scheme "MyApp"

# ایکسپورٹ طریقہ بتا کر بلڈ
fastlane gym --export_method app-store

# IPA ایکسپورٹ کے بغیر صرف آرکائیو بلڈ
fastlane gym --skip_package_ipa

Gymfile کے ذریعے Gym کی ترتیب

Gymfile ایک Fastlane ترتیب فائل ہے جو تمام بلڈ پیرامیٹرز کو ساختہ Ruby فارمیٹ میں ذخیرہ کرتی ہے۔ کمانڈ لائن کے ذریعے فلیگ بھیجنے کے برخلاف، Gymfile ترتیب کو ریپوزٹری میں مقرر کرنے اور اس بات کی ضمانت دیتی ہے کہ تمام ڈیویلپرز اور CI ایک جیسے بلڈ پیرامیٹرز استعمال کریں۔

ruby
# Gymfile — بلڈ کی ترتیب
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 میں export_method پیرامیٹر Apple Developer Portal کے پروفائل قسموں کے مطابق ہے۔ App Store کی اشاعتوں کے لیے :app-store، ٹیسٹنگ کے لیے — :development یا :ad-hoc استعمال کیا جاتا ہے۔ configuration پیرامیٹر بلڈ ترتیب کا تعین کرتا ہے: اشاعتوں کے لیے Release یا ڈیبگنگ ورژنز کے لیے Debug۔

include_bitcode پیرامیٹر IPA میں بٹ کوڈ کے شامل کیے جانے کو کنٹرول کرتا ہے۔ Apple کو watchOS اور tvOS ایپلیکیشنز کے لیے بٹ کوڈ کی ضرورت تھی، لیکن iOS کے لیے اس پیرامیٹر کو بائنری فائل کا حجم کم کرنے کے لیے بند کیا جا سکتا ہے۔ include_symbols App Store Connect یا تیسری فریق نگرانی خدمات سے کریش لاگز کی سمبلائزیشن کے لیے ضروری .dSYM ڈیبگنگ سمبل فائلز شامل کرتا ہے۔

Gymfile کے اضافی پیرامیٹرز میں کسٹم ایکسپورٹ plist فائل کے لیے export_options_plist، لاگز میں ضروری آؤٹ پٹ کو دبانے کے لیے silent اور عارضی بلڈ ڈائریکٹری متعین کرنے کے لیے build_path شامل ہے۔ یہ پیرامیٹرز اس وقت مفید ہیں جب Gym کو آرٹیفیکٹس کے حوالے سے خصوصی تقاضوں والے پیچیدہ CI/CD پائپ لائنز میں ضم کیا جائے۔

ایپلیکیشنز کی بلڈنگ کے لیے Gym کمانڈز

کمانڈ انٹرفیس Gym میں عام بلڈ مناظر کے لیے بنیادی پیرامیٹرز اور رویے کی عین ترتیب کے لیے اعلی فلیگز شامل ہیں۔ زیادہ تر پیرامیٹرز کمانڈ لائن یا Gymfile کے ذریعے بھیجے جا سکتے ہیں، جبکہ کمانڈ لائن آرگیومنٹس کو ترتیب فائل پر ترجیح حاصل ہے۔

fastlane gym کمانڈ بغیر پیرامیٹرز کے Gymfile کی ترتیبات استعمال کرتی ہے یا موجودہ ڈائریکٹری میں خودکار پروجیکٹ کا پتہ لگاتی ہے۔ ایک سے زیادہ target والے پروجیکٹس کے لیے، ہدف بلڈ ترتیب کے صحیح انتخاب کے لیے --scheme اور --workspace متعین کرنا ضروری ہے۔

عام بلڈ کمانڈز

تیز ڈیبگنگ بلڈ کے لیے، fastlane gym --export_method development استعمال کیا جاتا ہے — یہ ڈیویلپرز کے آلات پر انسٹیلیشن کے لیے Development پروفائل کے ساتھ IPA بناتا ہے۔ App Store کے لیے IPA بلڈ کو --export_method app-store فلیگ اور ایک Distribution سرٹیفیکیٹ کے استعمال کی ضرورت ہے، جسے Match یا Keychain میں پہلے سے ترتیب دینا چاہیے۔

bash
# حسب ضرورت نام کے ساتھ App Store کے لیے بلڈ
fastlane gym --export_method app-store --output_name "Release_1.0.ipa"

# آرکائیو کرنے سے پہلے صفائی کے ساتھ بلڈ
fastlane gym --clean --configuration Debug

# IPA کے بغیر سمیولٹر کے لیے بلڈ
fastlane gym --skip_package_ipa --destination "generic/platform=iOS Simulator"

--clean فلیگ چلانے سے پہلے پچھلے بلڈ کی عارضی فائلیں ہٹاتا ہے، پرانے کیش کے استعمال کو روکتا ہے اور صاف بلڈ کی ضمانت دیتا ہے۔ --destination فلیگ بلڈ کے لیے ہدف پلیٹ فارم متعین کرنے کی اجازت دیتا ہے: iOS Simulator، iOS Device یا macOS Catalyst۔

CI/CD پائپ لائن میں Gym کا انضمام

CI/CD کے ساتھ Gym کا انضمام مسلسل تقسیم کے لیے کوشش کرنے والی iOS ڈیویلپمنٹ ٹیموں کے لیے ایک معیاری مشق ہے۔ Gym ٹیسٹنگ کے مرحلے کے بعد اور TestFlight یا App Store میں بھیجنے سے پہلے GitHub Actions، GitLab CI، Bitrise یا Jenkins پائپ لائنز میں چلایا جاتا ہے۔

ایک عام iOS CI/CD پائپ لائن میں شامل ہے: ریپوزٹری کو کلون کرنا، CocoaPods یا SPM کے ذریعے انحصارات انسٹال کرنا، Match کے ذریعے سرٹیفیکیٹس ترتیب دینا، Gym کے ذریعے IPA بلڈ کرنا اور Pilot یا Deliver کے ذریعے اپ لوڈ کرنا۔ GitLab CI GitLab کا ایک مسلسل انضمام سسٹم ہے جو ریپوزٹری میں ہر push پر بلڈ شروع کرنے کی اجازت دیتا ہے۔

bash
# GitLab CI میں بلڈ سٹیپ کی مثال
fastlane gym --scheme "MyApp" \
      --export_method app-store \
      --output_directory "$CI_PROJECT_DIR/build"
      
# IPA کو بلڈ آرٹیفیکٹ کے طور پر محفوظ کرنا
cp "build/MyApp.ipa" "$CI_PROJECT_DIR/artifacts/"

CI میں Gym کے درست کام کرنے کے لیے، xcodebuild کی سرٹیفیکیٹس والے Keychain تک رسائی ترتیب دینا ضروری ہے۔ یہ Gym چلانے سے پہلے security unlock-keychain کمانڈ کے ذریعے کیا جاتا ہے۔ اگر Match استعمال کیا جاتا ہے، سرٹیفیکیٹس خودکار انسٹال ہو جاتے ہیں اور علیحدہ Keychain ترتیب کی ضرورت نہیں ہے — Match خود بلڈ کے لیے ایک عارضی کی چین بناتا ہے۔

کامیاب IPA بلڈ کے بعد، اسے پائپ لائن کے اگلے مراحل میں منتقل کیا جا سکتا ہے: Pilot کے ذریعے TestFlight پر اپ لوڈ یا Deliver کے ذریعے App Store Connect کو ارسال۔ تمام پائپ لائن مراحل کے بغیر انٹریکٹو انپٹ کے کام کرنے کے لیے FASTLANE_APPLE_API_KEY اور MATCH_PASSWORD سمیت Apple Developer اسناد کو ذخیرہ کرنے کے لیے CI سسٹم کے ماحول متغیرات کو ترتیب دیں۔

عام Gym بلڈ خامیاں

Gym استعمال کرتے وقت، ڈیویلپرز اکثر غلط xcodebuild ترتیب، سرٹیفیکیٹ کی غیرحاضری یا Xcode ورژن کی غیر مطابقت سے متعلق خامیوں کا سامنا کرتے ہیں۔ خامیوں کی تشخیص Gym ہر کمانڈ کے بعد کنسول پر دکھائے جانے والے مکمل بلڈ لاگ کے تجزیے سے شروع ہوتی ہے۔

« error: No matching provisioning profiles found » خامی چہدے گئے ایکسپورٹ طریقے کے لیے مناسب Provisioning Profile کی غیرحاضری کو ظاہر کرتی ہے۔ حل: تصدیق کریں کہ Match یا Keychain میں متعین export_method کے لیے صحیح پروفائل موجود ہے۔ Provisioning Profile کامیاب IPA دستخط کے لیے ایپ کے آئیڈینٹیفائر اور سرٹیفیکیٹ کی قسم (Development یا Distribution) سے مطابق ہونا چاہیے۔

« error: Signing for requires a development team » خامی اس وقت ہوتی ہے جب پروجیکٹ میں کوئی ڈیویلپمنٹ ٹیم متعین نہیں کی گئی ہے۔ حل: پروجیکٹ کی بلڈ ترتیب میں DEVELOPMENT_TEAM شامل کریں یا Gymfile میں export_team_id پیرامیٹر کے ذریعے team_id متعین کریں۔ یہ خاص طور پر ان پروجیکٹس کے لیے اہم ہے جو متعدد Apple Developer اکاؤنٹس کے ساتھ کام کرتے ہیں۔

« error: Multiple commands produce... » خامی پر، workspace میں مختلف targets کے درمیان آؤٹ پٹ فائل کا تصادم ہوتا ہے۔ حل: Xcode پروجیکٹ کی Build Settings میں ہر target کے لیے منفرد آؤٹ پٹ راستے ترتیب دیں یا نیا بلڈ سسٹم استعمال کریں، جو Xcode 14 اور بعد کے ورژنز میں بطور ڈیفالٹ فعال ہے۔ Gym --use_legacy_build_system فلیگ کے ذریعے دونوں اختیارات کی حمایت کرتا ہے۔

اکثر پوچھے جانے والے سوالات

Gym عام Xcode بلڈنگ سے کیسے مختلف ہے؟

Gym xcodebuild کے عمل کو آٹومیٹ کرتا ہے اور دستی Archive اور Export مراحل کو ختم کرتا ہے۔ Xcode کے برخلاف، Gym تمام مشینوں پر ایک جیسے بلڈ پیرامیٹرز کی ضمانت دیتا ہے، مفصل لاگز تیار کرتا ہے اور گرافیکی انٹرفیس کھولنے کی ضرورت کے بغیر CI/CD پائپ لائنز میں ضم ہو جاتا ہے۔

Gym کن ایکسپورٹ طریقوں کی حمایت کرتا ہے؟

Gym چار طریقے سپورٹ کرتا ہے: ڈیبگنگ کے لیے development، اشاعت کے لیے app-store، محدود تعداد کے آلات پر بیٹا ٹیسٹنگ کے لیے ad-hoc اور کارپوریٹ اندرونی تقسیم In-House کے لیے enterprise۔ طریقہ --export_method پیرامیٹر یا Gymfile میں export_method کے ذریعے مقرر کیا جاتا ہے۔

Gym کے ساتھ بلڈ کرتے وقت IPA کا حجم کیسے کم کیا جائے؟

IPA کا حجم کم کرنے کے لیے، ایک یونیورسل بائنری تیار کرنے کے لیے thinning پیرامیٹر کے ساتھ --export_options_plist استعمال کریں، include_bitcode(false) کے ذریعے بٹ کوڈ بند کریں اور اگر کریش لاگز کی ضرورت نہیں ہے تو --include_symbols false پیرامیٹر کے ذریعے سمبل سٹرپنگ ترتیب دیں۔

CI میں Gym Code Signing خامی سے کیوں ناکام ہوتا ہے؟

CI میں Code Signing خامی عموماً Keychain میں سرٹیفیکیٹس کی غیرحاضری کی وجہ سے ہوتی ہے۔ حل: سرٹیفیکیٹس کی خودکار انسٹیلیشن کے لیے Match ترتیب دیں یا Gym چلانے سے پہلے security unlock-keychain کمانڈ شامل کریں۔ یقینی بنائیں کہ MATCH_PASSWORD متغیر CI ماحول میں موجود ہے۔

کیا Gym کو macOS ایپلیکیشنز کی بلڈنگ کے لیے استعمال کیا جا سکتا ہے؟

جی ہاں، Gym صرف iOS ہی نہیں، macOS، tvOS اور watchOS ایپلیکیشنز کی بلڈنگ کی بھی حمایت کرتا ہے۔ macOS کے لیے، --platform macos پیرامیٹر کے ذریعے پلیٹ فارم متعین کریں یا Xcode میں مناسب سکیما ترتیب دیں۔ Gym ہدف پلیٹ فارم کے لیے خودکار صحیح آرکائیو فارمیٹ کا انتخاب کرے گا۔

خلاصہ

  • Gym ایک Fastlane یوٹیلیٹی ہے جو iOS ایپلیکیشنز کو خودکار IPA میں بلڈ کرتا ہے، xcodebuild کے پیچیدہ فلیگ کو ایک مرکزی کمانڈ لائن انٹرفیس کے پیچھے چھپاتا ہے۔
  • بلڈ کا عمل xcodebuild archive کے ذریعے آرکائیو اور چہدے گئے دستخط طریقے اور پروفائل کے ساتھ IPA فارمیٹ میں ایکسپورٹ پر مشتمل ہے۔
  • Gymfile فائل کے ذریعے ترتیب تمام پیرامیٹرز کو ریپوزٹری میں مقرر کرتی ہے: سکیما، workspace، ایکسپورٹ کا طریقہ، ترتیب اور آؤٹ پٹ راستے۔
  • Gym چار ایکسپورٹ طریقے سپورٹ کرتا ہے: مختلف ایپ تقسیم مناظر کے لیے development، app-store، ad-hoc اور enterprise۔
  • GitHub Actions، GitLab CI یا Bitrise کے ذریعے CI/CD انضمام ریپوزٹری میں کوڈ کی ہر تبدیلی کے بعد IPA بلڈنگ کو آٹومیٹ کرنے کی اجازت دیتا ہے۔
  • عام Gym خامیاں سرٹیفیکیٹ کی غیرحاضری، غلط ایکسپورٹ طریقے یا متعدد targets کے ساتھ workspace میں آؤٹ پٹ فائل تصادم سے متعلق ہیں۔
Gym پیرامیٹرکاریائی
--schemeبلڈ کے لیے Xcode سکیما کا انتخابMyApp
--export_methodپروفائل ایکسپورٹ کا طریقہapp-store, ad-hoc
--configurationبلڈ ترتیبRelease, Debug
--cleanبلڈ سے پہلے صفائیflag
--output_nameآؤٹ پٹ IPA فائل کا نامApp_1.0.ipa

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں