App Distribution Gradle প্লাগ-ইন ব্যবহার করে আপনার Android বিল্ড প্রসেসে App Distribution ইন্টিগ্রেট করতে পারবেন। প্লাগ-ইন আপনাকে অ্যাপের Gradle ফাইলে পরীক্ষক এবং রিলিজ নোট নির্দিষ্ট করতে দেয়, যার ফলে আপনি অ্যাপের বিভিন্ন বিল্ড টাইপ এবং ভ্যারিয়েন্টের জন্য ডিস্ট্রিবিউশন কনফিগার করতে পারেন।
এই নির্দেশিকা থেকে জানতে পারবেন যে কীভাবে App Distribution Gradle প্লাগ-ইন ব্যবহার করে টেস্টারদের APK ডিস্ট্রিবিউট করতে হয়।
শুরু করার আগে
এখনও যোগ না করে থাকলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন।
আপনি অন্য কোনও Firebase প্রোডাক্ট ব্যবহার না করলে, আপনাকে শুধু একটি প্রোজেক্ট তৈরি করে আপনার অ্যাপ রেজিস্টার করতে হবে। তবে, ভবিষ্যতে আপনি অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নিলে, উপরে লিঙ্ক করা পৃষ্ঠার সব ধাপ সম্পূর্ণ করতে ভুলবেন না।
Firebase কনসোলের App Distribution পৃষ্ঠা খুলুন। প্রম্পট করা হলে আপনার Firebase প্রোজেক্ট বেছে নিন, অ্যাপ সুইচার ব্যবহার করে আপনার অ্যাপ বেছে নিন এবং শুরু করুন বিকল্পে ক্লিক করুন।
ধাপ ১. আপনার Android প্রোজেক্ট সেট-আপ করা
আপনার রুট-লেভেল (প্রোজেক্ট-লেভেল) Gradle ফাইলে (
<project>/build.gradle.ktsঅথবা<project>/build.gradle), ডিপেন্ডেন্সি হিসেবে App Distribution 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.5.0" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.3.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.5.0' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.3.0' apply false }
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsবা<project>/<app-module>/build.gradle), App Distribution 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' }
আপনি কর্পোরেট প্রক্সি বা ফায়ারওয়ালের পিছনে থাকলে, নিম্নলিখিত Java সিস্টেম প্রপার্টি যোগ করুন যা App Distribution-কে Firebase-এ আপনার ডিস্ট্রিবিউশন আপলোড করার অনুমতি দেয়:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
ধাপ ২. Firebase-এর মাধ্যমে যাচাই করুন
Gradle প্লাগ-ইন ব্যবহার করার আগে, আপনাকে প্রথমে নিম্নলিখিত উপায়ে আপনার Firebase প্রোজেক্টের মাধ্যমে যাচাইকরণ করতে হবে। ডিফল্ট হিসেবে, অন্য কোনও যাচাইকরণ পদ্ধতি ব্যবহার করা না হলে, Gradle প্লাগ-ইন Firebase CLI থেকে ক্রেডেনশিয়াল খোঁজে।
ধাপ ৩. আপনার ডিস্ট্রিবিউশন প্রপার্টি কনফিগার করুন
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত
<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 প্লাগ-ইন ইনস্টল করা না থাকলে
তবেই এটি প্রয়োজন। আপনি অ্যাপ আইডি
appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
আপনার পরিষেবা অ্যাকাউন্টের ব্যক্তিগত কী JSON ফাইলের পাথ। আপনি সার্ভিস অ্যাকাউন্ট যাচাইকরণ ব্যবহার করলে তবেই প্রয়োজন। |
artifactType
|
আপনার অ্যাপের ফাইলের ধরন নির্দিষ্ট করে। |
artifactPath
|
আপনি যে APK বা AAB ফাইল আপলোড করতে চান সেটির অ্যাবসোলিউট পাথ। |
releaseNotes বা releaseNotesFile |
এই বিল্ডের জন্য রিলিজ নোট। আপনি সরাসরি রিলিজ নোট বা প্লেন টেক্সট ফাইলের পাথ উল্লেখ করতে পারেন। |
testers বা testersFile |
আপনি যে পরীক্ষকদের বিল্ড ডিস্ট্রিবিউট করতে চান তাদের ইমেল আইডি। আপনি কমা দিয়ে আলাদা করা ইমেল আইডির তালিকা হিসেবে টেস্টারদের উল্লেখ করতে পারেন: testers="ali@example.com, bri@example.com, cal@example.com" অথবা, আপনি কমা দিয়ে আলাদা করা ইমেল আইডির তালিকা সহ ফাইলের পাথ উল্লেখ করতে পারেন: testersFile="/path/to/testers.txt" |
groups বা groupsFile |
আপনি যে পরীক্ষক গ্রুপে বিল্ড ডিস্ট্রিবিউট করতে চান (পরীক্ষক ম্যানেজ করুন দেখুন)।
আপনি কমা দিয়ে আলাদা করা গ্রুপের উপনামের তালিকা হিসেবে গ্রুপ নির্দিষ্ট করতে পারেন: groups="qa-team, android-testers" অথবা, আপনি কমা দ্বারা আলাদা করা গ্রুপের উপনামের তালিকা সহ ফাইলের পাথ উল্লেখ করতে পারেন: groupsFile="/path/to/tester-groups.txt" |
testDevices বা testDevicesFile |
আপনি যে টেস্ট ডিভাইসে অ্যাপ টেস্ট করার এজেন্ট টেস্ট চালাতে চান। আপনি সেমিকোলন দিয়ে আলাদা করা ডিভাইস স্পেসিফিকেশনের তালিকা হিসেবে টেস্ট ডিভাইস উল্লেখ করতে পারেন: testDevices="model=shiba,version=34,locale=en,orientation=portrait" অথবা, আপনি সেমিকোলন দ্বারা আলাদা করা ডিভাইসের স্পেসিফিকেশনের তালিকা সহ ফাইলের পাথ উল্লেখ করতে পারেন: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
অ্যাপ টেস্ট করার এজেন্ট টেস্টের সময় অটোমেটিক লগ-ইন করার জন্য ব্যবহারকারীর নাম। |
testPassword বা testPasswordFile |
অ্যাপ টেস্ট করার এজেন্ট টেস্টের সময় অটোমেটিক লগ-ইনের জন্য পাসওয়ার্ড ব্যবহার করা হবে। অথবা, আপনি পাসওয়ার্ড সহ প্লেন টেক্সট ফাইলের পাথ উল্লেখ করতে পারেন: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
অ্যাপ টেস্ট করার এজেন্ট টেস্টের সময় অটোমেটিক লগ-ইন করার জন্য ব্যবহারকারীর নাম ফিল্ডের রিসোর্স নাম। |
testPasswordResource |
অ্যাপ টেস্ট করার এজেন্ট টেস্টের সময় অটোমেটিক লগ-ইন করার জন্য পাসওয়ার্ড ফিল্ডের রিসোর্সের নাম। |
testNonBlocking |
অ্যাপ টেস্ট করার এজেন্ট টেস্ট চালানোর সময় সেট করা হলে, কমান্ডটি টেস্ট শুরু করবে এবং তারপরে সেগুলি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করার পরিবর্তে অবিলম্বে ফিরে আসবে। পরীক্ষার ফলাফল দেখতে, Firebase কনসোলে যান। এই ফ্ল্যাগ সেট করা না থাকলে, টেস্ট সম্পূর্ণ না হওয়া পর্যন্ত কমান্ড ব্লক করা থাকবে এবং কোনও টেস্টে সমস্যা হলে, ব্যর্থতার কোড সহ বন্ধ হয়ে যাবে। |
resultsBucket
|
একটি কাস্টম Google Cloud Storage (GCS) বাকেট যেখানে পরীক্ষার ফলাফল স্টোর করা হয়। ফাঁকা থাকলে, ডিফল্ট বাকেট ব্যবহার করা হয়। বিলিং চালু আছে এমন কোনও প্রজেক্টের মালিকানায় বাকেটটি থাকতে হবে এবং বাকেট উল্লেখ করলে ব্যবহৃত স্টোরেজের জন্য বিলিং চার্জ করা হবে। |
stacktrace
|
ব্যবহারকারীর ব্যতিক্রমের জন্য স্ট্যাকট্রেস প্রিন্ট করে। সমস্যা ডিবাগ করার সময় এটি সহায়ক হয়। |
ধাপ ৪. টেস্টারদের মধ্যে আপনার অ্যাপ ডিস্ট্রিবিউট করুন
শেষে, আপনার টেস্ট অ্যাপ প্যাকেজ করতে এবং টেস্টারদের আমন্ত্রণ জানাতে, আপনার প্রোজেক্টের Gradle র্যাপার ব্যবহার করে
BUILD-VARIANTএবংappDistributionUploadBUILD-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
এছাড়াও, আপনি
--<property-name>=<property-value>-এর মতো কমান্ড লাইন আর্গুমেন্ট পাস করে আপনারbuild.gradleফাইলে সেট করা ভ্যালু ওভাররাইড করতে পারবেন। যেমন: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 পরিষেবা ক্রেডেনশিয়াল ফাইলের পাথ। আপলোড অ্যাকশনের ক্ষেত্রেও একই আর্গুমেন্ট ব্যবহার করা হয়।
রিলিজ আপলোড করার পরে Gradle প্লাগ-ইন নিম্নলিখিত লিঙ্কগুলি আউটপুট করে। এইসব লিঙ্ক আপনাকে বাইনারি ম্যানেজ করতে এবং টেস্টার ও অন্যান্য ডেভেলপারদের কাছে সঠিক রিলিজ আছে কিনা তা নিশ্চিত করতে সাহায্য করে:
firebase_console_uri- Firebase কনসোলের একটি লিঙ্ক যা একটি রিলিজ দেখায়। আপনার সংস্থার অন্যান্য ডেভেলপারদের সাথে আপনি এই লিঙ্ক শেয়ার করতে পারবেন।testing_uri- টেস্টার অভিজ্ঞতায় (বিল্ট-ইন Android অ্যাপ) রিলিজের লিঙ্ক, যা টেস্টারদের রিলিজ নোট দেখতে এবং তাদের ডিভাইসে অ্যাপ ইনস্টল করতে দেয়। লিঙ্ক ব্যবহার করার জন্য টেস্টারকে রিলিজ অ্যাক্সেস করতে হবে।binary_download_uri- একটি স্বাক্ষরিত লিঙ্ক যা সরাসরি অ্যাপ বাইনারি (APK বা AAB ফাইল) ডাউনলোড এবং ইনস্টল করে। এক ঘণ্টা পরে লিঙ্কের মেয়াদ শেষ হয়ে যায়।
আপনার বিল্ড ডিস্ট্রিবিউট করার পরে, এটি Firebase কনসোলের App Distribution ড্যাশবোর্ডে ১৫০ দিন (পাঁচ মাস) পর্যন্ত উপলভ্য থাকে। বিল্ডের মেয়াদ শেষ হতে ৩০ দিন বাকি থাকলে, কনসোল এবং টেস্টারের ডিভাইসে বিল্ডের তালিকায় মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি দেখানো হয়।
যেসব টেস্টারকে অ্যাপ টেস্ট করার জন্য আমন্ত্রণ জানানো হয়নি, তাদের শুরু করার জন্য ইমেল আমন্ত্রণ পাঠানো হয় এবং বর্তমান টেস্টারদের ইমেল বিজ্ঞপ্তি পাঠানো হয় যে টেস্ট করার জন্য নতুন বিল্ড রেডি আছে (টেস্ট অ্যাপ কীভাবে ইনস্টল করতে হবে সেই সংক্রান্ত নির্দেশাবলীর জন্য টেস্টার সেট-আপ করার নির্দেশিকা পড়ুন)। আপনি Firebase কনসোলে প্রতিটি পরীক্ষকের স্ট্যাটাস মনিটর করতে পারবেন-তারা আমন্ত্রণ গ্রহণ করেছেন কিনা এবং তারা অ্যাপটি ডাউনলোড করেছেন কিনা।
অ্যাপ পরীক্ষা করার জন্য আমন্ত্রণ গ্রহণ করতে পরীক্ষকদের কাছে ৩০ দিন সময় থাকে, তারপরে এটির মেয়াদ শেষ হয়ে যায়। আমন্ত্রণের মেয়াদ শেষ হতে ৫ দিন বাকি থাকলে, রিলিজের সময় পরীক্ষকের পাশে Firebase কনসোলে মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি দেখানো হয়। টেস্টার সারিতে ড্রপ-ডাউন মেনু ব্যবহার করে আমন্ত্রণ আবার পাঠিয়ে সেটি রিনিউ করা যেতে পারে।
পরবর্তী ধাপ
আপনার অ্যাপ সম্পর্কে পরীক্ষকদের থেকে মতামত (স্ক্রিনশট সহ) সংগ্রহ করতে অ্যাপ-মধ্যস্থ মতামত প্রয়োগ করুন।
আপনার অ্যাপের নতুন বিল্ড ইনস্টল করার জন্য উপলভ্য হলে, কীভাবে আপনার টেস্টারদের অ্যাপ-মধ্যস্থ সতর্কতা দেখাবেন তা জানুন।
ধাপে ধাপে কীভাবে অ্যাপ বান্ডেল রিলিজ ডিস্ট্রিবিউট করতে হয় তা জানতে Android App Bundle কোডল্যাব দেখুন।
CI/CD ব্যবহার করে QA টেস্টারদের Android অ্যাপ ডিস্ট্রিবিউট করার পেশাদার পদ্ধতি সম্পর্কে জানুন।