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


এই ডকুমেন্ট থেকে জানতে পারবেন যে কীভাবে fastlane ব্যবহার করে টেস্টারদের কাছে APK বিল্ড ডিস্ট্রিবিউট করতে হয়। এটি একটি ওপেন সোর্স প্ল্যাটফর্ম যা iOS ও Android অ্যাপের বিল্ড ও রিলিজ অটোমেট করে। এই ডকুমেন্ট Fastfile-এ সংজ্ঞায়িত নির্দেশাবলী অনুসরণ করে। আপনি ফাস্টলেন এবং আপনার Fastfile সেট-আপ করার পরে, আপনার ফাস্টলেন কনফিগারেশনের সাথে App Distribution ইন্টিগ্রেট করতে পারবেন।

শুরু করার আগে

  1. এখনও যোগ না করে থাকলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন।

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

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

ধাপ ১. Fastlane সেট-আপ করুন

  1. fastlane ইনস্টল ও সেট-আপ করুন।

  2. আপনার fastlane কনফিগারেশনে App Distribution যোগ করতে, আপনার Android প্রোজেক্টের রুট থেকে নিম্নলিখিত কমান্ড রান করুন:

    fastlane add_plugin firebase_app_distribution

    কমান্ড আপনাকে কোনও বিকল্পের সাথে প্রম্পট করলে, Option 3: RubyGems.org বেছে নিন।

ধাপ ২. Firebase-এর মাধ্যমে যাচাই করুন

fastlane প্লাগ-ইন ব্যবহার করার আগে, আপনাকে প্রথমে নিম্নলিখিত উপায়ে Firebase প্রোজেক্টের মাধ্যমে যাচাইকরণ করতে হবে। ডিফল্ট হিসেবে, অন্য কোনও যাচাইকরণ পদ্ধতি ব্যবহার করা না হলে, fastlane প্লাগ-ইন Firebase CLI থেকে ক্রেডেনশিয়াল খোঁজে।

ধাপ ৩. আপনার Fastfile সেট-আপ করুন এবং আপনার অ্যাপ ডিস্ট্রিবিউট করুন

  1. ./fastlane/Fastfile লেনে, একটি firebase_app_distribution ব্লক যোগ করুন। ডিস্ট্রিবিউশন কনফিগার করতে নিম্নলিখিত প্যারামিটার ব্যবহার করুন:
    firebase_app_distribution প্যারামিটার
    app

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

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

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

    service_credentials_file

    আপনার Google পরিষেবা অ্যাকাউন্ট json ফাইলের পাথ। কীভাবে পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে যাচাই করবেন তা উপরে দেখুন।

    android_artifact_type

    Android ফাইলের ধরন (APK বা AAB) নির্দিষ্ট করে।

    android_artifact_path

    apk_path (বন্ধ করে দেওয়া হয়েছে) পরিবর্তন করে। আপনি যে APK বা AAB ফাইল আপলোড করতে চান সেটির অ্যাবসোলিউট পাথ। উল্লেখ না করা থাকলে, 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 :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android: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 কনসোলের লিঙ্ক যা একটি রিলিজ দেখায়। আপনার সংস্থার অন্যান্য ডেভেলপারদের সাথে আপনি এই লিঙ্ক শেয়ার করতে পারবেন।
  • টেস্টার অভিজ্ঞতায় (বিল্ট-ইন Android অ্যাপ) রিলিজের একটি লিঙ্ক যা টেস্টারদের রিলিজ নোট দেখতে এবং তাদের ডিভাইসে অ্যাপ ইনস্টল করতে দেয়। লিঙ্ক ব্যবহার করার জন্য পরীক্ষকের কাছে রিলিজের অ্যাক্সেস থাকতে হবে।
  • একটি স্বাক্ষরিত লিঙ্ক যা সরাসরি অ্যাপ বাইনারি (APK বা AAB ফাইল) ডাউনলোড এবং ইনস্টল করে। এক ঘণ্টা পরে লিঙ্কের মেয়াদ শেষ হয়ে যায়।

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

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

(ঐচ্ছিক) App Distribution-এ নতুন রিলিজ তৈরি করার সময় প্রতিবার আপনার বিল্ড নম্বর অটোমেটিক বাড়াতে, আপনি firebase_app_distribution_get_latest_release অ্যাকশন এবং, উদাহরণস্বরূপ, increment_version_code fastlane প্লাগ-ইন ব্যবহার করতে পারেন। নিম্নলিখিত কোডটি আপনার বিল্ড নম্বর কীভাবে অটোমেটিক বাড়াবেন তার একটি উদাহরণ প্রদান করে:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

firebase_app_distribution_get_latest_release অ্যাকশন সম্পর্কে আরও জানতে, আপনার অ্যাপের লেটেস্ট রিলিজ সম্পর্কে তথ্য পান দেখুন।

ধাপ ৪ (ঐচ্ছিক)। ডিস্ট্রিবিউশনের জন্য টেস্টার ম্যানেজ করা

আপনার 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 অ্যাকশন রান করুন

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 অ্যাপ আইডি। আপনি Firebase কনসোলের সাধারণ সেটিংস পৃষ্ঠায় অ্যাপ আইডি খুঁজে পাবেন।

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

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

service_credentials_file

আপনার Google পরিষেবা অ্যাকাউন্ট json ফাইলের পাথ। কীভাবে পরিষেবা অ্যাকাউন্ট ক্রেডেনশিয়াল ব্যবহার করে যাচাই করবেন তা জানতে আগের প্যারামিটার দেখুন।

debug

একটি বুলিয়ান ফ্ল্যাগ। ভার্বোস ডিবাগ আউটপুট প্রিন্ট করতে আপনি এটি true-এ সেট করতে পারেন।

পরবর্তী ধাপ