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