আপনি ফাস্টলেন (fastlane) ব্যবহার করে পরীক্ষকদের কাছে বিল্ড বিতরণ করতে পারেন। এটি একটি ওপেন সোর্স প্ল্যাটফর্ম যা iOS এবং Android অ্যাপ তৈরি ও রিলিজ করার প্রক্রিয়াকে স্বয়ংক্রিয় করে। এটি একটি Fastfile -এ সংজ্ঞায়িত সহজ নির্দেশাবলী অনুসরণ করে। ফাস্টলেন এবং আপনার Fastfile সেট আপ করার পরে, আপনি আপনার ফাস্টলেন কনফিগারেশনের সাথে App Distribution একীভূত করতে পারেন।
ধাপ ১. ফাস্টলেন সেট আপ করুন
আপনার fastlane কনফিগারেশনে App Distribution যোগ করতে, আপনার iOS প্রজেক্টের রুট থেকে নিম্নলিখিত কমান্ডটি চালান:
fastlane add_plugin firebase_app_distribution
যদি কমান্ডটি আপনাকে কোনো অপশন দেখায়, তাহলে
Option 3: RubyGems.orgনির্বাচন করুন।
ধাপ ২. ফায়ারবেস দিয়ে প্রমাণীকরণ করুন।
fastlane প্লাগইন ব্যবহার করার আগে, আপনাকে অবশ্যই নিম্নলিখিত উপায়গুলির মধ্যে একটি ব্যবহার করে আপনার Firebase প্রজেক্টের সাথে প্রমাণীকরণ করতে হবে। ডিফল্টরূপে, অন্য কোনো প্রমাণীকরণ পদ্ধতি ব্যবহার না করা হলে fastlane প্লাগইনটি Firebase CLI থেকে ক্রেডেনশিয়াল খুঁজে নেয়।
একটি সার্ভিস অ্যাকাউন্টের মাধ্যমে প্রমাণীকরণ আপনাকে আপনার কন্টিনিউয়াস ইন্টিগ্রেশন (CI) সিস্টেমের সাথে প্লাগইনটি নমনীয়ভাবে ব্যবহার করার সুযোগ দেয়। সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান করার দুটি উপায় রয়েছে:
- আপনার সার্ভিস অ্যাকাউন্ট কী ফাইলটি
firebase_app_distributionঅ্যাকশনে পাস করুন। আপনার বিল্ড এনভায়রনমেন্টে যদি আগে থেকেই সার্ভিস অ্যাকাউন্ট কী ফাইলটি থাকে, তবে এই পদ্ধতিটি আপনার কাছে সুবিধাজনক মনে হতে পারে। - আপনার সার্ভিস অ্যাকাউন্ট কী ফাইলের দিকে নির্দেশ করার জন্য
GOOGLE_APPLICATION_CREDENTIALSএনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন। যদি আপনার অন্য কোনো গুগল পরিষেবার (যেমন, Google Cloud ) জন্য আগে থেকেই অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) কনফিগার করা থাকে, তাহলে আপনি এই পদ্ধতিটি পছন্দ করতে পারেন।
- Google Cloud কনসোলে, আপনার প্রজেক্টটি নির্বাচন করুন এবং একটি নতুন সার্ভিস অ্যাকাউন্ট তৈরি করুন।
- Firebase App Distribution Admin রোলটি যুক্ত করুন।
- একটি প্রাইভেট json কী তৈরি করুন এবং কী-টি আপনার বিল্ড এনভায়রনমেন্টের নাগালের মধ্যে থাকা কোনো স্থানে সরিয়ে নিন। এই ফাইলটি অবশ্যই নিরাপদ কোনো জায়গায় রাখবেন , কারণ এটি আপনার Firebase প্রোজেক্টের App Distribution অ্যাডমিনিস্ট্রেটর অ্যাক্সেস প্রদান করে।
- আপনি যদি ২০ সেপ্টেম্বর, ২০১৯-এর পরে আপনার অ্যাপ তৈরি করে থাকেন, তাহলে এই ধাপটি এড়িয়ে যান: Google APIs কনসোলে, Firebase App Distribution API সক্রিয় করুন। অনুরোধ করা হলে, আপনার Firebase প্রজেক্টের নামের সাথে একই নামের প্রজেক্টটি নির্বাচন করুন।
আপনার পরিষেবা অ্যাকাউন্টের পরিচয়পত্র প্রদান করুন বা খুঁজে বের করুন:
- আপনার লেনের
firebase_app_distributionঅ্যাকশনে আপনার সার্ভিস অ্যাকাউন্ট কী পাস করতে,service_credentials_fileপ্যারামিটারটি আপনার প্রাইভেট কী JSON ফাইলের পাথ দিয়ে সেট করুন। ADC-তে আপনার ক্রেডেনশিয়াল খুঁজে পেতে,
GOOGLE_APPLICATION_CREDENTIALSএনভায়রনমেন্ট ভেরিয়েবলটিকে প্রাইভেট কী JSON ফাইলের পাথে সেট করুন। উদাহরণস্বরূপ:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
ADC-এর সাথে প্রমাণীকরণ সম্পর্কে আরও তথ্যের জন্য, 'আপনার অ্যাপ্লিকেশনে ক্রেডেনশিয়াল প্রদান' পড়ুন।
- আপনার লেনের
আপনার প্রজেক্ট প্রমাণীকরণের নির্দেশাবলীর জন্য Firebase CLI দিয়ে লগ ইন করুন” দেখুন।
ধাপ ৩. আপনার ফাস্টফাইল সেট আপ করুন এবং আপনার অ্যাপটি বিতরণ করুন।
-
./fastlane/Fastfileলেনে একটিfirebase_app_distributionব্লক যোগ করুন। ডিস্ট্রিবিউশনটি কনফিগার করতে নিম্নলিখিত প্যারামিটারগুলো ব্যবহার করুন:firebase_app_distribution প্যারামিটার appশুধুমাত্র তখনই প্রয়োজন হবে যদি আপনার অ্যাপে কোনো Firebase কনফিগারেশন ফাইল (
GoogleService-Info.plist) না থাকে : আপনার অ্যাপের Firebase অ্যাপ আইডি। আপনি Firebase কনসোলের জেনারেল সেটিংস পেজে অ্যাপ আইডিটি খুঁজে পাবেন।app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathআর্কাইভ করা প্রোডাক্ট পাথের সাপেক্ষে আপনার
GoogleService-Info.plistফাইলের পাথ। ডিফল্টরূপে এটিGoogleService-Info.plistএ সেট করা থাকে।appপ্যারামিটারটি নির্দিষ্ট করা না থাকলে, আপনার অ্যাপের ফায়ারবেস অ্যাপ আইডি পেতে এই ফাইলটি ব্যবহৃত হয়।firebase_cli_tokenএকটি রিফ্রেশ টোকেন যা ফায়ারবেস সিএলআই Firebase CLI) দিয়ে আপনার সিআই (CI) এনভায়রনমেন্ট প্রমাণীকরণের সময় প্রিন্ট করা হয় (আরও তথ্যের জন্য "সিআই সিস্টেমের সাথে সিএলআই ব্যবহার করুন" পড়ুন)।
service_credentials_fileআপনার গুগল সার্ভিস অ্যাকাউন্ট json ফাইলের পাথ। সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে কীভাবে প্রমাণীকরণ করতে হয়, তা জানতে উপরে দেখুন।
ipa_pathapk_path(অপ্রচলিত)-এর পরিবর্তে ব্যবহৃত হয়। আপনি যে IPA ফাইলটি আপলোড করতে চান তার অ্যাবসোলিউট পাথ। যদি এটি নির্দিষ্ট না করা হয়, fastlane ফাইলটি যে লেনে তৈরি হয়েছে সেখান থেকে এর অবস্থান নির্ধারণ করে।release_notes
release_notes_fileএই বিল্ডের রিলিজ নোট।
আপনি সরাসরি রিলিজ নোট উল্লেখ করতে পারেন:
release_notes: "Text of release notes"
অথবা, একটি প্লেইন টেক্সট ফাইলের পাথ নির্দিষ্ট করুন:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_fileআপনি যে পরীক্ষকদের আমন্ত্রণ জানাতে চান, তাদের ইমেল ঠিকানাগুলো।
আপনি পরীক্ষকদেরকে কমা দিয়ে আলাদা করা ইমেল ঠিকানার তালিকা হিসেবে নির্দিষ্ট করতে পারেন:
testers: "ali@example.com, bri@example.com, cal@example.com"
অথবা, আপনি কমা দিয়ে আলাদা করা ইমেল ঠিকানার তালিকা সম্বলিত একটি সাধারণ টেক্সট ফাইলের পাথ নির্দিষ্ট করে দিতে পারেন:
testers_file: "/path/to/testers.txt"
groups
groups_fileআপনি যে পরীক্ষক গোষ্ঠীগুলিকে আমন্ত্রণ জানাতে চান ( পরীক্ষক পরিচালনা দেখুন)। গোষ্ঠীগুলি নির্দিষ্ট করা হয় ব্যবহার করে
গ্রুপ উপনাম যা আপনি Firebase কনসোলে খুঁজে দেখতে পারেন।আপনি গ্রুপগুলোকে কমা দিয়ে আলাদা করা তালিকা হিসেবে নির্দিষ্ট করতে পারেন:
groups: "qa-team, trusted-testers"
অথবা, আপনি একটি সাধারণ টেক্সট ফাইলের পাথ নির্দিষ্ট করে দিতে পারেন, যেখানে কমা দিয়ে আলাদা করা গ্রুপ নামগুলোর একটি তালিকা থাকবে:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_fileনিম্নলিখিত বিতরণ প্রকারগুলি স্বয়ংক্রিয় পরীক্ষক বিটা বৈশিষ্ট্যের অংশ।
যে টেস্ট ডিভাইসগুলিতে আপনি বিল্ডগুলি বিতরণ করতে চান ( স্বয়ংক্রিয় পরীক্ষাগুলি দেখুন)।
আপনি সেমিকোলন দ্বারা পৃথক করা পরীক্ষার ডিভাইসগুলির একটি তালিকা হিসাবে পরীক্ষার ডিভাইসগুলি নির্দিষ্ট করতে পারেন:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
অথবা, আপনি একটি সাধারণ টেক্সট ফাইলের পাথ নির্দিষ্ট করে দিতে পারেন, যেখানে সেমিকোলন দ্বারা পৃথক করা টেস্ট ডিভাইসগুলোর একটি তালিকা থাকবে:
test_devices_file: "/path/to/test-devices.txt"
test_usernameস্বয়ংক্রিয় পরীক্ষা চলাকালীন স্বয়ংক্রিয় লগইনের জন্য ব্যবহৃত ইউজারনেম।
test_password
test_password_fileস্বয়ংক্রিয় পরীক্ষা চলাকালীন ব্যবহারের জন্য স্বয়ংক্রিয় লগইনের পাসওয়ার্ড।
অথবা, আপনি পাসওয়ার্ড সম্বলিত একটি প্লেইন টেক্সট ফাইলের পাথ নির্দিষ্ট করে দিতে পারেন:
test_password_file: "/path/to/test-password.txt"
test_username_resourceস্বয়ংক্রিয় পরীক্ষা চলাকালীন ব্যবহারের জন্য স্বয়ংক্রিয় লগইনের ইউজারনেম ফিল্ডের রিসোর্স নেম।
test_password_resourceস্বয়ংক্রিয় পরীক্ষা চলাকালীন ব্যবহারের জন্য স্বয়ংক্রিয় লগইনের পাসওয়ার্ড ফিল্ডের রিসোর্স নেম।
test_non_blockingস্বয়ংক্রিয় পরীক্ষাগুলো অ্যাসিঙ্ক্রোনাসভাবে চালান। স্বয়ংক্রিয় পরীক্ষার ফলাফল জানতে ফায়ারবেস কনসোল দেখুন।
debugএকটি বুলিয়ান ফ্ল্যাগ। বিস্তারিত ডিবাগ আউটপুট প্রিন্ট করার জন্য আপনি এটিকে '
trueসেট করতে পারেন।
উদাহরণস্বরূপ:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
পরীক্ষকদের কাছে বিল্ডটি উপলব্ধ করতে, আপনার লেনটি চালান:
fastlane <lane>
অ্যাকশনটির রিটার্ন ভ্যালু হলো একটি হ্যাশ, যা আপলোড করা রিলিজটিকে উপস্থাপন করে। এই হ্যাশটি lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] ব্যবহার করেও পাওয়া যায়। এই হ্যাশে উপলব্ধ ফিল্ডগুলো সম্পর্কে আরও তথ্যের জন্য, REST API ডকুমেন্টেশন দেখুন।
রিলিজ আপলোড করার পর ফাস্টলেন প্লাগইনটি নিম্নলিখিত লিঙ্কগুলি আউটপুট করে। এই লিঙ্কগুলি আপনাকে বাইনারিগুলি পরিচালনা করতে এবং পরীক্ষক ও অন্যান্য ডেভেলপারদের কাছে সঠিক রিলিজটি পৌঁছেছে কিনা তা নিশ্চিত করতে সাহায্য করে:
- Firebase কনসোলের একটি লিঙ্ক, যেখানে একটিমাত্র রিলিজ প্রদর্শিত হয়। আপনি এই লিঙ্কটি আপনার প্রতিষ্ঠানের অন্যান্য ডেভেলপারদের সাথে শেয়ার করতে পারেন।
- টেস্টার এক্সপেরিয়েন্সে (আইওএস ওয়েব ক্লিপ) রিলিজটির একটি লিঙ্ক থাকে, যা টেস্টারদের রিলিজ নোট দেখতে এবং তাদের ডিভাইসে অ্যাপটি ইনস্টল করতে দেয়। লিঙ্কটি ব্যবহার করার জন্য টেস্টারের রিলিজটিতে অ্যাক্সেস থাকা প্রয়োজন।
- একটি স্বাক্ষরিত লিঙ্ক যা সরাসরি অ্যাপের বাইনারি (IPA ফাইল) ডাউনলোড ও ইনস্টল করে। লিঙ্কটির মেয়াদ এক ঘণ্টা পর শেষ হয়ে যায়।
আপনার বিল্ড ডিস্ট্রিবিউট করার পর, এটি Firebase কনসোলের App Distribution ড্যাশবোর্ডে ১৫০ দিনের জন্য উপলব্ধ থাকে। বিল্ডটির মেয়াদ শেষ হওয়ার ৩০ দিন আগে, কনসোলে এবং পরীক্ষকের টেস্ট ডিভাইসে থাকা বিল্ডের তালিকায় একটি মেয়াদোত্তীর্ণ হওয়ার বিজ্ঞপ্তি প্রদর্শিত হয়।
যেসব পরীক্ষককে আগে অ্যাপটি পরীক্ষা করার জন্য আমন্ত্রণ জানানো হয়নি, তারা কাজ শুরু করার জন্য ইমেল আমন্ত্রণ পান। বিদ্যমান পরীক্ষকরা একটি নতুন বিল্ড পরীক্ষার জন্য প্রস্তুত হলে ইমেল বিজ্ঞপ্তি পান। টেস্ট অ্যাপটি কীভাবে ইনস্টল করতে হয় তা জানতে, ‘একজন পরীক্ষক হিসেবে সেট আপ করুন’ দেখুন। প্রতিটি পরীক্ষক আমন্ত্রণ গ্রহণ করেছেন কিনা এবং Firebase কনসোলে অ্যাপটি ডাউনলোড করেছেন কিনা তা নির্ধারণ করতে আপনি তাদের স্ট্যাটাস পর্যবেক্ষণ করতে পারেন।
(ঐচ্ছিক) অ্যাপ ডিস্ট্রিবিউশনে প্রতিবার নতুন রিলিজ তৈরি করার সময় আপনার বিল্ড নম্বর স্বয়ংক্রিয়ভাবে বাড়ানোর জন্য, আপনি ` firebase_app_distribution_get_latest_release অ্যাকশন এবং ` increment_build_number অ্যাকশন ব্যবহার করতে পারেন। নিচের কোডটিতে আপনার বিল্ড নম্বর স্বয়ংক্রিয়ভাবে বাড়ানোর একটি উদাহরণ দেওয়া হলো:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
এই ফাস্টলেন প্লাগইন ফিচারটি সম্পর্কে আরও জানতে, আপনার অ্যাপের সর্বশেষ রিলিজ সম্পর্কে তথ্য জানুন দেখুন।
ধাপ ৪ (ঐচ্ছিক)। ডিস্ট্রিবিউশনের জন্য পরীক্ষকদের পরিচালনা করুন।
আপনি আপনার Fastfile ফাইল ব্যবহার করে অথবা সরাসরি fastlane অ্যাকশন চালিয়ে আপনার প্রজেক্ট বা গ্রুপ থেকে টেস্টার যোগ বা অপসারণ করতে পারেন। সরাসরি অ্যাকশন চালালে আপনার Fastfile এ সেট করা মানগুলো ওভাররাইড হয়ে যায়।
একবার আপনার ফায়ারবেস প্রজেক্টে কোনো পরীক্ষককে যুক্ত করা হলে, আপনি তাদেরকে স্বতন্ত্র রিলিজগুলোতে অন্তর্ভুক্ত করতে পারেন। যেসব পরীক্ষককে আপনার ফায়ারবেস প্রজেক্ট থেকে সরিয়ে দেওয়া হয়, তারা আপনার প্রজেক্টের রিলিজগুলোতে আর অ্যাক্সেস পান না, তবে তারা একটি নির্দিষ্ট সময়ের জন্য আপনার রিলিজগুলোতে অ্যাক্সেস ধরে রাখতে পারেন।
আপনার পরীক্ষকের সংখ্যা বেশি হলে দল ব্যবহার করার কথা বিবেচনা করা উচিত।
Fastfile ব্যবহার করুন
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testersফাস্টলেন অ্যাকশন চালান
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"fastlane run firebase_app_distribution_delete_group alias:"qa-team"
আপনি --emails এর পরিবর্তে --file="/path/to/testers.txt ব্যবহার করেও পরীক্ষকদের নির্দিষ্ট করতে পারেন।
firebase_app_distribution_add_testers এবং firebase_app_distribution_remove_testers টাস্কগুলো নিম্নলিখিত আর্গুমেন্টগুলোও গ্রহণ করে:
-
project_name: আপনার Firebase প্রজেক্ট নম্বর। -
group_alias(ঐচ্ছিক): এটি নির্দিষ্ট করা হলে, পরীক্ষকদের নির্দিষ্ট গ্রুপে যুক্ত (বা সেখান থেকে অপসারিত) করা হয়। -
service_credentials_file: আপনার গুগল পরিষেবা ক্রেডেনশিয়াল ফাইলের পাথ। -
firebase_cli_token: Firebase সিএলআই-এর জন্য প্রমাণীকরণ টোকেন।
` service_credentials_file এবং firebase_cli_token হলো সেই একই আর্গুমেন্ট যা `upload` অ্যাকশনে ব্যবহৃত হয়।
ধাপ ৫ (ঐচ্ছিক)। আপনার অ্যাপের সর্বশেষ রিলিজ সম্পর্কে তথ্য জানুন।
আপনি অ্যাপ ডিস্ট্রিবিউশন থেকে আপনার অ্যাপের সর্বশেষ রিলিজের তথ্য, যেমন অ্যাপ ভার্সনের তথ্য, রিলিজ নোট এবং তৈরির সময়, সংগ্রহ করতে firebase_app_distribution_get_latest_release অ্যাকশনটি ব্যবহার করতে পারেন। এর ব্যবহারিক ক্ষেত্রগুলোর মধ্যে রয়েছে স্বয়ংক্রিয়ভাবে ভার্সন বৃদ্ধি করা এবং পূর্ববর্তী রিলিজ থেকে রিলিজ নোটগুলো স্থানান্তর করা।
অ্যাকশনটির রিটার্ন ভ্যালু হলো একটি হ্যাশ, যা সর্বশেষ রিলিজকে নির্দেশ করে। এই হ্যাশটি lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] ব্যবহার করেও পাওয়া যায়। এই হ্যাশে উপলব্ধ ফিল্ডগুলো সম্পর্কে আরও তথ্যের জন্য, REST API ডকুমেন্টেশন দেখুন।
প্যারামিটার
| firebase_app_distribution_get_latest_release প্যারামিটার | |
|---|---|
app | শুধুমাত্র তখনই প্রয়োজন হবে যদি আপনার অ্যাপে কোনো Firebase কনফিগারেশন ফাইল ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path | আর্কাইভ করা প্রোডাক্ট পাথের সাপেক্ষে আপনার |
firebase_cli_token | একটি রিফ্রেশ টোকেন যা ফায়ারবেস সিএলআই Firebase CLI) দিয়ে আপনার সিআই (CI) এনভায়রনমেন্ট প্রমাণীকরণের সময় প্রিন্ট করা হয় (আরও তথ্যের জন্য "সিআই সিস্টেমের সাথে সিএলআই ব্যবহার করুন" পড়ুন)। |
service_credentials_file | আপনার গুগল সার্ভিস অ্যাকাউন্ট json ফাইলের পাথ। সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে কীভাবে প্রমাণীকরণ করতে হয়, তা জানতে পূর্ববর্তী ডকুমেন্টেশন দেখুন। |
service_credentials_json_data | গুগল সার্ভিস অ্যাকাউন্ট json ফাইলের বিষয়বস্তু। সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে কীভাবে প্রমাণীকরণ করতে হয়, তা জানতে পূর্ববর্তী ডকুমেন্টেশন দেখুন। |
debug | একটি বুলিয়ান ফ্ল্যাগ। বিস্তারিত ডিবাগ আউটপুট প্রিন্ট করার জন্য আপনি এটিকে ' |
পরবর্তী পদক্ষেপ
ম্যানুয়ালি বা প্রোগ্রাম্যাটিকভাবে আরও ডিভাইস নিবন্ধন করতে, অতিরিক্ত iOS ডিভাইস নিবন্ধন দেখুন।
CI/CD এবং fastlane ব্যবহার করে QA টেস্টারদের কাছে Apple অ্যাপ বিতরণের সেরা পদ্ধতিগুলো জানুন।