আপনি fastlane ব্যবহার করে টেস্টারদের কাছে বিল্ড ডিস্ট্রিবিউট করতে পারবেন, এটি একটি ওপেন সোর্স প্ল্যাটফর্ম যা
iOS এবং Android অ্যাপ তৈরি ও রিলিজ করার প্রসেস অটোমেট করে। এই নির্দেশিকা Fastfile-এ
সংজ্ঞায়িত নির্দেশাবলী অনুসরণ করে। আপনি ফাস্টলেন এবং আপনার
Fastfile সেট-আপ করার পরে, আপনার ফাস্টলেন কনফিগারেশনের সাথে App Distribution ইন্টিগ্রেট করতে
পারবেন।
শুরু করার আগে
আপনি আগে থেকে না করে থাকলে, আপনার Apple প্রোজেক্টে Firebase যোগ করুন।
আপনি অন্য কোনও Firebase প্রোডাক্ট ব্যবহার না করলে, আপনাকে শুধু একটি প্রোজেক্ট তৈরি করে আপনার অ্যাপ রেজিস্টার করতে হবে। তবে, ভবিষ্যতে আপনি অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নিলে, উপরে লিঙ্ক করা পৃষ্ঠার সব ধাপ সম্পূর্ণ করতে ভুলবেন না।
Firebase কনসোলের App Distribution পৃষ্ঠা খুলুন। প্রম্পট করা হলে আপনার Firebase প্রোজেক্ট বেছে নিন, অ্যাপ সুইচার ব্যবহার করে আপনার অ্যাপ বেছে নিন এবং শুরু করুন বিকল্পে ক্লিক করুন।
ধাপ ১. Fastlane সেট-আপ করুন
আপনার fastlane কনফিগারেশনে App Distribution যোগ করতে, আপনার iOS প্রোজেক্টের রুট থেকে নিম্নলিখিত কমান্ড রান করুন:
fastlane add_plugin firebase_app_distribution
কমান্ড আপনাকে কোনও বিকল্পের সাথে প্রম্পট করলে,
Option 3: RubyGems.orgবেছে নিন।
ধাপ ২. Firebase-এর মাধ্যমে যাচাই করুন
fastlane প্লাগ-ইন ব্যবহার করার আগে, আপনাকে প্রথমে নিম্নলিখিত উপায়ে Firebase প্রোজেক্টের মাধ্যমে যাচাইকরণ করতে হবে। ডিফল্ট হিসেবে, অন্য কোনও যাচাইকরণ পদ্ধতি ব্যবহার করা না হলে, fastlane প্লাগ-ইন Firebase CLI থেকে ক্রেডেনশিয়াল খোঁজে।
ধাপ ৩. আপনার Fastfile সেট-আপ করুন এবং আপনার অ্যাপ ডিস্ট্রিবিউট করুন
./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 অ্যাপ আইডি পেতে ফাইলটি ব্যবহার করা হয়।firebase_cli_tokenএকটি রিফ্রেশ টোকেন যা আপনি Firebase CLI-এর মাধ্যমে আপনার CI এনভায়রনমেন্ট যাচাই করার সময় প্রিন্ট করা হয় (আরও তথ্যের জন্য CI সিস্টেমের সাথে CLI ব্যবহার করুন পড়ুন)।
service_credentials_fileআপনার Google পরিষেবা অ্যাকাউন্ট 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"
অথবা, আপনি সেমিকোলন দিয়ে আলাদা করা টেস্ট ডিভাইসের তালিকা সহ প্লেন টেক্সট ফাইলের পাথ উল্লেখ করতে পারেন:
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অ্যাপ টেস্ট করার এজেন্ট টেস্ট চালানোর সময় সেট করা হলে, কমান্ডটি টেস্ট শুরু করবে এবং তারপরে সেগুলি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করার পরিবর্তে অবিলম্বে ফিরে আসবে। পরীক্ষার ফলাফল দেখতে, Firebase কনসোলে যান। এই ফ্ল্যাগ সেট করা না থাকলে, টেস্ট সম্পূর্ণ না হওয়া পর্যন্ত কমান্ড ব্লক করা থাকবে এবং কোনও টেস্টে সমস্যা হলে ব্যর্থতার কোড সহ বন্ধ হয়ে যাবে।
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
ডকুমেন্টেশন দেখুন।
রিলিজ আপলোড করার পরে fastlane প্লাগ-ইন নিম্নলিখিত লিঙ্কগুলি আউটপুট করে। এইসব লিঙ্ক আপনাকে বাইনারি ম্যানেজ করতে এবং টেস্টার ও অন্যান্য ডেভেলপারদের কাছে সঠিক রিলিজ আছে কিনা তা নিশ্চিত করতে সাহায্য করে:
- Firebase কনসোলের লিঙ্ক যা একটি রিলিজ দেখায়। আপনার সংস্থার অন্যান্য ডেভেলপারদের সাথে আপনি এই লিঙ্ক শেয়ার করতে পারবেন।
- টেস্টার অভিজ্ঞতায় রিলিজের লিঙ্ক (iOS ওয়েব ক্লিপ) যা টেস্টারদের রিলিজ নোট দেখতে এবং তাদের ডিভাইসে অ্যাপ ইনস্টল করতে দেয়। লিঙ্ক ব্যবহার করার জন্য পরীক্ষককে রিলিজ অ্যাক্সেস করতে হবে।
- একটি স্বাক্ষরিত লিঙ্ক যা সরাসরি অ্যাপ বাইনারি (IPA ফাইল) ডাউনলোড এবং ইনস্টল করে। এক ঘণ্টা পরে লিঙ্কের মেয়াদ শেষ হয়ে যায়।
আপনার বিল্ড ডিস্ট্রিবিউট করার পরে, এটি Firebase কনসোলের App Distribution ড্যাশবোর্ডে ১৫০ দিনের জন্য উপলভ্য থাকে। বিল্ডের মেয়াদ শেষ হতে ৩০ দিন বাকি থাকলে, কনসোলে এবং টেস্টারের টেস্ট ডিভাইসে বিল্ডের তালিকায় মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি দেখানো হয়।
যেসব পরীক্ষককে আগে অ্যাপ পরীক্ষা করার জন্য আমন্ত্রণ জানানো হয়নি, তাদের শুরু করার জন্য ইমেল আমন্ত্রণ পাঠানো হয়। নতুন বিল্ড পরীক্ষা করার জন্য প্রস্তুত হলে, বর্তমান পরীক্ষকরা ইমেল বিজ্ঞপ্তি পাবেন। টেস্ট অ্যাপ কীভাবে ইনস্টল করতে হয় তা জানতে, টেস্টার হিসেবে সেট-আপ করুন দেখুন। Firebase কনসোলে প্রত্যেক পরীক্ষক আমন্ত্রণ গ্রহণ করেছেন কিনা এবং অ্যাপ ডাউনলোড করেছেন কিনা তা নির্ধারণ করতে আপনি তাদের স্ট্যাটাস মনিটর করতে পারবেন।
(ঐচ্ছিক) আপনি যখনই App Distribution-এ নতুন রিলিজ তৈরি করেন,
তখন আপনার বিল্ড নম্বর অটোমেটিক বাড়াতে,
আপনি 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
এই fastlane প্লাগ-ইন ফিচার সম্পর্কে আরও জানতে, আপনার অ্যাপের লেটেস্ট রিলিজ সম্পর্কে তথ্য পান দেখুন।
ধাপ ৪ (ঐচ্ছিক)। ডিস্ট্রিবিউশনের জন্য টেস্টার ম্যানেজ করুন
আপনার Fastfile ফাইল ব্যবহার করে অথবা সরাসরি fastlane অ্যাকশন রান করে, আপনার প্রোজেক্ট বা গ্রুপ থেকে টেস্টার যোগ করতে বা সরাতে পারবেন। সরাসরি অ্যাকশন রান করলে
আপনার Fastfile-এ সেট করা ভ্যালু ওভাররাইড হয়ে যায়।
আপনার Firebase প্রোজেক্টে কোনও টেস্টার যোগ করা হয়ে গেলে, আপনি তাকে আলাদা রিলিজে যোগ করতে পারবেন। আপনার Firebase প্রোজেক্ট থেকে সরিয়ে দেওয়া হয়েছে এমন পরীক্ষকদের আপনার প্রোজেক্টের রিলিজে আর অ্যাক্সেস থাকবে না, তবে তারা কিছু সময়ের জন্য আপনার রিলিজে অ্যাক্সেস বজায় রাখতে পারেন।
আপনার কাছে অনেক বেশি সংখ্যক টেস্টার থাকলে, গ্রুপ ব্যবহার করার কথা বিবেচনা করা উচিত।
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_testersfastlane অ্যাকশন রান করুন
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_number: আপনার Firebase প্রোজেক্ট নম্বর।group_alias(ঐচ্ছিক): উল্লেখ করা থাকলে, পরীক্ষকদের নির্দিষ্ট গ্রুপে যোগ করা হয় (বা সরানো হয়)।service_credentials_file: আপনার Google পরিষেবা ক্রেডেনশিয়াল ফাইলের পাথ।firebase_cli_token: Firebase CLI-এর জন্য Auth টোকেন।
service_credentials_file এবং firebase_cli_token হল একই
আর্গুমেন্ট যা আপলোড অ্যাকশন দ্বারা ব্যবহৃত হয়।
ধাপ ৫ (ঐচ্ছিক)। আপনার অ্যাপের লেটেস্ট রিলিজ সম্পর্কে তথ্য পান
আপনি firebase_app_distribution_get_latest_release অ্যাকশন ব্যবহার করে
App Distribution-এ আপনার অ্যাপের লেটেস্ট রিলিজ সম্পর্কে তথ্য পেতে পারেন,
যার মধ্যে অ্যাপের ভার্সন সংক্রান্ত তথ্য, রিলিজ নোট এবং তৈরির সময় অন্তর্ভুক্ত। ব্যবহারের ক্ষেত্রে
ভার্সন অটোমেটিক বাড়ানো এবং আগের রিলিজ থেকে রিলিজ নোট
ক্যারি ওভার করা অন্তর্ভুক্ত।
অ্যাকশনের রিটার্ন ভ্যালু হল একটি হ্যাশ যা লেটেস্ট রিলিজকে দেখায়। 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 এনভায়রনমেন্ট যাচাই করার সময় প্রিন্ট করা হয় (আরও তথ্যের জন্য CI সিস্টেমের সাথে CLI ব্যবহার করুন পড়ুন)। |
service_credentials_file
|
আপনার Google পরিষেবা অ্যাকাউন্ট json ফাইলের পাথ। পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে কীভাবে যাচাই করবেন তা জানতে আগের ডকুমেন্টেশন দেখুন। |
service_credentials_json_data
|
Google পরিষেবা অ্যাকাউন্টের json ফাইলের কন্টেন্ট। পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে কীভাবে যাচাই করবেন তা জানতে আগের ডকুমেন্টেশন দেখুন। |
debug
|
একটি বুলিয়ান ফ্ল্যাগ। ভার্বোস ডিবাগ আউটপুট প্রিন্ট করতে আপনি এটি |
পরবর্তী ধাপ
ম্যানুয়ালি বা প্রোগ্রাম্যাটিক্যালি আরও ডিভাইস রেজিস্টার করতে, আরও iOS ডিভাইস রেজিস্টার করুন দেখুন।
CI/CD এবং fastlane ব্যবহার করে QA টেস্টারদের Apple অ্যাপ ডিস্ট্রিবিউট করার পেশাদার পদ্ধতি সম্পর্কে জানুন।