Match (Fastlane) ایک ٹول ہے جو Code Signing سرٹیفکیٹس اور iOS Provisioning Profiles کو خفیہ کردہ Git ذخیرہ میں محفوظ کرتا ہے۔ Apple Developer Portal کے ذریعے دستی انتظام کے برعکس، Match تمام ڈویلپرز اور CI/CD سسٹمز کے درمیان دستخطوں کی ہم آہنگی کو خودکار بناتا ہے۔ Fastlane کی سرکاری دستاویز (2026) کے مطابق، Match iOS ایپلیکیشنز کی تعمیر کے دوران غلط سرٹیفکیٹس سے متعلق 90% تک غلطیوں کو ختم کرتا ہے۔
اہم نکات
Match (Fastlane) Fastlane ایکو سسٹم کا ایک جزو ہے جو iOS ڈیولپمنٹ کے لیے Code Signing سرٹیفکیٹس اور Provisioning Profiles کے مرکزی انتظام کے لیے ڈیزائن کیا گیا ہے۔ یہ ٹیم کے اراکین کے درمیان دستخطوں کی ہم آہنگی کے مسئلے کو حل کرتا ہے اور ڈویلپر کی مداخلت کے بغیر CI/CD پائپ لائنز میں سرٹیفکیٹ کی ترتیب کو خودکار بناتا ہے۔
Match کے بغیر، ہر ٹیم ممبر Xcode یا Apple Developer Portal کے ذریعے دستی طور پر سرٹیفکیٹس تیار کرتا ہے، جو مختلف مشینوں پر تعمیر کے دوران تنازعات کا سبب بنتا ہے۔ Code Signing iOS ایپلیکیشن پر ڈیجیٹل دستخط کرنے کا عمل ہے جو صارف کے آلے پر انسٹالیشن سے پہلے اس کی تصنیف اور سالمیت کی تصدیق کرتا ہے۔
Apple Developer Documentation (2025) کے مطابق، غلط سرٹیفکیٹ ترتیب ایپ کو App Store پر جمع کرواتے وقت مسترد کیے جانے کی سب سے عام وجوہات میں سے ایک ہے۔ Match خود بخود سرٹیفکیٹس کی میعاد کی جانچ کرتا ہے اور ختم ہونے کی تاریخوں سے آگاہ کرتا ہے، جو Apple کی تصدیق کے مرحلے پر تعمیر کے مسترد ہونے کے خطرے کو کم کرتا ہے۔
Match کو کسی بھی پروجیکٹ میں استعمال کریں جس میں دو یا زیادہ ڈویلپر ہوں یا CI/CD پائپ لائن موجود ہو۔ یہ ٹیم کے نئے رکن کے ماحول کی ترتیب کے وقت کو 30 منٹ سے کم کرکے ٹرمینل میں ایک کمانڈ کر دیتا ہے۔
Match کا فن تعمیر iOS ٹیم کے تمام سرٹیفکیٹس کے لیے واحد حقیقت کے ماخذ (Single Source of Truth) کے تصور پر مبنی ہے۔ ہر ڈویلپر کی کیچین میں مقامی ذخیرہ کرنے کے بجائے، Match تمام سرٹیفکیٹس کو ایک ہی Git ذخیرہ میں محفوظ کرنے سے پہلے ہر فائل کو خفیہ کرتا ہے۔
یہ عمل تین مراحل پر مشتمل ہے۔ ابتدا کے مرحلے میں، Match Apple Developer Portal API کے ذریعے تمام ضروری سرٹیفکیٹس اور پروفائلز تیار کرتا ہے۔ ہر فائل کو صارف کے پاس ورڈ فقرے پر مبنی کلید کے ساتھ AES-256 الگورتھم کا استعمال کرتے ہوئے خفیہ کیا جاتا ہے۔ خفیہ کردہ فائلیں Git ذخیرہ میں محفوظ کی جاتی ہیں اور معیاری Git push اور pull آپریشنز کے ذریعے ریموٹ سرور کے ساتھ ہم آہنگ کی جاتی ہیں۔
Match سرٹیفکیٹس اور پروفائلز کو خفیہ کرنے کے لیے OpenSSL اور صارف کے پاس ورڈ فقرے کا ایک مجموعہ استعمال کرتا ہے۔ رسائی کی کلید MATCH_PASSWORD ماحولیاتی متغیر کے ذریعے سیٹ کی جاتی ہے اور ذخیرہ میں محفوظ نہیں ہوتی، اس طرح Git سرور سے سمجھوتہ ہونے یا ذخیرہ تک عوامی رسائی کی صورت میں بھی رسائی کو روکا جاتا ہے۔
سرٹیفکیٹ کی درخواست پر، Match ذخیرہ سے خفیہ کردہ فائل ڈاؤن لوڈ کرتا ہے، اسے پاس ورڈ فقرے کا استعمال کرتے ہوئے مقامی طور پر ڈکرپٹ کرتا ہے اور موجودہ مشین کی Keychain میں انسٹال کرتا ہے۔ تعمیر مکمل ہونے کے بعد، سرٹیفکیٹس کو Keychain سے ہٹایا جا سکتا ہے تاکہ کارپوریٹ ماحول کی سیکیورٹی پالیسیوں کی تعمیل کی جا سکے، جو بعد کی تعمیروں میں متروک سرٹیفکیٹس کے استعمال کو روکتا ہے۔
ہر سرٹیفکیٹ کو ایپ کی شناخت، پروفائل کی قسم اور تخلیق کی تاریخ پر مشتمل نام کے ساتھ محفوظ کیا جاتا ہے۔ یہ ڈھانچہ Match کو سرٹیفکیٹ ورژنز کا انتظام کرنے اور ضرورت پڑنے پر معیاری Git revert اور reset کمانڈز کے ذریعے پچھلی حالت میں واپس جانے کی اجازت دیتا ہے۔ یہ خاص طور پر حادثاتی طور پر حذف کرنے یا پروفائل کو اوور رائٹ کرنے کی صورتوں میں مفید ہے۔
Match کی تنصیب Ruby پیکیج مینیجر کے ذریعے Fastlane کے ساتھ کی جاتی ہے: gem install fastlane۔ تنصیب کے بعد، fastlane match init کمانڈ سے سرٹیفکیٹ ذخیرہ کو ابتدائی شکل دیں، جو ایک خالی Git ذخیرہ بناتا ہے اور بنیادی ترتیب کے سانچے کے ساتھ Matchfile فائل تیار کرتا ہے۔
# Match ذخیرہ کی ابتدا
fastlane match init
Matchfile فائل میں سرٹیفکیٹ ذخیرہ سے کنکشن کے تمام پیرامیٹرز شامل ہیں: Git ذخیرہ کا URL، ڈیفالٹ پروفائل کی قسم، ایپ کی شناخت اور Apple Developer اسناد۔ پانچ ڈویلپرز کی ٹیم کے لیے عام ترتیب کی مثال:
# Matchfile configuration
git_url("https://github.com/company/certificates.git")
type(:development)
app_identifier(["com.company.app", "com.company.app.extension"])
username("developer@company.com")
team_id("TEAM123456")
git_branch("main")
type پیرامیٹر پروفائل کی قسم کا تعین کرتا ہے: :development ڈویلپر آلات پر ڈیبگنگ کے لیے، :appstore App Store میں اشاعت کے لیے، :adhoc بیرونی آلات پر جانچ کے لیے اور :enterprise App Store سے باہر In-House کارپوریٹ تقسیم کے لیے۔ ہر قسم ذخیرہ میں ایک علیحدہ ڈائریکٹری بناتی ہے، جس سے پروفائلز کو ہدف تعمیر کے منظرنامے کے مطابق منظم کیا جا سکتا ہے۔
Match Apple Developer Portal پر تصدیق کے متعدد طریقوں کو سپورٹ کرتا ہے: Apple ID کے ذریعے دو عوامل کی تصدیق، ایپ کے لیے مخصوص پاس ورڈ (App-Specific Password) اور App Store Connect API کلیدیں۔ CI/CD کے لیے API کلیدوں کے استعمال کی سفارش کی جاتی ہے۔ انہیں تصدیقی کوڈ کے انٹرایکٹو ان پٹ کی ضرورت نہیں ہوتی اور ڈویلپر کے آلے کی تبدیلی پر خودکار تعمیرات کو مسدود نہیں کرتیں۔
Matchfile کی ترتیب کے بعد، پروفائلز بنانے اور ہم آہنگ کرنے کے لیے fastlane match development یا fastlane match appstore کمانڈ چلائیں۔ Match Apple Developer Portal API کے ذریعے خود بخود سرٹیفکیٹس بناتا یا اپ ڈیٹ کرتا ہے اور انہیں ذخیرہ میں محفوظ کرتا ہے۔ Apple Developer Portal سرٹیفکیٹس، ایپ کی شناخت اور اجازت یافتہ ڈویلپر آلات کی فہرست کے انتظام کے لیے Apple کا ویب انٹرفیس ہے۔
پہلے چلانے پر، Match ذخیرہ کو خفیہ کرنے کے لیے پاس ورڈ فقرہ طلب کرتا ہے۔ یہ فقرہ CI/CD خفیہ منتظم (GitHub Actions Secrets، GitLab CI Variables یا Jenkins Credentials) میں محفوظ کیا جانا چاہیے اور MATCH_PASSWORD ماحولیاتی متغیر کے ذریعے منتقل کیا جانا چاہیے۔ اس کے بغیر Match دوسری مشینوں یا CI ماحول میں سرٹیفکیٹس کو ڈکرپٹ نہیں کر سکتا۔
Match کا انٹرفیس سرٹیفکیٹس اور پروفائلز بنانے، اپ ڈیٹ کرنے، ہم آہنگ کرنے اور حذف کرنے کے کمانڈز کے ایک سیٹ پر مشتمل ہے۔ ہر کمانڈ Code Signing لائف سائیکل میں تخلیق سے لے کر ذخیرہ کی مکمل صفائی تک ایک مخصوص عمل سے مطابقت رکھتا ہے۔
fastlane match development کمانڈ مقامی آلات پر ڈیبگنگ کے لیے Development سرٹیفکیٹس اور پروفائلز ڈاؤن لوڈ یا بناتا ہے۔ Provisioning Profile ایک Apple کی ڈیجیٹل دستاویز ہے جو ڈویلپر سرٹیفکیٹ کو ایپ کی شناخت اور انسٹالیشن کے لیے اجازت یافتہ آلات کی فہرست سے جوڑتی ہے۔
App Store میں اشاعت کے لیے fastlane match appstore استعمال کیا جاتا ہے — یہ Distribution سرٹیفکیٹس اور AppStore پروفائلز بناتا ہے۔ fastlane match adhoc بیرونی آلات پر جانچ کے لیے پروفائلز بناتا ہے اور fastlane match enterprise In-House کارپوریٹ ایپلیکیشنز کے لیے۔
# ڈیبگنگ کے لیے Development پروفائلز بنانا
fastlane match development
# ریلیز کے لیے AppStore پروفائلز بنانا
fastlane match appstore
# موجودہ دستی سرٹیفکیٹس درآمد کرنا
fastlane match import
fastlane match import کمانڈ موجودہ سرٹیفکیٹس کو ذخیرہ میں شامل کرنے کی اجازت دیتا ہے — دستی انتظام سے Match میں منتقلی کے وقت مفید ہے۔ --readonly پیرامیٹر ذخیرہ میں تمام تبدیلیوں کو روکتا ہے، جو CI ماحول کے لیے اہم ہے جہاں پائپ لائن کو خود بخود سرٹیفکیٹس اور پروفائلز نہیں بنانے یا حذف کرنے چاہئیں۔
| Match کمانڈ | مقصد | پروفائل کی قسم |
|---|---|---|
| match development | آلات پر ڈیبگنگ کے لیے Development پروفائلز بنانا | Development |
| match appstore | App Store میں اشاعت کے لیے پروفائلز بنانا | AppStore |
| match adhoc | بیٹا ٹیسٹرز کے آلات پر بیرونی جانچ کے لیے پروفائلز | AdHoc |
| match enterprise | In-House تقسیم کے لیے کارپوریٹ پروفائلز | Enterprise |
| match import | پہلے سے بنائے گئے سرٹیفکیٹس کو ذخیرہ میں درآمد کرنا | کوئی بھی |
ذخیرہ کو مکمل طور پر صاف کرنے کے لیے fastlane match nuke کمانڈ استعمال کیا جاتا ہے۔ یہ Git ذخیرہ، Apple Developer Portal اور مقامی مشین سے تمام سرٹیفکیٹس حذف کر دیتا ہے — یہ پروجیکٹ کے لیے Code Signing کی حالت کو مکمل طور پر دوبارہ ترتیب دیتا ہے۔ یہ کمانڈ صرف سنگین تنازعات کی صورت میں یا نئے Apple Developer اکاؤنٹ میں منتقلی کے وقت استعمال کیا جاتا ہے۔
CI/CD انضمام Match کے اہم فوائد میں سے ایک ہے۔ GitHub Actions، GitLab CI، Bitrise یا Jenkins پائپ لائنز میں، Match ڈویلپر کی مداخلت کے بغیر خود بخود درست سرٹیفکیٹس ڈاؤن لوڈ اور انسٹال کرتا ہے۔ یہ کمٹ سے لے کر تیار IPA تک iOS ایپلیکیشن کی مکمل خودکار تعمیر اور دستخط کو ممکن بناتا ہے۔
GitHub Actions کے لیے عام ترتیب میں Fastlane کی تنصیب، MATCH_PASSWORD ماحولیاتی متغیر کی ترتیب اور --readonly فلیگ کے ساتھ Match کو چلانا شامل ہے۔ GitHub Actions GitHub کا CI/CD پلیٹ فارم ہے جو ذخیرہ میں واقعات کی بنیاد پر کوڈ کی تعمیر، جانچ اور اشاعت کو خودکار بناتا ہے۔
# CI ماحول میں Fastlane کی تنصیب
gem install fastlane --no-document
# تبدیلی کے حق کے بغیر صرف پڑھنے کے موڈ میں Match چلانا
fastlane match development --readonly
CI میں Match چلانے سے پہلے سرٹیفکیٹ ذخیرہ تک رسائی کو ترتیب دینا ضروری ہے۔ Fastlane Matchfile میں git_url پیرامیٹر کی بنیاد پر خود بخود ذخیرہ کو کلون کرتا ہے۔ ذخیرہ تک رسائی SSH کلید یا پرسنل ایکسیس ٹوکن کے ذریعے ترتیب دی جاتی ہے جو CI سسٹم کے رازوں میں شامل کی جاتی ہے — یہ یقینی بناتا ہے کہ سرٹیفکیٹس عوامی رسائی کے ذریعے سمجھوتہ نہ ہوں۔
اپنے CI فراہم کنندہ کے رازوں میں MATCH_PASSWORD اور FASTLANE_APPLE_API_KEY ماحولیاتی متغیرات ترتیب دیں۔ App Store Connect API کلید Match کو دو عوامل کی تصدیق کے بغیر Apple Developer Portal پر تصدیق کرنے کی اجازت دیتی ہے، جو خودکار تعمیرات میں انٹرایکٹو درخواستوں کو ختم کرتی ہے اور پائپ لائن کی مسدودی کو روکتی ہے۔
Match کی درست ترتیب کے باوجود، سرٹیفکیٹ کی میعاد ختم ہونے، پروفائل تنازعات یا غلط ماحول کی ترتیب سے متعلق غلطیاں ہو سکتی ہیں۔ مسائل کی تشخیص کمانڈ لاگز کے تجزیے اور سرٹیفکیٹ Git ذخیرہ کی موجودہ حالت کی جانچ پر مبنی ہے۔
سب سے عام غلطی “You need to provide a password for Match” اس وقت ہوتی ہے جب MATCH_PASSWORD ماحولیاتی متغیر مشین یا CI ماحول میں سیٹ نہ ہو۔ حل: MATCH_PASSWORD کو سسٹم کے ماحولیاتی متغیرات میں شامل کریں یا Match کمانڈ چلاتے وقت پاس ورڈ --keychain_password پیرامیٹر کے ذریعے منتقل کریں۔
دوسرا سب سے عام مسئلہ AdHoc پروفائل میں نیا آلہ شامل کرتے وقت سرٹیفکیٹ تنازع ہے۔ fastlane match adhoc --force کمانڈ سے حل کریں، جو نئے آلات کو مدنظر رکھتے ہوئے پروفائلز کو دوبارہ بناتا ہے۔ Apple Developer سرٹیفکیس ایک سال کے لیے درست ہوتے ہیں، جس کے بعد ان کا استعمال کرنے والی تعمیرات App Store Connect کے ذریعے مسترد کر دی جاتی ہیں۔ Match میعاد ختم ہونے سے 30 دن پہلے آگاہ کرتا ہے۔
“Multiple matches found for...” غلطی پر، ذخیرہ میں ایک ہی سرٹیفکیٹ کے متعدد ورژن موجود ہوتے ہیں۔ ذخیرہ کو مکمل طور پر صاف کرنے اور Apple Developer Portal سے تمام سرٹیفکیٹس حذف کرنے کے لیے fastlane match nuke کمانڈ استعمال کریں۔ صفائی کے بعد شروع سے تخلیق کریں — یہ ڈپلیکیٹس یا متضاد ورژن کے بغیر پروفائلز کی مستقل حالت کو یقینی بناتا ہے۔
اکثر پوچھے گئے سوالات
Match Git میں محفوظ کرنے سے پہلے ہر سرٹیفکیٹ فائل کو OpenSSL اور AES-256-CBC الگورتھم کے ساتھ خفیہ کرتا ہے۔ خفیہ کاری کی کلید MATCH_PASSWORD پاس ورڈ فقرے پر مبنی ہوتی ہے۔ ذخیرہ تک عوامی رسائی کی صورت میں بھی، پاس ورڈ کے بغیر سرٹیفکیٹس تک رسائی ممکن نہیں۔
نہیں، Match کو خفیہ کردہ سرٹیفکیٹس کو ذخیرہ کرنے کے لیے Git ذخیرہ کی ضرورت ہے۔ تاہم، اگر مشینوں کے درمیان ہم آہنگی کی ضرورت نہ ہو تو ذخیرہ مقامی ہو سکتا ہے۔ اس صورت میں، git_url پیرامیٹر میں ریموٹ ذخیرہ کے URL کی بجائے فائل سسٹم پر ایک ڈائریکٹری کا مقامی راستہ بتایا جاتا ہے۔
تنازع اس وقت ہوتا ہے جب دو ڈویلپر بیک وقت مختلف سرٹیفکیٹس بناتے ہیں۔ حل ذخیرہ اور Apple Developer Portal میں تمام سرٹیفکیٹس کو مکمل طور پر صاف کرنے کے لیے fastlane match nuke کمانڈ استعمال کرنا ہے۔ صفائی کے بعد، ایک ڈویلپر شروع سے تخلیق کرتا ہے اور Git کے ذریعے ہم آہنگ کرتا ہے۔
Match شروع ہونے پر خود بخود میعاد ختم شدہ سرٹیفکیٹس کا پتہ لگاتا ہے اور انہیں تبدیل کرنے کی تجویز کرتا ہے۔ زبردستی تجدید کے لیے fastlane match [type] --force چلائیں — یہ کمانڈ موجودہ سرٹیفکیٹس کے ابھی درست ہونے پر بھی مخصوص قسم کے سرٹیفکیٹس اور پروفائلز کو دوبارہ بناتی ہے، جو ڈویلپر ٹیم کی تبدیلی پر مفید ہے۔
دستی انتظام کے لیے ہر مشین کے لیے الگ سے Xcode یا Developer Portal کے ذریعے سرٹیفکیس بنانے کی ضرورت ہوتی ہے۔ Match ذخیرہ کو مرکزی بناتا ہے، ڈیٹا کو خفیہ کرتا ہے، ڈویلپرز اور CI/CD کے درمیان ہم آہنگ کرتا ہے اور انسانی مداخلت کے بغیر تمام دستخطوں کی میعاد اور تاریخوں کو خود بخود چیک کرتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں