Gradle ব্যবহার করে পরীক্ষকদের কাছে Android অ্যাপ বিতরণ করুন


আপনি App Distribution গ্রেডল প্লাগইন ব্যবহার করে আপনার অ্যান্ড্রয়েড বিল্ড প্রক্রিয়ায় App Distribution একীভূত করতে পারেন। প্লাগইনটি আপনাকে আপনার অ্যাপের গ্রেডল ফাইলে আপনার পরীক্ষক এবং রিলিজ নোট নির্দিষ্ট করতে দেয়, যা আপনাকে আপনার অ্যাপের বিভিন্ন বিল্ড প্রকার এবং রূপের জন্য বিতরণ কনফিগার করতে দেয়।

এই নির্দেশিকাটিতে App Distribution গ্রেডল প্লাগইন ব্যবহার করে পরীক্ষকদের কাছে APK কীভাবে বিতরণ করা যায় তা বর্ণনা করা হয়েছে।

শুরু করার আগে

যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে Firebase যোগ করুন

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

ধাপ ১. আপনার অ্যান্ড্রয়েড প্রজেক্ট সেট আপ করুন।

  1. আপনার রুট-লেভেল (প্রজেক্ট-লেভেল) গ্র্যাডেল ফাইলে ( <project>/build.gradle.kts অথবা <project>/build.gradle ), App Distribution গ্র্যাডেল প্লাগইনটি নির্ভরতা হিসেবে যুক্ত করুন:

    Kotlin

    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.4" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.1.1" apply false
    }

    Groovy

    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.4' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.1.1' apply false
    }
  2. আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), App Distribution গ্র্যাডেল প্লাগইন যোগ করুন:

    Kotlin

    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }

    Groovy

    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
  3. যদি আপনি কোনও কর্পোরেট প্রক্সি বা ফায়ারওয়ালের পিছনে থাকেন, তাহলে নিম্নলিখিত জাভা সিস্টেম বৈশিষ্ট্যটি যোগ করুন যা App Distribution আপনার ডিস্ট্রিবিউশনগুলিকে Firebase-এ আপলোড করতে সক্ষম করে:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

ধাপ ২. ফায়ারবেস দিয়ে প্রমাণীকরণ করুন

গ্রেডল প্লাগইন ব্যবহার করার আগে, আপনাকে প্রথমে নিম্নলিখিত যেকোনো একটি উপায়ে আপনার ফায়ারবেস প্রকল্পের সাথে প্রমাণীকরণ করতে হবে। ডিফল্টরূপে, যদি অন্য কোনও প্রমাণীকরণ পদ্ধতি ব্যবহার না করা হয় তবে গ্রেডল প্লাগইন Firebase CLI থেকে শংসাপত্রগুলি অনুসন্ধান করে।

ধাপ ৩. আপনার বিতরণ বৈশিষ্ট্যগুলি কনফিগার করুন

আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ) কমপক্ষে একটি firebaseAppDistribution বিভাগ যোগ করে App Distribution কনফিগার করুন।

উদাহরণস্বরূপ, পরীক্ষকদের কাছে release বিল্ড বিতরণ করতে, এই নির্দেশাবলী অনুসরণ করুন::

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

আপনি বিল্ডের ধরণ এবং পণ্যের স্বাদের জন্য App Distribution কনফিগার করতে পারেন।

উদাহরণস্বরূপ, "ডেমো" এবং "পূর্ণ" পণ্য ফ্লেভারে debug এবং release বিল্ড বিতরণ করতে, এই নির্দেশাবলী অনুসরণ করুন:

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

বিতরণ কনফিগার করতে নিম্নলিখিত পরামিতিগুলি ব্যবহার করুন:

App Distribution বিল্ড প্যারামিটার
appId

আপনার অ্যাপের Firebase অ্যাপ আইডি। শুধুমাত্র তখনই প্রয়োজন যখন আপনার কাছে Google Services Gradle প্লাগইন ইনস্টল করা না থাকে। আপনি অ্যাপ আইডিটি google-services.json ফাইলে অথবা General Settings পৃষ্ঠায় Firebase কনসোলে খুঁজে পেতে পারেন। আপনার build.gradle ফাইলের মান google-services প্লাগইন থেকে আসা মান আউটপুটকে ওভাররাইড করে।

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

আপনার পরিষেবা অ্যাকাউন্টের প্রাইভেট কী JSON ফাইলের পথ। শুধুমাত্র পরিষেবা অ্যাকাউন্ট প্রমাণীকরণ ব্যবহার করলেই এটি প্রয়োজন।

artifactType

আপনার অ্যাপের ফাইলের ধরণ নির্দিষ্ট করে। "AAB" অথবা "APK" তে সেট করা যেতে পারে।

artifactPath

আপনি যে APK অথবা AAB ফাইলটি আপলোড করতে চান তার সম্পূর্ণ পথ।

releaseNotes অথবা releaseNotesFile

এই বিল্ডের জন্য রিলিজ নোট।

আপনি সরাসরি রিলিজ নোট নির্দিষ্ট করতে পারেন অথবা একটি প্লেইন টেক্সট ফাইলের পথ নির্দিষ্ট করতে পারেন।

testers বা testersFile

আপনি যে পরীক্ষকদের কাছে বিল্ড বিতরণ করতে চান তাদের ইমেল ঠিকানা।

আপনি পরীক্ষকদের কমা দ্বারা পৃথক করা ইমেল ঠিকানার তালিকা হিসাবে নির্দিষ্ট করতে পারেন:

testers="ali@example.com, bri@example.com, cal@example.com"

অথবা, আপনি কমা দ্বারা পৃথক করা ইমেল ঠিকানার তালিকা সম্বলিত একটি ফাইলের পথ নির্দিষ্ট করতে পারেন:

testersFile="/path/to/testers.txt"
groups বা groupsFile

আপনি যে পরীক্ষক গোষ্ঠীগুলিতে বিল্ড বিতরণ করতে চান ( পরীক্ষকদের পরিচালনা করুন দেখুন)। গোষ্ঠীগুলি ব্যবহার করে নির্দিষ্ট করা হয় গ্রুপ উপনাম , যা আপনি Firebase App Distribution কনসোলের টেস্টার্স ট্যাবে খুঁজে পেতে পারেন।

আপনি গ্রুপগুলিকে কমা দ্বারা পৃথক করা গ্রুপ উপনামের তালিকা হিসাবে নির্দিষ্ট করতে পারেন:

groups="qa-team, android-testers"

অথবা, আপনি কমা দ্বারা পৃথক করা গ্রুপ উপনামের তালিকা সম্বলিত একটি ফাইলের পথ নির্দিষ্ট করতে পারেন:

groupsFile="/path/to/tester-groups.txt"
testDevices অথবা testDevicesFile

নিম্নলিখিত বিতরণ প্রকারগুলি অটোমেটেড টেস্টার বিটা বৈশিষ্ট্যের অংশ।

আপনি যে পরীক্ষা ডিভাইসগুলিতে বিল্ড বিতরণ করতে চান ( স্বয়ংক্রিয় পরীক্ষা দেখুন)।

আপনি ডিভাইসের স্পেসিফিকেশনের একটি সেমিকোলন-বিচ্ছিন্ন তালিকা হিসাবে পরীক্ষামূলক ডিভাইসগুলি নির্দিষ্ট করতে পারেন:

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

অথবা, আপনি ডিভাইসের স্পেসিফিকেশনের একটি সেমিকোলন-বিভাজিত তালিকা ধারণকারী একটি ফাইলের পথ নির্দিষ্ট করতে পারেন:

testDevicesFile="/path/to/testDevices.txt"
testUsername

স্বয়ংক্রিয় পরীক্ষার সময় ব্যবহৃত স্বয়ংক্রিয় লগইনের ব্যবহারকারীর নাম।

testPassword বা testPasswordFile

স্বয়ংক্রিয় পরীক্ষার সময় স্বয়ংক্রিয় লগইনের জন্য পাসওয়ার্ড ব্যবহার করা হবে।

অথবা, আপনি একটি পাসওয়ার্ড ধারণকারী একটি প্লেইন টেক্সট ফাইলের পথ নির্দিষ্ট করতে পারেন:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

স্বয়ংক্রিয় পরীক্ষার সময় স্বয়ংক্রিয় লগইনের জন্য ব্যবহারকারীর নাম ক্ষেত্রের জন্য রিসোর্সের নাম।

testPasswordResource

স্বয়ংক্রিয় পরীক্ষার সময় স্বয়ংক্রিয় লগইনের জন্য পাসওয়ার্ড ক্ষেত্রের রিসোর্সের নাম।

testNonBlocking

স্বয়ংক্রিয় পরীক্ষাগুলি অ্যাসিঙ্ক্রোনাসভাবে চালান। স্বয়ংক্রিয় পরীক্ষার ফলাফলের জন্য Firebase কনসোলটি দেখুন।

stacktrace

ব্যবহারকারীর ব্যতিক্রমগুলির জন্য স্ট্যাকট্রেস প্রিন্ট করে। সমস্যাগুলি ডিবাগ করার সময় এটি সহায়ক।

ধাপ ৪. পরীক্ষকদের কাছে আপনার অ্যাপ বিতরণ করুন।

  1. অবশেষে, আপনার পরীক্ষামূলক অ্যাপটি প্যাকেজ করতে এবং পরীক্ষকদের আমন্ত্রণ জানাতে, লক্ষ্যগুলি তৈরি করুন BUILD-VARIANT আপনার প্রোজেক্টের গ্রেডল র‍্যাপার দিয়ে BUILD-VARIANT এবং appDistributionUpload BUILD-VARIANT , যেখানে BUILD-VARIANT হল ঐচ্ছিক পণ্যের স্বাদ এবং বিল্ড টাইপ যা আপনি আগের ধাপে কনফিগার করেছিলেন। পণ্যের স্বাদ সম্পর্কে আরও তথ্যের জন্য, বিল্ড ভেরিয়েন্ট কনফিগার করুন দেখুন।

    উদাহরণস্বরূপ, release বিল্ড ভেরিয়েন্ট ব্যবহার করে আপনার অ্যাপ বিতরণ করতে, নিম্নলিখিত কমান্ডটি চালান:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    অথবা, যদি আপনি আপনার Google অ্যাকাউন্ট দিয়ে প্রমাণীকরণ করেন এবং আপনার Gradle বিল্ড ফাইলে শংসাপত্র প্রদান না করেন, তাহলে FIREBASE_TOKEN ভেরিয়েবলটি অন্তর্ভুক্ত করুন:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. আপনি আপনার build.gradle ফাইলে সেট করা মানগুলিকে --<property-name>=<property-value> আকারে কমান্ড লাইন আর্গুমেন্ট পাস করে ওভাররাইড করতে পারেন। উদাহরণস্বরূপ:

    • App Distribution একটি ডিবাগ বিল্ড আপলোড করতে:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
    • আপনার Firebase প্রকল্প থেকে অতিরিক্ত পরীক্ষকদের আমন্ত্রণ জানাতে অথবা বিদ্যমান পরীক্ষকদের অপসারণ করতে:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"

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

    আপনি --emails এর পরিবর্তে --file="/path/to/testers.txt" ব্যবহার করেও পরীক্ষক নির্দিষ্ট করতে পারেন।

    appDistributionAddTesters এবং appDistributionRemoveTesters টাস্কগুলিও নিম্নলিখিত যুক্তিগুলি গ্রহণ করে:

    • projectNumber : আপনার Firebase প্রকল্প নম্বর।

    • serviceCredentialsFile : আপনার Google পরিষেবা শংসাপত্র ফাইলের পথ। আপলোড অ্যাকশনে ব্যবহৃত একই যুক্তি।

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

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

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

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

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

পরবর্তী পদক্ষেপ