Pilot (Fastlane) হল TestFlight-এ iOS অ্যাপ বিল্ড পরিচালনার জন্য একটি টুল: বাইনারি ফাইল আপলোড করা, টেস্টার গ্রুপ পরিচালনা করা এবং বিল্ড অবস্থা ট্র্যাক করা। App Store Connect-এর মাধ্যমে ম্যানুয়াল আপলোডের বিপরীতে, Pilot TestFlight API-এর সাথে সমস্ত অপারেশন স্বয়ংক্রিয় করে। অফিসিয়াল Fastlane ডকুমেন্টেশন (2026) অনুযায়ী, Pilot টিমকে বিটা রিলিজ প্রকাশের সময় 10 মিনিট থেকে কয়েক সেকেন্ডে কমাতে দেয়।
মূল পয়েন্ট
Pilot (Fastlane) হল TestFlight-এর সাথে কাজ স্বয়ংক্রিয় করার জন্য Fastlane ইকোসিস্টেমের একটি উপাদান — মোবাইল অ্যাপ্লিকেশনের বিটা টেস্টিংয়ের জন্য Apple প্ল্যাটফর্ম। Pilot সমস্ত রুটিন অপারেশন পরিচালনা করে: বিল্ড আপলোড, টেস্টার যোগ করা, গ্রুপ পরিচালনা এবং বিল্ড অবস্থা ট্র্যাক করা।
Pilot ছাড়া, বিটা বিতরণ প্রক্রিয়া এইরকম দেখায়: ডেভেলপার ম্যানুয়ালি App Store Connect খোলে, অ্যাপ নির্বাচন করে, Xcode Organizer-এর মাধ্যমে IPA আপলোড করে, একটি টেস্টার গ্রুপ কনফিগার করে এবং আমন্ত্রণ পাঠায়। TestFlight হল App Store-এ অফিসিয়াল রিলিজের আগে টেস্টারদের কাছে অ্যাপ্লিকেশনের বিটা সংস্করণ বিতরণের জন্য Apple-এর পরিষেবা।
App Store Connect Help (2025) অনুযায়ী, বাহ্যিক টেস্টারদের প্রথম বিল্ড ইনস্টলেশনের আগে Beta App Review প্রক্রিয়ার মধ্য দিয়ে যেতে হবে — এতে 1 থেকে 48 ঘন্টা সময় লাগে। Pilot স্বয়ংক্রিয়ভাবে পর্যালোচনা অবস্থা ট্র্যাক করে এবং টিমকে জানায় যখন বিল্ড বাহ্যিক টেস্টার গ্রুপে বিতরণের জন্য প্রস্তুত হয়।
Pilot যেকোনো প্রকল্পে ব্যবহার করুন যেখানে টেস্টারদের নিয়মিত বিটা বিল্ড সরবরাহের প্রয়োজন হয় — এটি iOS CI/CD পাইপলাইনের জন্য একটি মানক টুল, যা একটি অনুমানযোগ্য বিতরণ প্রক্রিয়া নিশ্চিত করে।
Pilot-এর কার্যকারিতা বিটা বিল্ড পরিচালনার সম্পূর্ণ জীবনচক্র কভার করে: বাইনারি ফাইল আপলোড করা থেকে টেস্টারদের নতুন সংস্করণ সম্পর্কে জানানো পর্যন্ত। প্রতিটি কার্য একটি পৃথক কমান্ড হিসাবে প্রয়োগ করা হয় যার অনুমানযোগ্য আচরণ এবং প্রতিটি ধাপের বিস্তারিত লগিং রয়েছে।
fastlane pilot upload কমান্ড IPA ফাইলটি App Store Connect-এ আপলোড করে এবং TestFlight-এ একটি নতুন বিল্ড তৈরি করে। Pilot স্বয়ংক্রিয়ভাবে বাইনারি ফাইলের বৈধতা, সংস্করণ সামঞ্জস্য এবং অ্যাপ শনাক্তকারী পরীক্ষা করে। App Store Connect হল Apple-এর প্ল্যাটফর্ম অ্যাপ্লিকেশন পরিচালনার জন্য, যার মধ্যে বিল্ড আপলোড, মেটাডেটা, বিশ্লেষণ এবং বিক্রয় রিপোর্ট অন্তর্ভুক্ত।
আপলোডের পরে, Pilot Apple-এর বাইনারি ফাইল প্রক্রিয়াকরণের জন্য অপেক্ষা করে — বিল্ড আকারের উপর নির্ভর করে প্রক্রিয়াটিতে 5 থেকে 30 মিনিট সময় লাগে। অপেক্ষা করার সময়, Pilot বর্তমান প্রক্রিয়াকরণ অবস্থা সম্পর্কে তথ্য সহ একটি প্রোগ্রেস বার প্রদর্শন করে: Processing, Validating, বা Ready। সফল প্রক্রিয়াকরণের পরে, বিল্ড টেস্টার গ্রুপে নিয়োগের জন্য উপলব্ধ হয়।
Pilot অভ্যন্তরীণ এবং বাহ্যিক উভয় টেস্টার গ্রুপ পরিচালনা সমর্থন করে। অভ্যন্তরীণ টেস্টার হল আপনার Apple Developer টিমের সদস্য যারা Beta App Review ছাড়াই তাত্ক্ষণিকভাবে বিল্ডে অ্যাক্সেস পায়। বাহ্যিক টেস্টার হল ইমেলের মাধ্যমে আমন্ত্রিত ব্যবহারকারী, যাদের প্রথম ইনস্টলেশনের আগে পর্যালোচনা অনুমোদনের প্রয়োজন হয়।
fastlane pilot add কমান্ড ইমেল বা Apple ID-র মাধ্যমে একটি গ্রুপে নতুন টেস্টার যোগ করে। Pilot স্বয়ংক্রিয়ভাবে আমন্ত্রণ পাঠায় এবং পরীক্ষা করে যে টেস্টার আমন্ত্রণ গ্রহণ করেছে কিনা। বাল্ক যোগ করার জন্য, আপনি --testers_file_path প্যারামিটার ব্যবহার করে একটি ফাইল থেকে ইমেলের তালিকা পাস করতে পারেন, যা শত শত অংশগ্রহণকারীর টেস্টার গ্রুপ শুরু করার সময় সুবিধাজনক।
# TestFlight-এ একটি নতুন বিল্ড আপলোড করা
fastlane pilot upload --ipa "build/MyApp.ipa"
# একটি গ্রুপে টেস্টার যোগ করা
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
Pilot কনফিগারেশন-এর জন্য আলাদা কনফিগ ফাইলের প্রয়োজন নেই — সেটিংস Appfile (সাধারণ Fastlane ফাইল) বা কমান্ড-লাইন আর্গুমেন্টের মাধ্যমে পাস করা হয়। প্রধান প্যারামিটারগুলির মধ্যে অ্যাপের apple_id, app_identifier, team_id এবং App Store Connect API-তে অ্যাক্সেসের জন্য ক্রেডেনশিয়াল অন্তর্ভুক্ত।
প্রমাণীকরণের জন্য, Pilot App Store Connect API Key (প্রস্তাবিত পদ্ধতি) বা Apple ID টু-ফ্যাক্টর প্রমাণীকরণ ব্যবহার করে। App Store Connect API Key হল একটি অ্যাক্সেস কী যা App Store Connect-এ উৎপন্ন হয় এবং ইন্টারেক্টিভভাবে পাসওয়ার্ড এবং নিশ্চিতকরণ কোড প্রবেশ না করেই API-এর সাথে যোগাযোগ করতে দেয়।
# Appfile — Fastlane সাধারণ কনফিগারেশন
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Pilot-এর জন্য এনভায়রনমেন্ট ভেরিয়েবল
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
app_identifier প্যারামিটার অ্যাপের Bundle Identifier নির্ধারণ করে, যা Xcode প্রকল্প এবং App Store Connect-এ নির্দিষ্ট শনাক্তকারীর সাথে মিলতে হবে। apple_id প্যারামিটার টু-ফ্যাক্টর স্কিমে প্রমাণীকরণের জন্য ব্যবহৃত হয়, এবং team_id — উন্নয়ন টিম নির্বাচনের জন্য যদি অ্যাকাউন্ট একাধিক Apple Developer টিমের সাথে সংযুক্ত থাকে।
Pilot কাজ করার জন্য, আপনাকে CI/CD পরিবেশে App Store Connect API Key কনফিগার করতে হবে। কীটি App Store Connect → Users and Access → Keys → Generate API Key-তে উৎপন্ন হয়। .p8 ফাইলটি CI সিস্টেম সিক্রেটে সংরক্ষণ করুন এবং APP_STORE_CONNECT_API_KEY_PATH এনভায়রনমেন্ট ভেরিয়েবল বা Pilot কমান্ডে --api_key_path প্যারামিটারের মাধ্যমে পথ নির্দিষ্ট করুন।
Pilot কমান্ডের সেট সমস্ত TestFlight দৃশ্যকল্প কভার করে: বিল্ড আপলোড, টেস্টার পরিচালনা, অবস্থা দেখা এবং মেটাডেটা ট্র্যাক করা। প্রতিটি কমান্ড CI/CD স্ক্রিপ্টে আরও প্রক্রিয়াকরণের জন্য কাঠামোবদ্ধ JSON আউটপুট ফেরত দেয়।
fastlane pilot builds কমান্ড সংস্করণ, প্রক্রিয়াকরণ অবস্থা এবং আপলোড তারিখ সহ সমস্ত অ্যাপ বিল্ডের একটি তালিকা প্রদর্শন করে। বিল্ড অবস্থা নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: Processing — Apple বাইনারি ফাইল প্রক্রিয়া করছে, Ready — বিল্ড বিতরণের জন্য উপলব্ধ, Rejected — যাচাইকরণ ত্রুটির কারণে বিল্ড প্রত্যাখ্যান করা হয়েছে।
# TestFlight-এ সমস্ত বিল্ডের তালিকা দেখা
fastlane pilot builds
# একটি টেস্টার গ্রুপে বিল্ড নিয়োগ করা
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# একটি নির্দিষ্ট বিল্ড সম্পর্কে তথ্য দেখা
fastlane pilot build_info --build_number 42
fastlane pilot distribute কমান্ড নির্দিষ্ট টেস্টার গ্রুপে বিল্ড নিয়োগ করে এবং বিজ্ঞপ্তি পাঠায়। --notify প্যারামিটার একটি নতুন উপলব্ধ বিল্ড সম্পর্কে টেস্টারদের ইমেল বিজ্ঞপ্তি পাঠানো সক্ষম করে — এটি পরীক্ষার প্রক্রিয়ায় বিটা টেস্টারদের জড়িত করতে এবং প্রতিক্রিয়া ত্বরান্বিত করার জন্য গুরুত্বপূর্ণ।
বিল্ড মেটাডেটা পরিচালনা করতে, --changelog প্যারামিটার ব্যবহার করুন, যা নতুন সংস্করণে পরিবর্তনের বিবরণ পাঠ্য সেট করে। এই পাঠ্যটি TestFlight অ্যাপে পরীক্ষার আমন্ত্রণে টেস্টারদের দেখানো হয়। প্রতিটি বিল্ডে মূল পরিবর্তন, সংশোধিত বাগ এবং নতুন বৈশিষ্ট্য নির্দিষ্ট করার পরামর্শ দেওয়া হয়।
| Pilot কমান্ড | উদ্দেশ্য | মূল প্যারামিটার |
|---|---|---|
| pilot upload | TestFlight-এ IPA আপলোড | --ipa, --skip_waiting |
| pilot distribute | গ্রুপে বিল্ড নিয়োগ | --build_number, --groups |
| pilot add | টেস্টার যোগ করুন | --email, --groups |
| pilot builds | সমস্ত বিল্ডের তালিকা | --app_identifier |
| pilot build_info | বিল্ড তথ্য | --build_number |
CI/CD-তে Pilot হল iOS অ্যাপ বিতরণ পাইপলাইনের চূড়ান্ত ধাপ। Gym IPA তৈরি করার এবং পরীক্ষাগুলি পাস করার পরে, Pilot বিল্ডটি TestFlight-এ আপলোড করে এবং টেস্টার গ্রুপে বিতরণ করে। এটি QA টিমকে রিপোজিটরিতে কমিটের কয়েক মিনিটের মধ্যে নতুন অ্যাপ সংস্করণ পেতে দেয়।
একটি সাধারণ iOS CI/CD পাইপলাইনে ক্রম অন্তর্ভুক্ত: Match (সার্টিফিকেট), Gym (IPA বিল্ড), Pilot (TestFlight-এ আপলোড এবং বিতরণ)। প্রতিটি ধাপ পূর্ববর্তীটির উপর নির্ভর করে, নিশ্চিত করে যে শুধুমাত্র বৈধ এবং স্বাক্ষরিত বিল্ড টেস্টারদের কাছে পৌঁছে দেওয়া হয়।
# Fastfile-এ সম্পূর্ণ পাইপলাইন
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
আপলোড কমান্ডে skip_waiting প্যারামিটার একটি CI কাজের মধ্যে Apple-এর বাইনারি ফাইল প্রক্রিয়াকরণ সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করার অনুমতি দেয় — Pilot আপলোড অনুরোধ পাঠায়, বিল্ড শনাক্তকারী গ্রহণ করে এবং সমাপ্ত করে। এটি পাইপলাইনকে গতি দেয় কারণ প্রক্রিয়াকরণে 30 মিনিট পর্যন্ত সময় লাগতে পারে, যা CI রানারে অপেক্ষায় ব্যয় হয় না।
CI-তে Pilot সঠিকভাবে কাজ করার জন্য, আপনাকে App Store Connect API কী কনফিগার করতে হবে। .p8 কী ফাইলটি CI সিস্টেমের সুরক্ষিত স্টোরেজে সংরক্ষণ করুন এবং APP_STORE_CONNECT_API_KEY_PATH এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে পথ পাস করুন। Pilot এই কীটি টু-ফ্যাক্টর প্রমাণীকরণ ছাড়াই API-তে প্রমাণীকরণের জন্য ব্যবহার করে, যা স্বয়ংক্রিয় দৃশ্যকল্পের জন্য গুরুত্বপূর্ণ।
Pilot ব্যবহার করার সময়, ডেভেলপাররা প্রায়শই প্রমাণীকরণ ত্রুটি, ভুল অ্যাপ কনফিগারেশন এবং Apple-এর পক্ষ থেকে বাইনারি ফাইল প্রক্রিয়াকরণের সমস্যার সম্মুখীন হন। Pilot সমস্যা নির্ণয় pilot builds কমান্ডের মাধ্যমে App Store Connect-এ বিল্ড অবস্থা পরীক্ষা করে শুরু হয়।
ত্রুটি “Your app is not available for testing in TestFlight” ঘটে যখন অ্যাপটি App Store Connect-এ পরীক্ষার জন্য কনফিগার করা না থাকে। সমাধান: App Store Connect-এ TestFlight বিভাগ খুলুন, অ্যাপের জন্য পরীক্ষা সক্রিয় করুন এবং নিশ্চিত করুন যে Export Compliance আপনার এনক্রিপশন প্রকারের জন্য সঠিকভাবে পূরণ করা হয়েছে।
ত্রুটি “Missing iOS Distribution signing identity” Keychain-এ Distribution সার্টিফিকেটের অনুপস্থিতি নির্দেশ করে। সমাধান: Pilot কল করার আগে সঠিক সার্টিফিকেট ডাউনলোড করতে Match চালান। একটি Distribution সার্টিফিকেট Development-এর থেকে আলাদা — এটি TestFlight বা App Store-এর মাধ্যমে বিতরণের উদ্দেশ্যে তৈরি বিল্ডে স্বাক্ষর করতে ব্যবহৃত হয়।
“Invalid Provisioning Profile” ত্রুটির সাথে, বিল্ডটিতে নির্বাচিত এক্সপোর্ট পদ্ধতির জন্য ভুল প্রোফাইল থাকে। সমাধান: পরীক্ষা করুন যে Gym Match-এ প্রোফাইল প্রকারের সাথে মেলে সঠিক export_method ব্যবহার করে। যদি বিল্ডটি development প্রোফাইল দিয়ে তৈরি করা হয়, তাহলে Pilot এটি TestFlight-এ আপলোড করতে পারবে না — একটি app-store বা ad-hoc প্রোফাইল প্রয়োজন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Pilot দুই ধরনের সমর্থন করে: অভ্যন্তরীণ টেস্টার (Internal Testers) — Apple Developer টিমের সদস্য যারা তাত্ক্ষণিকভাবে অ্যাক্সেস পায়, এবং বাহ্যিক টেস্টার (External Testers) — ইমেলের মাধ্যমে আমন্ত্রিত ব্যবহারকারী যাদের ইনস্টলেশনের আগে Beta App Review-এর মধ্য দিয়ে যেতে হয়।
TestFlight-এর প্রতিটি আপলোডের জন্য একটি অনন্য বিল্ড নম্বর প্রয়োজন। Pilot স্বয়ংক্রিয়ভাবে ডুপ্লিকেট পরীক্ষা করে এবং এমন নম্বরের বিল্ড আপলোড প্রত্যাখ্যান করে যা ইতিমধ্যে App Store Connect-এ বিদ্যমান। নতুন আপলোডের জন্য, বিল্ড করার আগে Xcode প্রকল্পে build number বাড়ান।
না, Pilot Fastlane-এর একটি উপাদান এবং আলাদাভাবে ইনস্টল করা হয় না। তবে, আপনি অন্যান্য Fastlane টুল ছাড়াই শুধুমাত্র Pilot কল করতে পারেন। এটি করতে, gem install fastlane-এর মাধ্যমে Fastlane ইনস্টল করুন এবং match এবং gym উপেক্ষা করে শুধুমাত্র pilot কমান্ড ব্যবহার করুন।
বিল্ড নম্বর উল্লেখ করে fastlane pilot reject কমান্ড ব্যবহার করুন। Pilot নির্দিষ্ট বিল্ডে টেস্টার অ্যাক্সেস অক্ষম করে কিন্তু এটি App Store Connect থেকে মুছে ফেলে না। প্রত্যাখ্যাত বিল্ড রিলিজ অডিটের জন্য Rejected অবস্থা সহ TestFlight ইতিহাসে থাকে।
pilot distribute কমান্ডে --notify প্যারামিটার ব্যবহার করুন। Pilot নির্দিষ্ট গ্রুপের সমস্ত টেস্টারকে TestFlight-এর মাধ্যমে নতুন সংস্করণ ইনস্টল করার লিঙ্ক সহ ইমেল বিজ্ঞপ্তি পাঠায়। এই ফ্ল্যাগ ছাড়া, টেস্টাররা শুধুমাত্র TestFlight অ্যাপ খোলার সময় নতুন বিল্ড দেখতে পাবে।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন