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


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

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

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

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

  • ডিভাইস-নির্দিষ্ট সমস্যাগুলি উন্মোচন এবং ডিবাগ করুন।

  • প্লে ফিচার ডেলিভারি এবং প্লে অ্যাসেট ডেলিভারির মতো অ্যাপ বান্ডেল বৈশিষ্ট্যগুলি পরীক্ষা করুন৷

  • আপনার পরীক্ষকদের জন্য ডাউনলোডের আকার কমিয়ে দিন।

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

App Distribution AABs আপলোড করতে, আপনাকে অবশ্যই আপনার Firebase অ্যাপটিকে Google Play এর একটি অ্যাপের সাথে লিঙ্ক করতে হবে। এই ক্রিয়াগুলি সম্পাদন করার জন্য আপনার অবশ্যই প্রয়োজনীয় স্তরের অ্যাক্সেস থাকতে হবে।

আপনার কাছে প্রয়োজনীয় Firebase অ্যাক্সেস না থাকলে, আপনি Firebase প্রকল্পের মালিককে Firebase কনসোল IAM সেটিংসের মাধ্যমে প্রযোজ্য ভূমিকা অর্পণ করতে বলতে পারেন। আপনার যদি আপনার ফায়ারবেস প্রকল্প অ্যাক্সেস করার বিষয়ে প্রশ্ন থাকে, যার মধ্যে একজন মালিককে খুঁজে বের করা বা বরাদ্দ করা সহ, "অনুমতি এবং Firebase প্রকল্পগুলিতে অ্যাক্সেস" FAQs পর্যালোচনা করুন।

নিম্নলিখিত সারণীটি Google Play এর একটি অ্যাপের সাথে একটি Firebase অ্যাপ লিঙ্ক করার পাশাপাশি AABs আপলোড করার ক্ষেত্রে প্রযোজ্য।

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

আপনি শুরু করার আগে

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন । এই কর্মপ্রবাহের শেষে, আপনার Firebase প্রকল্পে একটি Firebase Android অ্যাপ থাকবে।

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

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

    • Google Play-এর অ্যাপ এবং Firebase অ্যান্ড্রয়েড অ্যাপ উভয়ই একই প্যাকেজের নাম ব্যবহার করে নিবন্ধিত।

    • Google Play-তে অ্যাপটি অ্যাপ ড্যাশবোর্ডে সেট আপ করা হয়েছে এবং Google Play ট্র্যাকের একটিতে বিতরণ করা হয়েছে (অভ্যন্তরীণ পরীক্ষা, বন্ধ পরীক্ষা, ওপেন টেস্টিং বা উৎপাদন)।

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

  3. আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপটিকে আপনার Google Play বিকাশকারী অ্যাকাউন্টের সাথে লিঙ্ক করুন:

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

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

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

    Google Play-এ লিঙ্ক করার বিষয়ে আরও জানুন।

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

  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.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' 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 ফায়ারবেসে আপনার ডিস্ট্রিবিউশন আপলোড করতে সক্ষম করে:

    -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 ), অন্তত যোগ করে App Distribution কনফিগার করুন একটি firebaseAppDistribution বিভাগ।

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

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              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 পরিষেবা গ্রেডল প্লাগইন ইনস্টল না থাকে তবেই এটি প্রয়োজনীয়৷ আপনি 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 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

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

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

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

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

    ./gradlew bundleRelease appDistributionUploadRelease
    

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

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

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

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • অতিরিক্ত পরীক্ষকদের আমন্ত্রণ জানাতে বা আপনার 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 কনসোলের App Distribution ড্যাশবোর্ডে 150 দিনের (পাঁচ মাস) জন্য উপলব্ধ হয়ে যায়। বিল্ডের মেয়াদ শেষ হওয়ার 30 দিন হলে, কনসোল এবং আপনার পরীক্ষকের তাদের টেস্ট ডিভাইসে বিল্ডের তালিকা উভয়েই একটি মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি প্রদর্শিত হবে।

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

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

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

,


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

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

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

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

  • ডিভাইস-নির্দিষ্ট সমস্যাগুলি উন্মোচন এবং ডিবাগ করুন।

  • প্লে ফিচার ডেলিভারি এবং প্লে অ্যাসেট ডেলিভারির মতো অ্যাপ বান্ডেল বৈশিষ্ট্যগুলি পরীক্ষা করুন৷

  • আপনার পরীক্ষকদের জন্য ডাউনলোডের আকার কমিয়ে দিন।

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

App Distribution AABs আপলোড করতে, আপনাকে অবশ্যই আপনার Firebase অ্যাপটিকে Google Play এর একটি অ্যাপের সাথে লিঙ্ক করতে হবে। এই ক্রিয়াগুলি সম্পাদন করার জন্য আপনার অবশ্যই প্রয়োজনীয় স্তরের অ্যাক্সেস থাকতে হবে।

আপনার কাছে প্রয়োজনীয় Firebase অ্যাক্সেস না থাকলে, আপনি Firebase প্রকল্পের মালিককে Firebase কনসোল IAM সেটিংসের মাধ্যমে প্রযোজ্য ভূমিকা অর্পণ করতে বলতে পারেন। আপনার যদি আপনার ফায়ারবেস প্রকল্প অ্যাক্সেস করার বিষয়ে প্রশ্ন থাকে, যার মধ্যে একজন মালিককে খুঁজে বের করা বা বরাদ্দ করা সহ, "অনুমতি এবং Firebase প্রকল্পগুলিতে অ্যাক্সেস" FAQs পর্যালোচনা করুন।

নিম্নলিখিত সারণীটি Google Play এর একটি অ্যাপের সাথে একটি Firebase অ্যাপ লিঙ্ক করার পাশাপাশি AABs আপলোড করার ক্ষেত্রে প্রযোজ্য।

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

আপনি শুরু করার আগে

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন । এই কর্মপ্রবাহের শেষে, আপনার Firebase প্রকল্পে একটি Firebase Android অ্যাপ থাকবে।

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

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

    • Google Play-এর অ্যাপ এবং Firebase অ্যান্ড্রয়েড অ্যাপ উভয়ই একই প্যাকেজের নাম ব্যবহার করে নিবন্ধিত।

    • Google Play-তে অ্যাপটি অ্যাপ ড্যাশবোর্ডে সেট আপ করা হয়েছে এবং Google Play ট্র্যাকের একটিতে বিতরণ করা হয়েছে (অভ্যন্তরীণ পরীক্ষা, বন্ধ পরীক্ষা, ওপেন টেস্টিং বা উৎপাদন)।

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

  3. আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপটিকে আপনার Google Play বিকাশকারী অ্যাকাউন্টের সাথে লিঙ্ক করুন:

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

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

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

    Google Play-এ লিঙ্ক করার বিষয়ে আরও জানুন।

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

  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.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' 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 ফায়ারবেসে আপনার ডিস্ট্রিবিউশন আপলোড করতে সক্ষম করে:

    -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 ), অন্তত যোগ করে App Distribution কনফিগার করুন একটি firebaseAppDistribution বিভাগ।

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

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              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 পরিষেবা গ্রেডল প্লাগইন ইনস্টল না থাকে তবেই এটি প্রয়োজনীয়৷ আপনি 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 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

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

পদক্ষেপ 4। আপনার অ্যাপ্লিকেশন পরীক্ষার্থীদের কাছে বিতরণ করুন

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

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

    ./gradlew bundleRelease appDistributionUploadRelease
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

,


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

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

App Distribution আপনি আপলোড এবং আপনার পরীক্ষকদের ডিভাইস কনফিগারেশনের জন্য অনুকূলিত APKS পরিবেশন করতে এবং পরিবেশন করতে Google Play অভ্যন্তরীণ অ্যাপ্লিকেশন ভাগ করে নেওয়ার পরিষেবাগুলির সাথে সংহত করে। এএবিএস বিতরণ করা আপনাকে নিম্নলিখিতগুলি করতে দেয়:

  • আপনার পরীক্ষকদের ডিভাইসগুলিতে অনুকূলিত অপ্টিমাইজড এপিকে (গুগল প্লে দ্বারা পরিবেশন করা) চালান।

  • ডিভাইস-নির্দিষ্ট সমস্যাগুলি উন্মোচন এবং ডিবাগ করুন।

  • টেস্ট অ্যাপ্লিকেশন বান্ডিল বৈশিষ্ট্য যেমন প্লে বৈশিষ্ট্য বিতরণ এবং প্লে সম্পদ বিতরণ

  • আপনার পরীক্ষকদের জন্য ডাউনলোডের আকার হ্রাস করুন।

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

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

আপনার কাছে প্রয়োজনীয় Firebase অ্যাক্সেস না থাকলে, আপনি Firebase প্রকল্পের মালিককে Firebase কনসোল IAM সেটিংসের মাধ্যমে প্রযোজ্য ভূমিকা অর্পণ করতে বলতে পারেন। আপনার যদি আপনার ফায়ারবেস প্রকল্প অ্যাক্সেস করার বিষয়ে প্রশ্ন থাকে, যার মধ্যে একজন মালিককে খুঁজে বের করা বা বরাদ্দ করা সহ, "অনুমতি এবং Firebase প্রকল্পগুলিতে অ্যাক্সেস" FAQs পর্যালোচনা করুন।

নিম্নলিখিত টেবিলটি Google Play -তে একটি অ্যাপ্লিকেশনটিতে ফায়ারবেস অ্যাপকে সংযুক্ত করার পাশাপাশি এএবিএস আপলোড করার ক্ষেত্রে প্রযোজ্য।

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

আপনি শুরু করার আগে

  1. আপনি যদি ইতিমধ্যে না থাকেন তবে আপনার অ্যান্ড্রয়েড প্রকল্পে ফায়ারবেস যুক্ত করুন । এই কর্মপ্রবাহের শেষে, আপনার ফায়ারবেস প্রকল্পে আপনার একটি ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশন থাকবে।

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

  2. গুগল প্লেতে ফায়ারবেস লিঙ্ক তৈরি করতে এবং এএবিএস আপলোড করতে, আপনার অ্যাপ্লিকেশনটি নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করেছে তা নিশ্চিত করুন:

    • গুগল প্লে অ্যাপ্লিকেশন এবং ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশন উভয়ই একই প্যাকেজের নাম ব্যবহার করে নিবন্ধিত।

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

    • গুগল প্লেতে অ্যাপ্লিকেশনটির পর্যালোচনা সম্পূর্ণ এবং অ্যাপটি প্রকাশিত হয়েছে। আপনার অ্যাপ্লিকেশনটি প্রকাশিত হয় যদি অ্যাপের স্থিতি কলামটি নিম্নলিখিত স্ট্যাটাসগুলির মধ্যে একটি প্রদর্শন করে: অভ্যন্তরীণ পরীক্ষা (অভ্যন্তরীণ পরীক্ষার খসড়া নয়), বন্ধ পরীক্ষা, খোলা পরীক্ষা বা উত্পাদন।

  3. আপনার গুগল প্লে বিকাশকারী অ্যাকাউন্টে আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপটি লিঙ্ক করুন:

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

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

    3. App Distribution সংহতকরণ সক্ষম করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন এবং গুগল প্লেতে লিঙ্ক করতে কোন ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি নির্বাচন করুন।

    গুগল প্লেতে লিঙ্কিং সম্পর্কে আরও জানুন।

পদক্ষেপ 1। আপনার অ্যান্ড্রয়েড প্রকল্প সেট আপ করুন

  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.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' 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 ফায়ারবেসে আপনার বিতরণগুলি আপলোড করতে সক্ষম করে:

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

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

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

পদক্ষেপ 3। আপনার বিতরণ বৈশিষ্ট্যগুলি কনফিগার করুন

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

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

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              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

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

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

আপনার পরিষেবা অ্যাকাউন্টের ব্যক্তিগত কী জসন ফাইলের পথ। আপনি যদি পরিষেবা অ্যাকাউন্ট প্রমাণীকরণ ব্যবহার করেন তবেই প্রয়োজনীয়।

artifactType

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

artifactPath

আপনি আপলোড করতে চান এপিকে বা এএবি ফাইলের নিখুঁত পথ।

releaseNotes বা releaseNotesFile

এই বিল্ডের জন্য নোট প্রকাশ করুন।

আপনি হয় রিলিজ নোটগুলি সরাসরি বা একটি সরল পাঠ্য ফাইলের পথ নির্দিষ্ট করতে পারেন।

testers বা testersFile

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

আপনি পরীক্ষার্থীদের ইমেল ঠিকানাগুলির কমা-বিচ্ছিন্ন তালিকা হিসাবে নির্দিষ্ট করতে পারেন:

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

অথবা, আপনি ইমেল ঠিকানাগুলির কমা-বিচ্ছিন্ন তালিকাযুক্ত কোনও ফাইলের পথ নির্দিষ্ট করতে পারেন:

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

আপনি পরীক্ষক গোষ্ঠীগুলি বিল্ডগুলি বিতরণ করতে চান ( পরীক্ষক পরিচালনা করুন ) দেখুন। গোষ্ঠীগুলি ব্যবহার করে নির্দিষ্ট করা হয় গ্রুপ এলিয়াস , যা আপনি ফায়ারবেস 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

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

stacktrace

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

পদক্ষেপ 4। আপনার অ্যাপ্লিকেশন পরীক্ষার্থীদের কাছে বিতরণ করুন

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

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

    ./gradlew bundleRelease appDistributionUploadRelease
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

,


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

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

App Distribution আপনি আপলোড এবং আপনার পরীক্ষকদের ডিভাইস কনফিগারেশনের জন্য অনুকূলিত APKS পরিবেশন করতে এবং পরিবেশন করতে Google Play অভ্যন্তরীণ অ্যাপ্লিকেশন ভাগ করে নেওয়ার পরিষেবাগুলির সাথে সংহত করে। এএবিএস বিতরণ করা আপনাকে নিম্নলিখিতগুলি করতে দেয়:

  • আপনার পরীক্ষকদের ডিভাইসগুলিতে অনুকূলিত অপ্টিমাইজড এপিকে (গুগল প্লে দ্বারা পরিবেশন করা) চালান।

  • ডিভাইস-নির্দিষ্ট সমস্যাগুলি উন্মোচন এবং ডিবাগ করুন।

  • টেস্ট অ্যাপ্লিকেশন বান্ডিল বৈশিষ্ট্য যেমন প্লে বৈশিষ্ট্য বিতরণ এবং প্লে সম্পদ বিতরণ

  • আপনার পরীক্ষকদের জন্য ডাউনলোডের আকার হ্রাস করুন।

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

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

আপনার কাছে প্রয়োজনীয় Firebase অ্যাক্সেস না থাকলে, আপনি Firebase প্রকল্পের মালিককে Firebase কনসোল IAM সেটিংসের মাধ্যমে প্রযোজ্য ভূমিকা অর্পণ করতে বলতে পারেন। আপনার যদি আপনার ফায়ারবেস প্রকল্প অ্যাক্সেস করার বিষয়ে প্রশ্ন থাকে, যার মধ্যে একজন মালিককে খুঁজে বের করা বা বরাদ্দ করা সহ, "অনুমতি এবং Firebase প্রকল্পগুলিতে অ্যাক্সেস" FAQs পর্যালোচনা করুন।

নিম্নলিখিত টেবিলটি Google Play -তে একটি অ্যাপ্লিকেশনটিতে ফায়ারবেস অ্যাপকে সংযুক্ত করার পাশাপাশি এএবিএস আপলোড করার ক্ষেত্রে প্রযোজ্য।

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

আপনি শুরু করার আগে

  1. আপনি যদি ইতিমধ্যে না থাকেন তবে আপনার অ্যান্ড্রয়েড প্রকল্পে ফায়ারবেস যুক্ত করুন । এই কর্মপ্রবাহের শেষে, আপনার ফায়ারবেস প্রকল্পে আপনার একটি ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশন থাকবে।

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

  2. গুগল প্লেতে ফায়ারবেস লিঙ্ক তৈরি করতে এবং এএবিএস আপলোড করতে, আপনার অ্যাপ্লিকেশনটি নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করেছে তা নিশ্চিত করুন:

    • গুগল প্লে অ্যাপ্লিকেশন এবং ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশন উভয়ই একই প্যাকেজের নাম ব্যবহার করে নিবন্ধিত।

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

    • গুগল প্লেতে অ্যাপ্লিকেশনটির পর্যালোচনা সম্পূর্ণ এবং অ্যাপটি প্রকাশিত হয়েছে। আপনার অ্যাপ্লিকেশনটি প্রকাশিত হয় যদি অ্যাপের স্থিতি কলামটি নিম্নলিখিত স্ট্যাটাসগুলির মধ্যে একটি প্রদর্শন করে: অভ্যন্তরীণ পরীক্ষা (অভ্যন্তরীণ পরীক্ষার খসড়া নয়), বন্ধ পরীক্ষা, খোলা পরীক্ষা বা উত্পাদন।

  3. আপনার গুগল প্লে বিকাশকারী অ্যাকাউন্টে আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপটি লিঙ্ক করুন:

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

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

    3. App Distribution সংহতকরণ সক্ষম করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন এবং গুগল প্লেতে লিঙ্ক করতে কোন ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি নির্বাচন করুন।

    গুগল প্লেতে লিঙ্কিং সম্পর্কে আরও জানুন।

পদক্ষেপ 1। আপনার অ্যান্ড্রয়েড প্রকল্প সেট আপ করুন

  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.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' 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 ফায়ারবেসে আপনার বিতরণগুলি আপলোড করতে সক্ষম করে:

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

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

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

Step 3. Configure your distribution properties

In your module (app-level) Gradle file (usually <project>/<app-module>/build.gradle.kts or <project>/<app-module>/build.gradle ), configure App Distribution by adding at least one firebaseAppDistribution section.

For example, to distribute the release build to testers, follow these instructions::

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

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

  // ...
}

You can configure App Distribution for build types and product flavors .

For example, to distribute debug and release builds in "demo" and "full" product flavors, follow these instructions:

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"
          }
      }
  }

  // ...
}

Use the following parameters to configure the distribution:

App Distribution Build Parameters
appId

Your app's Firebase App ID. Required only if you don't have the Google Services Gradle plugin installed. You can find the App ID in the google-services.json file or in the Firebase console on the General Settings page . The value in your build.gradle file overrides the value output from the google-services plugin.

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

The path to your service account private key JSON file. Required only if you use service account authentication.

artifactType

Specifies your app's file type. Can be set to "AAB" or "APK" .

artifactPath

Absolute path to the APK or AAB file you want to upload.

releaseNotes or releaseNotesFile

Release notes for this build.

You can either specify the release notes directly or the path to a plain text file.

testers or testersFile

The email addresses of the testers you want to distribute builds to.

You can specify the testers as a comma-separated list of email addresses:

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

Or, you can specify the path to a file containing a comma-separated list of email addresses:

testersFile="/path/to/testers.txt"
groups or groupsFile

The tester groups you want to distribute builds to (see Manage testers ). Groups are specified using group aliases , which you can find in the Testers tab in the Firebase App Distribution console.

You can specify the groups as a comma-separated list of group aliases:

groups="qa-team, android-testers"

Or, you can specify the path to a file containing a comma-separated list of group aliases:

groupsFile="/path/to/tester-groups.txt"
testDevices or testDevicesFile

The following distribution types are part of the Automated tester beta feature .

The test devices you want to distribute builds to (see Automated tests ).

You can specify the test devices as a semicolon-separated list of device specifications:

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

Or, you can specify the path to a file containing a semicolon-separated list of device specifications:

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

The username for automatic login to be used during automated tests .

testPassword or testPasswordFile

The password for automatic login to be used during automated tests .

Or, you can specify the path to a plain text file containing a password:

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

Resource name for the username field for automatic login to be used during automated tests .

testPasswordResource

Resource name for the password field for automatic login to be used during automated tests .

testNonBlocking

Run automated tests asynchronously. Visit the Firebase console for the automatic test results.

stacktrace

Prints out the stacktrace for user exceptions. This is helpful when debugging issues.

Step 4. Distribute your app to testers

  1. Finally, to package your test app and invite testers, build the targets BUILD-VARIANT and appDistributionUpload BUILD-VARIANT with your project's Gradle wrapper, where BUILD-VARIANT is the optional product flavor and build type you configured in the previous step. For more information about product flavors, see Configure build variants .

    For example, to distribute your app using the release build variant, run the following command:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    Or, if you authenticated with your Google Account and didn't provide credentials in your Gradle build file, include the FIREBASE_TOKEN variable:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. You can also override the values set in your build.gradle file by passing command line arguments in the form of --<property-name>=<property-value> . যেমন:

    • To upload a debug build to App Distribution :

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
    • To invite additional testers or remove existing testers from your Firebase project:

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

      Once a tester has been added to your Firebase project, you can add them to individual releases. Testers who are removed will no longer have access to releases in your project, but may still retain access to your releases for a window of time.

    You can also specify testers using --file="/path/to/testers.txt" instead of --emails .

    The appDistributionAddTesters and appDistributionRemoveTesters tasks also accept the following arguments:

    • projectNumber : Your Firebase project number.

    • serviceCredentialsFile : The path to your Google service credentials file. This is the same argument used by the upload action.

The Gradle plugin outputs the following links after the release upload. These links help you manage binaries and ensure that testers and other developers have the right release:

  • firebase_console_uri - A link to the Firebase console displaying a single release. You can share this link with other developers in your org.
  • testing_uri - A link to the release in the tester experience (Android native app) that lets testers view release notes and install the app onto their device. The tester needs access to the release in order to use the link.
  • binary_download_uri - A signed link that directly downloads and installs the app binary (APK or AAB file). The link expires after one hour.

Once you distribute your build, it becomes available in the App Distribution dashboard of the Firebase console for 150 days (five months). When the build is 30 days from expiring, an expiration notice appears in both the console and your tester's list of builds on their test device.

Testers who haven't been invited to test the app receive email invitations to get started, and existing testers receive email notifications that a new build is ready to test (read the tester set up guide for instructions on how to install the test app). You can monitor the status of each tester-whether they accepted the invitation and whether they downloaded the app-in the Firebase console.

Testers have 30 days to accept an invitation to test the app before it expires. When an invitation is 5 days from expiring, an expiration notice appears in the Firebase console next to the tester on a release. An invitation can be renewed by resending it using the drop-down menu on the tester row.

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