Fastlane iOS और Android के लिए मोबाइल ऐप्लिकेशन के बिल्ड और प्रकाशन को ऑटोमेट करने का टूल है। Fastlane कोड साइनिंग, बिल्डिंग, टेस्ट चलाना, स्क्रीनशॉट बनाना और App Store Connect व Google Play Console पर अपलोड करने का प्रबंधन करता है। यह मोबाइल डिवेलपमेंट में CI/CD के लिए डी-फ़ैक्टो स्टैंडर्ड है।
मुख्य निष्कर्ष
Fastlane एक ओपन-सोर्स टूल है जो मोबाइल डिवेलपमेंट के रूटीन कार्यों को ऑटोमेट करता है: ऐप्लिकेशन बनाना, टेस्ट चलाना, स्क्रीनशॉट बनाना, सर्टिफिकेट प्रबंधन करना और बिल्ड को TestFlight, App Store और Google Play पर अपलोड करना। Fastlane Ruby में लिखा गया है और gem install fastlane कमांड से RubyGems के माध्यम से वितरित किया जाता है।
Fastlane 2015 में एक iOS टूल के रूप में सामने आया लेकिन जल्दी ही Android पर विस्तारित हो गया। आज यह दर्जनों एक्शन का एक इकोसिस्टम है — बिल्ट-इन कमांड जिन्हें lanes नामक सीनारियो में संयोजित किया जा सकता है। प्रत्येक lane एक विशिष्ट कार्य करता है: उदाहरण के लिए, build_release रिलीज़ वर्शन बनाता है और deploy_beta बिल्ड को TestFlight पर अपलोड करता है।
Fastlane का उपयोग Uber, Airbnb, Snapchat, Twitter और Shopify जैसी कंपनियाँ करती हैं। 2024 के सर्वेक्षण के अनुसार, 60% से अधिक iOS डिवेलपर अपने प्रोजेक्ट्स में Fastlane का उपयोग करते हैं। टूल स्थानीय निष्पादन और क्लाउड CI सिस्टम के साथ इंटीग्रेशन दोनों का समर्थन करता है, जो इसे मोबाइल CI/CD के लिए डी-फ़ैक्टो स्टैंडर्ड बनाता है।
# Fastlane इंस्टॉल करना
sudo gem install fastlane -NV
# प्रोजेक्ट में इनिशियलाइज़ करना
fastlane init
इनिशियलाइज़ेशन के बाद, Fastlane fastlane/ डायरेक्टरी बनाता है जिसमें तीन फ़ाइलें होती हैं: Fastfile (सीनारियो), Appfile (ऐप सेटिंग्स) और Matchfile (सर्टिफिकेट सेटिंग्स)। यह संरचना दोनों प्लेटफ़ॉर्म — iOS और Android — के लिए समान रहती है।
Fastlane की मुख्य कॉन्फ़िगरेशन फ़ाइल Fastfile है। यह प्रोजेक्ट रूट में fastlane/ डायरेक्टरी में स्थित होती है। Fastfile Ruby में लिखी जाती है: प्रत्येक lane एक नामित ब्लॉक है जिसमें एक्शन का क्रम होता है। एक lane पैरामीटर ले सकता है, अन्य lanes को कॉल कर सकता है और मान लौटा सकता है।
# fastlane/Fastfile — iOS उदाहरण
default_platform(:ios)
platform :ios do
desc "Build and upload to TestFlight"
lane :beta do
match(type: "appstore")
gym(scheme: "MyApp", configuration: "Release")
pilot(skip_waiting_for_build: true)
end
desc "Deploy to App Store"
lane :release do
ensure_git_status_clean
match(type: "appstore")
gym(scheme: "MyApp")
deliver(
skip_metadata: true,
skip_screenshots: true
)
push_to_git_remote(tags: true)
end
end
प्रत्येक lane को fastlane ios beta या fastlane ios release कमांड से चलाया जाता है। Fastfile वेरिएबल, कंडीशन, लूप और बाहरी स्क्रिप्ट कॉल का समर्थन करती है — यह एक पूर्ण Ruby फ़ाइल है। डिवेलपर private_lane (स्थानीय मेथड) और अन्य Fastfiles से import के माध्यम से कोड का पुनः उपयोग कर सकते हैं।
Fastlane अधिकांश कार्यों के लिए 200 से अधिक बिल्ट-इन एक्शन प्रदान करता है। यदि आवश्यक एक्शन मौजूद नहीं है, तो आप Ruby में अपना खुद का लिख सकते हैं या sh("...") के माध्यम से शेल कमांड कॉल कर सकते हैं। एक्शन पैरामीटर ले सकते हैं — बिल्ड सेटिंग्स, पथ, एक्सेस टोकन — और बाद के चरणों में उपयोग के लिए परिणाम लौटा सकते हैं।
iOS के लिए Fastlane तीन मुख्य समस्याओं का समाधान करता है: सर्टिफिकेट और प्रोविज़निंग प्रोफ़ाइल प्रबंधन, Xcode के माध्यम से IPA बिल्ड करना और App Store Connect व TestFlight पर प्रकाशन। इनमें से प्रत्येक कार्य एक अलग एक्शन द्वारा कवर किया जाता है।
match सर्टिफिकेट प्रबंधन के लिए एक एक्शन है। यह सभी सर्टिफिकेट और प्रोविज़निंग प्रोफ़ाइल को एक एन्क्रिप्टेड Git रिपॉजिटरी में संग्रहीत करता है। प्रत्येक डिवेलपर और CI सर्वर फ़ाइलों के एक ही सेट का उपयोग करते हैं, जो संघर्षों और समाप्त सर्टिफिकेट की समस्याओं को समाप्त करता है। नए डिवाइस जोड़ने पर Match स्वचालित रूप से प्रोफ़ाइल अपडेट करता है।
sigh Apple Developer Portal के माध्यम से प्रोविज़निंग प्रोफ़ाइल बनाता और डाउनलोड करता है। इसका उपयोग तब किया जाता है जब आपको किसी विशिष्ट प्रकार — development, ad-hoc या appstore — के लिए जल्दी से प्रोफ़ाइल प्राप्त करने की आवश्यकता होती है।
gym IPA बनाता है। Gym xcodebuild को ऑप्टिमल पैरामीटर के साथ रैप करता है, स्वचालित रूप से स्कीम, कॉन्फ़िगरेशन, एक्सपोर्ट विकल्प चुनता है और एक साइन किया हुआ IPA बनाता है। उदाहरण: gym(scheme: "MyApp", export_method: "app-store")।
pilot TestFlight का प्रबंधन करता है। यह बिल्ड अपलोड करता है, परीक्षक जोड़ता है और समीक्षा स्थिति को ट्रैक करता है। deliver मेटाडेटा, स्क्रीनशॉट, मूल्य निर्धारण और वर्शनिंग सहित पूर्ण App Store प्रकाशन संभालता है।
# iOS ऐप बनाना और प्रकाशित करना
lane :deploy_ios do
cocoapods
match(type: "appstore", readonly: true)
gym(scheme: "MyApp", export_method: "app-store")
pilot(changelog: "Bug fixes and performance improvements")
end
App Store Connect के साथ काम करने के लिए एक्सेस टोकन आवश्यक हैं। Fastlane दो प्रमाणीकरण विधियों का समर्थन करता है: App Store Connect API Key (अनुशंसित) और दो-कारक प्रमाणीकरण के साथ Apple ID। API कुंजियाँ CI/CD के लिए अधिक सुविधाजनक हैं क्योंकि उन्हें इंटरैक्टिव पासवर्ड प्रविष्टि की आवश्यकता नहीं होती है।
| एक्शन | उद्देश्य | मैनुअल समकक्ष |
|---|---|---|
match | सर्टिफिकेट और प्रोफ़ाइल प्रबंधन | Apple Developer Portal |
sigh | प्रोविज़निंग प्रोफ़ाइल निर्माण | Xcode + Developer Portal |
gym | IPA बिल्ड | xcodebuild + xcrun |
pilot | TestFlight अपलोड | Xcode Organizer |
deliver | App Store प्रकाशन | App Store Connect Web |
scan | UI टेस्ट निष्पादन | xcodebuild test |
Android पर, Fastlane Gradle के माध्यम से बिल्ड, APK और AAB साइनिंग, Google Play Console पर अपलोड और Firebase App Distribution को ऑटोमेट करता है।
gradle Android बिल्ड के लिए मुख्य एक्शन है। यह आवश्यक कार्यों के साथ Gradle रैपर को कॉल करता है: gradle(task: "assembleRelease") या AAB के लिए gradle(task: "bundleRelease")। आप फ़्लैग, एनवायरनमेंट वेरिएबल और gradle.properties का पथ पास कर सकते हैं।
supply APK या AAB को Google Play Console पर अपलोड करता है। Supply वर्शन, ट्रैक (internal, alpha, beta, production), रिलीज़ नोट्स, मूल्य निर्धारण और देश वितरण का प्रबंधन करता है। उदाहरण: supply(track: "beta", release_status: "completed")।
screengrab Google Play के लिए स्क्रीनशॉट बनाता है। यह इंस्ट्रुमेंटेशन टेस्ट चलाता है जो विभिन्न डिवाइसों और भाषाओं पर ऐप के स्क्रीनशॉट कैप्चर करते हैं। परिणामी स्क्रीनशॉट supply के माध्यम से अपलोड किए जाते हैं।
# Android ऐप बनाना और प्रकाशित करना
lane :deploy_android do
gradle(task: "clean bundleRelease")
supply(
track: "beta",
release_status: "completed",
version_code: 42
)
end
| एक्शन | उद्देश्य | मैनुअल समकक्ष |
|---|---|---|
gradle | Gradle द्वारा बिल्ड | ./gradlew assembleRelease |
supply | Google Play पर अपलोड | Google Play Console Web |
screengrab | स्क्रीनशॉट निर्माण | मैनुअल स्क्रीनशॉट + ImageMagick |
firebase_app_distribution | Firebase वितरण | Firebase Console Upload |
Fastlane CI/CD पाइपलाइन में काम करने के लिए डिज़ाइन किया गया है। यह नॉन-इंटरैक्टिव मोड, एनवायरनमेंट वेरिएबल और बिल्ड आर्टिफ़ैक्ट को सही ढंग से संभालता है। नीचे लोकप्रिय CI सिस्टम के साथ इंटीग्रेशन उदाहरण दिए गए हैं।
GitHub Actions में, Fastlane Ruby स्क्रिप्ट के रूप में चलता है। एक सामान्य वर्कफ़्लो: Ruby और Fastlane इंस्टॉल करें, कुंजियाँ कॉन्फ़िगर करें (secrets के माध्यम से सर्टिफिकेट, API टोकन), और lane चलाएँ। iOS के लिए macOS रनर की आवश्यकता है; Android ubuntu-latest पर काम करता है।
GitLab CI में, Fastlane का उपयोग .gitlab-ci.yml में समान सेटअप के साथ किया जाता है: निर्भरताएँ इंस्टॉल करें, fastlane चलाएँ और आर्टिफ़ैक्ट पास करें। GitLab CI macOS और Linux रनर्स का समर्थन करता है।
Bitrise — मोबाइल ऐप्लिकेशन के लिए एक विशेष CI/CD — में बिल्ट-इन Fastlane सपोर्ट है। Bitrise Workflow Fastlane Step को कॉल कर सकता है या fastlane के साथ कस्टम स्क्रिप्ट चला सकता है। Bitrise अपने Code Signing मैनेजर के माध्यम से सर्टिफिकेट संभालता है।
# सशर्त टेस्ट निष्पादन के साथ CI/CD के लिए Fastfile
lane :ci_test do
scan(scheme: "MyApp", code_coverage: true)
end
lane :ci_beta do
ensure_git_status_clean
version_bump_podspec(path: "MyApp.podspec")
match(type: "appstore", readonly: true)
gym(scheme: "MyApp", export_method: "app-store")
pilot(distribute_external: true)
end
CI/CD इंटीग्रेशन का एक महत्वपूर्ण पहलू सीक्रेट स्टोरेज है। Fastlane dotenv के माध्यम से .env फ़ाइल और एनवायरनमेंट वेरिएबल का उपयोग करता है। iOS के लिए महत्वपूर्ण वेरिएबल: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID। Android के लिए: SUPPLY_JSON_KEY_DATA — Google Play सेवा खाते की सामग्री।
Fastlane में 200 से अधिक बिल्ट-इन एक्शन शामिल हैं। नीचे उनके प्लेटफ़ॉर्म और उद्देश्य के साथ सबसे लोकप्रिय एक्शन का अवलोकन दिया गया है।
| एक्शन | प्लेटफ़ॉर्म | विवरण |
|---|---|---|
gym | iOS | ऑप्टिमाइज़्ड xcodebuild पैरामीटर के साथ IPA बनाएँ |
match | iOS | Git के माध्यम से सर्टिफिकेट और प्रोविज़निंग प्रोफ़ाइल सिंक करें |
pilot | iOS | TestFlight पर बिल्ड अपलोड करें और परीक्षक प्रबंधित करें |
deliver | iOS | मेटाडेटा के साथ App Store पर ऐप प्रकाशित करें |
scan | iOS | रिपोर्ट जनरेशन के साथ यूनिट और UI टेस्ट चलाएँ |
gradle | Android | Gradle कार्य चलाएँ: assemble, bundle, test |
supply | Android | Google Play Console पर APK और AAB अपलोड करें |
screengrab | Android | Google Play के लिए स्वचालित स्क्रीनशॉट |
firebase_app_distribution | Android | Firebase के माध्यम से बिल्ड वितरित करें |
snapshot | iOS | App Store के लिए सिम्युलेटर पर स्वचालित स्क्रीनशॉट |
increment_build_number | iOS | Xcode प्रोजेक्ट में बिल्ड नंबर ऑटो-इन्क्रीमेंट |
appcenter_upload | दोनों | App Center पर बिल्ड अपलोड करें |
आवश्यक एक्शन खोजने के लिए, fastlane action [नाम] कमांड का उपयोग करें, जो दस्तावेज़ीकरण, पैरामीटर और उदाहरण प्रदर्शित करता है। पूरी सूची स्थानीय रूप से उपलब्ध है: fastlane actions।
Fastlane प्लगइन का भी समर्थन करता है — सामुदायिक एक्सटेंशन जो नए एक्शन जोड़ते हैं। प्लगइन fastlane add_plugin [नाम] के माध्यम से इंस्टॉल किए जाते हैं और RubyGems रजिस्ट्री में उपलब्ध हैं। लोकप्रिय प्लगइन के उदाहरण: fastlane-plugin-versioning (वर्शन प्रबंधन), fastlane-plugin-sentry (Sentry में डीबग सिंबल अपलोड करना), fastlane-plugin-teams (Microsoft Teams में सूचनाएँ)।
अक्सर पूछे जाने वाले प्रश्न
Fastlane मोबाइल ऐप्लिकेशन के बिल्ड और प्रकाशन को ऑटोमेट करने का टूल है। यह मैनुअल ऑपरेशन — बिल्ड, कोड साइनिंग और स्टोर पर अपलोड — को एक कमांड से बदल देता है। Fastlane रिलीज़ समय को घंटों से मिनटों तक कम करता है और प्रकाशन के दौरान मानवीय त्रुटियों को समाप्त करता है।
हाँ। Fastlane दोनों प्लेटफ़ॉर्म को स्वतंत्र रूप से समर्थन करता है। iOS के लिए macOS की आवश्यकता है, जबकि Android के लिए केवल Linux पर्याप्त है। एक Fastfile में आप प्लेटफ़ॉर्म के अनुसार lanes को अलग कर सकते हैं: platform :ios do ... end और platform :android do ... end।
match एक्शन के माध्यम से। यह एन्क्रिप्टेड सर्टिफिकेट और प्रोविज़निंग प्रोफ़ाइल को Git रिपॉजिटरी में संग्रहीत करता है। प्रत्येक डिवेलपर रिपॉजिटरी क्लोन करता है, match MATCH_PASSWORD वेरिएबल के पासवर्ड का उपयोग करके फ़ाइलों को डिक्रिप्ट करता है और उन्हें कीचेन में इंस्टॉल करता है। यह "मेरी मशीन पर काम करता है" समस्या का समाधान करता है।
हाँ। Fastlane में APK और IPA को Firebase App Distribution पर अपलोड करने के लिए बिल्ट-इन firebase_app_distribution एक्शन है। परीक्षक जोड़ने के लिए firebase_app_distribution_add_testers भी उपलब्ध है। विकल्प App Center के लिए appcenter_upload एक्शन है।
Fastlane RubyGems के माध्यम से इंस्टॉल होता है: gem install fastlane -NV। iOS के लिए macOS और Xcode की आवश्यकता है; Android के लिए Linux या macOS और JDK व Android SDK की आवश्यकता है। GitHub Actions में Ruby और Fastlane इंस्टॉल करने के लिए ruby/setup-ruby एक्शन उपलब्ध है। एनवायरनमेंट वेरिएबल CI सिस्टम के secrets के माध्यम से पास किए जाते हैं।
Fastlane बिल्ड और प्रकाशन कार्यों को ऑटोमेट करने के लिए एक लाइब्रेरी और CLI है। Bitrise और Jenkins पूर्ण CI/CD प्लेटफ़ॉर्म हैं। Fastlane उनके अंदर काम करता है: Jenkins Fastlane को पाइपलाइन स्टेप के रूप में चलाता है, Bitrise Fastlane को एक समर्पित Step के माध्यम से कॉल करता है। Fastlane CI सिस्टम को प्रतिस्थापित नहीं करता — यह इसे मोबाइल-विशिष्ट कार्यक्षमता के साथ पूरक करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें