Firebase CLI ব্যবহার করে টেস্টারদের কাছে Android অ্যাপ ডিস্ট্রিবিউট করা


এই গাইড থেকে আপনি জানতে পারবেন কীভাবে Firebase CLI ব্যবহার করে পরীক্ষকদের কাছে Android অ্যাপ বান্ডেল (AAB) ডিস্ট্রিবিউট করতে হয়। CLI টুল আপনাকে কোনও বিল্ডের জন্য পরীক্ষক ও রিলিজ নোট নির্দিষ্ট করতে দেয়, তারপর সেই অনুযায়ী বিল্ড ডিস্ট্রিবিউট করে।

App Distribution আপনার আপলোড করা AAB প্রসেস করতে এবং আপনার পরীক্ষকদের ডিভাইস কনফিগারেশনের জন্য অপ্টিমাইজ করা APK পরিবেশন করতে Google Play-এর ইন্টার্নাল অ্যাপ শেয়ারিং পরিষেবার সাথে ইন্টিগ্রেট করে। AAB ডিস্ট্রিবিউট করলে আপনি নিম্নলিখিত কাজগুলি করতে পারবেন:

  • আপনার টেস্টারদের ডিভাইসের জন্য অপ্টিমাইজ করা অপ্টিমাইজড APK (Google Play-এর মাধ্যমে পরিবেশিত) চালান।

  • ডিভাইস-নির্দিষ্ট সমস্যা খুঁজে বের করা ও তার সমাধান করা।

  • Play ফিচার ডেলিভারি ও Play অ্যাসেট ডেলিভারির মতো অ্যাপ বান্ডেল ফিচার টেস্ট করুন।

  • টেস্টারদের জন্য ডাউনলোডের সাইজ কমান।

প্রয়োজনীয় অনুমতি

App Distribution-এ AAB আপলোড করতে, আপনাকে অবশ্যই Google Play-এর কোনও অ্যাপের সাথে Firebase অ্যাপ লিঙ্ক করতে হবে। এইসব অ্যাকশন পারফর্ম করার জন্য আপনার কাছে প্রয়োজনীয় লেভেলের অ্যাক্সেস থাকতে হবে।

আপনার কাছে প্রয়োজনীয় Firebase অ্যাক্সেস না থাকলে, Firebase প্রোজেক্টের মালিককে Firebase কনসোল IAM সেটিংস ব্যবহার করে প্রযোজ্য ভূমিকা অ্যাসাইন করতে বলতে পারেন। Firebase প্রোজেক্ট অ্যাক্সেস করা সংক্রান্ত কোনও প্রশ্ন থাকলে, যার মধ্যে মালিককে খুঁজে পাওয়া বা অ্যাসাইন করা পড়ে, তাহলে "Firebase প্রোজেক্টের অনুমতি ও অ্যাক্সেস" সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্ন পড়ে দেখুন।

নিচের সারণীটি Google Play-এর কোনও অ্যাপের সাথে Firebase অ্যাপ লিঙ্ক করা এবং AAB আপলোড করার ক্ষেত্রে প্রযোজ্য।

Firebase কনসোলে অ্যাকশন প্রয়োজনীয় IAM অনুমতি ডিফল্ট হিসেবে প্রয়োজনীয় অনুমতি সহ IAM ভূমিকা অতিরিক্ত প্রয়োজনীয় ভূমিকা
Google Play-এ থাকা অ্যাপের সাথে Firebase অ্যাপ লিঙ্ক করা firebase.playLinks.update নিম্নলিখিত ভূমিকাগুলির মধ্যে একটি: Google Play ডেভেলপারের অ্যাকাউন্টে অ্যাক্সেস আছে অ্যাডমিন হিসেবে
App Distribution-এ AAB আপলোড করা firebaseappdistro.releases.update নিম্নলিখিত ভূমিকাগুলির মধ্যে একটি: ––

শুরু করার আগে

  1. আপনি আগে থেকে না করে থাকলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন। এই ওয়ার্কফ্লোর শেষে, আপনার Firebase প্রোজেক্টে একটি Firebase Android অ্যাপ থাকবে।

    আপনি অন্য কোনও Firebase প্রোডাক্ট ব্যবহার না করলে, আপনাকে শুধু একটি প্রোজেক্ট তৈরি করতে হবে এবং আপনার অ্যাপ রেজিস্টার করতে হবে। আপনি অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নিলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন লিঙ্কে দেওয়া সব ধাপ সম্পূর্ণ করতে ভুলবেন না।

  2. Firebase কনসোলের App Distribution পৃষ্ঠা খুলুন। প্রম্পট করা হলে আপনার Firebase প্রোজেক্ট বেছে নিন, অ্যাপ সুইচার ব্যবহার করে আপনার অ্যাপ বেছে নিন এবং শুরু করুন বিকল্পে ক্লিক করুন।

  3. Google Play-তে Firebase লিঙ্ক তৈরি করতে এবং AAB আপলোড করতে, নিশ্চিত করুন যে আপনার অ্যাপ নিম্নলিখিত প্রয়োজনীয়তা পূরণ করে:

    • Google Play-তে থাকা অ্যাপ এবং Firebase Android অ্যাপ, দুটিই একই প্যাকেজের নাম ব্যবহার করে রেজিস্টার করা হয়েছে।

    • Google Play-তে অ্যাপটি অ্যাপ ড্যাশবোর্ডে সেট-আপ করা হয় এবং Google Play ট্র্যাকের (ইন্টার্নাল টেস্টিং, ক্লোজড টেস্টিং, ওপেন টেস্টিং বা প্রোডাকশন) কোনও একটিতে ডিস্ট্রিবিউট করা হয়।

    • Google Play-তে অ্যাপের পর্যালোচনা সম্পূর্ণ হয়েছে এবং অ্যাপটি প্রকাশ করা হয়েছে। অ্যাপের স্ট্যাটাস কলামে নিম্নলিখিত স্ট্যাটাসগুলির মধ্যে একটি দেখালে আপনার অ্যাপ প্রকাশ করা হয়েছে বলে ধরে নেওয়া হবে: ইন্টার্নাল টেস্টিং (ড্রাফ্ট ইন্টার্নাল টেস্টিং নয়), ক্লোজড টেস্টিং, ওপেন টেস্টিং বা প্রোডাকশন।

  4. আপনার Firebase Android অ্যাপকে Google Play ডেভেলপার অ্যাকাউন্টের সাথে লিঙ্ক করুন:

    1. Firebase কনসোলে, আপনার প্রোজেক্ট সেটিংস-এ যান, তারপর ইন্টিগ্রেশন ট্যাব বেছে নিন।

    2. Google Play কার্ডে, লিঙ্ক করুন বিকল্পে ক্লিক করুন।
      Google Play-তে আগে থেকেই লিঙ্ক করা থাকলে, ম্যানেজ করুন বিকল্পে ক্লিক করুন।

    3. App Distribution ইন্টিগ্রেশন চালু করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন এবং Google Play-এর সাথে কোন Firebase Android অ্যাপ লিঙ্ক করবেন তা বেছে নিন।

    Google Play-তে লিঙ্ক করা সম্পর্কে আরও জানুন।

ধাপ ১. আপনার অ্যাপ তৈরি করা

টেস্টারদের কাছে আপনার অ্যাপের প্রি-রিলিজ ভার্সন ডিস্ট্রিবিউট করার জন্য প্রস্তুত হলে, আপনার AAB বিল্ড করুন (নির্দেশাবলীর জন্য Android Studio ডকুমেন্টেশন দেখুন)।

দেখা যাবে।

ধাপ ২. টেস্টারদের কাছে আপনার অ্যাপ ডিস্ট্রিবিউট করা

টেস্টারদের কাছে আপনার অ্যাপ ডিস্ট্রিবিউট করতে, Firebase CLI ব্যবহার করে আপনার অ্যাপের ফাইল আপলোড করুন:

  1. Firebase CLI-এর লেটেস্ট ভার্সন ইনস্টল বা আপডেট করুন (আপনার OS-এর জন্য নির্দিষ্ট CLI-এর স্ট্যান্ডঅ্যালোন বাইনারি ডাউনলোড করার জন্য সাজেস্ট করা হয়)। সাইন-ইন করেছেন কিনা এবং আপনার প্রোজেক্ট অ্যাক্সেস করতে পারছেন কিনা তা দেখে নিন।
  2. আপনার অ্যাপ আপলোড করতে এবং টেস্টারদের মধ্যে এটি ডিস্ট্রিবিউট করতে appdistribution:distribute কমান্ড চালান। ডিস্ট্রিবিউশন কনফিগার করতে নিম্নলিখিত প্যারামিটার ব্যবহার করুন:

    appdistribution:distribute বিকল্প
    --app

    প্রয়োজনীয়: আপনার অ্যাপের Firebase অ্যাপ আইডি। আপনি Firebase কনসোলে, সাধারণ সেটিংস পৃষ্ঠায় অ্যাপ আইডি দেখতে পাবেন।

    --app 1:1234567890:android:0a1b2c3d4e5f67890
    --token

    Firebase CLI-এর (আরও তথ্যের জন্য CI সিস্টেমের সাথে CLI ব্যবহার করুন পড়ুন) মাধ্যমে আপনার CI এনভায়রনমেন্টকে যাচাই করার সময় প্রিন্ট করা রিফ্রেশ টোকেন।

    --token "$FIREBASE_TOKEN"
    --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"
    --debug

    ভার্বোজ লগ আউটপুট প্রিন্ট করার জন্য আপনি একটি ফ্ল্যাগ যোগ করতে পারেন।

    --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 কনসোলে যান। এই ফ্ল্যাগ সেট করা না থাকলে, পরীক্ষা সম্পূর্ণ না হওয়া পর্যন্ত কমান্ড ব্লক হয়ে যাবে এবং কোনও পরীক্ষা ব্যর্থ হলে, ব্যর্থতার কোড সহ বেরিয়ে আসবে।

    --results-bucket

    একটি কাস্টম Google Cloud Storage (GCS) বাকেট যেখানে পরীক্ষার ফলাফল স্টোর করা হয়। এটি ফাঁকা রাখলে, ডিফল্ট বাকেট ব্যবহার করা হয়। বাকেটটি অবশ্যই বিলিং চালু থাকা প্রোজেক্টের মালিকানাধীন হতে হবে এবং বাকেট নির্দিষ্ট করলে ব্যবহৃত স্টোরেজের জন্য বিলিং চার্জ প্রযোজ্য হবে।

    যেমন:

    firebase appdistribution:distribute test.aab  \
        --app 1:1234567890:android:0a1b2c3d4e5f67890  \
        --release-notes "Bug fixes and improvements" --testers-file testers.txt

    রিলিজ আপলোড করার পরে Firebase CLI নিম্নলিখিত লিঙ্ক আউটপুট করে। এইসব লিঙ্ক আপনাকে বাইনারি ম্যানেজ করতে এবং পরীক্ষক ও অন্যান্য ডেভেলপারদের কাছে সঠিক রিলিজ আছে কিনা তা নিশ্চিত করতে সাহায্য করে:

    • firebase_console_uri - একটি সিঙ্গেল রিলিজ দেখানো Firebase কনসোলের লিঙ্ক। আপনার সংস্থার অন্যান্য ডেভেলপারদের সাথে এই লিঙ্ক শেয়ার করতে পারবেন।
    • testing_uri - পরীক্ষকের অভিজ্ঞতায় রিলিজের লিঙ্ক (বিল্ট-ইন Android অ্যাপ) যা পরীক্ষকদের রিলিজ নোট দেখতে এবং তাদের ডিভাইসে অ্যাপ ইনস্টল করতে দেয়। লিঙ্ক ব্যবহার করার জন্য পরীক্ষকের রিলিজ অ্যাক্সেস করতে হবে।
    • binary_download_uri - একটি সই করা লিঙ্ক যা সরাসরি অ্যাপ বাইনারি ডাউনলোড ও ইনস্টল করে (APK বা AAB ফাইল) । এক ঘণ্টা পরে লিঙ্কের মেয়াদ শেষ হয়ে যাবে।

    টেস্টার ও গ্রুপ ম্যানেজ করা

    রিলিজ ডিস্ট্রিবিউট করা ছাড়াও, আপনি Firebase প্রোজেক্টে নতুন টেস্টারদের আমন্ত্রণ জানাতে বা আগে থেকে থাকা টেস্টারদের সরাতে appdistribution:testers:add এবং appdistribution:testers:remove ব্যবহার করতে পারেন।

    আপনার Firebase প্রোজেক্টে কোনও টেস্টারকে যোগ করার পরে আপনি তাকে আলাদা আলাদা রিলিজের জন্য যোগ করতে পারবেন। আপনি কোনও টেস্টারকে সরিয়ে দিলে, তিনি আর আপনার প্রোজেক্টের রিলিজ অ্যাক্সেস করতে পারবেন না। মনে রাখবেন, সম্প্রতি সরানো পরীক্ষকরা এখনও কিছু সময়ের জন্য আপনার রিলিজ অ্যাক্সেস করতে পারবেন।

    যেমন:

    firebase appdistribution:testers:add anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove anothertester@email.com moretesters@email.com

    টেস্টারদের ইমেল আইডির মধ্যে স্পেস থাকতে হবে। এছাড়াও, আপনি --file /path/to/testers.txt ব্যবহার করে টেস্টারদের নির্দিষ্ট করতে পারবেন।

    আপনার যদি প্রচুর সংখ্যক টেস্টার থাকে, তাহলে আপনাকে গ্রুপ ব্যবহার করার কথা বিবেচনা করতে হবে: আপনার Firebase প্রোজেক্টে গ্রুপ তৈরি বা মুছে দিতে, আপনি appdistribution:group:create এবং appdistribution:group:delete ব্যবহার করতে পারবেন।

    appdistribution:testers:add এবং appdistribution:testers:remove কমান্ডের জন্য --group-alias ব্যবহার করে গ্রুপ নির্দিষ্ট করুন।

    যেমন:

    firebase appdistribution:group:create "QA team" qa-team
    
    firebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:group:delete qa-team

আপনার বিল্ড ডিস্ট্রিবিউট করার পরে, এটি ১৫০ দিন (পাঁচ মাস) ধরে App Distribution কনসোলের Firebase ড্যাশবোর্ডে উপলভ্য থাকে। বিল্ডের মেয়াদ শেষ হওয়ার ৩০ দিন আগে, কনসোল এবং আপনার পরীক্ষকের টেস্ট ডিভাইসে বিল্ডের তালিকায় মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি দেখানো হয়।

যেসব টেস্টারকে অ্যাপ টেস্ট করার জন্য আমন্ত্রণ জানানো হয়নি, তারা শুরু করার জন্য ইমেল আমন্ত্রণ পান এবং আগে থেকে থাকা টেস্টাররা ইমেল বিজ্ঞপ্তি পান যে একটি নতুন বিল্ড টেস্ট করার জন্য রেডি (টেস্ট অ্যাপ কীভাবে ইনস্টল করতে হয় সেই সংক্রান্ত নির্দেশাবলীর জন্য টেস্টার সেট-আপ গাইড পড়ুন)। আপনি Firebase কনসোলে প্রতিটি পরীক্ষকের স্ট্যাটাস মনিটর করতে পারবেন-তারা আমন্ত্রণ গ্রহণ করেছেন কিনা এবং অ্যাপ ডাউনলোড করেছেন কিনা তা দেখতে পাবেন।

অ্যাপ পরীক্ষা করার জন্য আমন্ত্রণ জানানোর মেয়াদ শেষ হওয়ার আগে পরীক্ষকদের কাছে সেটি গ্রহণ করার জন্য ৩০ দিন সময় থাকে। কোনও আমন্ত্রণ শেষ হওয়ার ৫ দিন আগে, রিলিজের উপর পরীক্ষকের নামের পাশে Firebase কনসোলে মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি দেখানো হয়। টেস্টার সারিতে ড্রপ-ডাউন মেনু ব্যবহার করে আমন্ত্রণ আবার পাঠানো যেতে পারে।

পরবর্তী ধাপ