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। CI/CD-এর জন্য API কী বেশি সুবিধাজনক কারণ এতে ইন্টারঅ্যাকটিভ পাসওয়ার্ড প্রবেশের প্রয়োজন হয় না।
| অ্যাকশন | উদ্দেশ্য | ম্যানুয়াল সমতুল্য |
|---|---|---|
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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন