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

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

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

তুমি শুরু করার আগে

যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন

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

ধাপ 1. আপনার Android প্রকল্প সেট আপ করুন

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

    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.1" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.2.0" 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.1' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.2.0' apply false
    }
    
  2. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts বা <project>/<app-module>/build.gradle ), অ্যাপ ডিস্ট্রিবিউশন গ্রেডল প্লাগইন যোগ করুন:

    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. আপনি যদি একটি কর্পোরেট প্রক্সি বা ফায়ারওয়ালের পিছনে থাকেন, তাহলে নিম্নলিখিত জাভা সিস্টেম প্রপার্টি যোগ করুন যা অ্যাপ ডিস্ট্রিবিউশনকে ফায়ারবেসে আপনার ডিস্ট্রিবিউশন আপলোড করতে সক্ষম করে:

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

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

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

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

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

উদাহরণস্বরূপ, পরীক্ষকদের কাছে 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"
          }
      }
  }

  // ...
}

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

উদাহরণস্বরূপ, "ডেমো" এবং "সম্পূর্ণ" পণ্যের স্বাদে 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"
          }
      }
  }

  // ...
}

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

অ্যাপ ডিস্ট্রিবিউশন বিল্ড প্যারামিটার
appId

আপনার অ্যাপের Firebase অ্যাপ আইডি। আপনার যদি Google পরিষেবা গ্রেডল প্লাগইন ইনস্টল না থাকে তবেই এটি প্রয়োজনীয়৷ আপনি google-services.json ফাইলে বা সাধারণ সেটিংস পৃষ্ঠায় 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 অ্যাপ ডিস্ট্রিবিউশন কনসোলের টেস্টার ট্যাবে খুঁজে পেতে পারেন।

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

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

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

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

  1. অবশেষে, আপনার পরীক্ষার অ্যাপ প্যাকেজ করতে এবং পরীক্ষকদের আমন্ত্রণ জানাতে, লক্ষ্য BUILD-VARIANT এবং appDistributionUpload BUILD-VARIANT আপনার প্রোজেক্টের Gradle wrapper দিয়ে তৈরি করুন, যেখানে 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. আপনি --<property-name>=<property-value> আকারে কমান্ড লাইন আর্গুমেন্ট পাস করে আপনার build.gradle ফাইলে সেট করা মানগুলিকে ওভাররাইড করতে পারেন। উদাহরণ স্বরূপ:

    • অ্যাপ ডিস্ট্রিবিউশনে একটি ডিবাগ বিল্ড আপলোড করতে:

      ./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"
      

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

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

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

    • projectNumber : আপনার ফায়ারবেস প্রকল্প নম্বর।

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

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

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

একবার আপনি আপনার বিল্ড বিতরণ করলে, এটি Firebase কনসোলের অ্যাপ ডিস্ট্রিবিউশন ড্যাশবোর্ডে 150 দিনের (পাঁচ মাস) জন্য উপলব্ধ হয়ে যায়। বিল্ডের মেয়াদ শেষ হওয়ার 30 দিন হলে, কনসোল এবং আপনার পরীক্ষকের তাদের টেস্ট ডিভাইসে বিল্ডের তালিকা উভয়েই একটি মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি প্রদর্শিত হবে।

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

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

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