আপনি App Distribution গ্রেডল প্লাগইন ব্যবহার করে আপনার অ্যান্ড্রয়েড বিল্ড প্রক্রিয়ায় App Distribution একীভূত করতে পারেন। প্লাগইনটি আপনাকে আপনার অ্যাপের গ্রেডল ফাইলে আপনার পরীক্ষকদের নির্দিষ্ট করতে এবং নোট প্রকাশ করতে দেয়, আপনাকে আপনার অ্যাপের বিভিন্ন বিল্ড প্রকার এবং ভেরিয়েন্টের জন্য ডিস্ট্রিবিউশন কনফিগার করতে দেয়।
App Distribution গ্রেডল প্লাগইন ব্যবহার করে পরীক্ষকদের কাছে কীভাবে APK বিতরণ করবেন এই নির্দেশিকাটি বর্ণনা করে।
আপনি শুরু করার আগে
যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন ।
আপনি যদি অন্য কোনো ফায়ারবেস পণ্য ব্যবহার না করেন, তাহলে আপনাকে শুধুমাত্র একটি প্রকল্প তৈরি করতে হবে এবং আপনার অ্যাপ নিবন্ধন করতে হবে। যাইহোক, আপনি যদি ভবিষ্যতে অতিরিক্ত পণ্য ব্যবহার করার সিদ্ধান্ত নেন, তাহলে উপরে লিঙ্ক করা পৃষ্ঠার সমস্ত ধাপ সম্পূর্ণ করতে ভুলবেন না।
ধাপ 1. আপনার Android প্রকল্প সেট আপ করুন
আপনার রুট-লেভেল (প্রকল্প-স্তরের) গ্রেডল ফাইলে (
<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 }
আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত
<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' }
আপনি যদি একটি কর্পোরেট প্রক্সি বা ফায়ারওয়ালের পিছনে থাকেন, তাহলে নিম্নলিখিত জাভা সিস্টেম প্রপার্টি যোগ করুন যা App Distribution ফায়ারবেসে আপনার ডিস্ট্রিবিউশন আপলোড করতে সক্ষম করে:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
ধাপ 2. ফায়ারবেস দিয়ে প্রমাণীকরণ করুন
আপনি Gradle প্লাগইন ব্যবহার করার আগে, আপনাকে প্রথমে নিম্নলিখিত উপায়ে আপনার Firebase প্রকল্পের সাথে প্রমাণীকরণ করতে হবে। ডিফল্টরূপে, Gradle প্লাগইন Firebase CLI থেকে শংসাপত্রের সন্ধান করে যদি অন্য কোনো প্রমাণীকরণ পদ্ধতি ব্যবহার না করা হয়।
একটি পরিষেবা অ্যাকাউন্টের সাথে প্রমাণীকরণ আপনাকে আপনার ক্রমাগত ইন্টিগ্রেশন (CI) সিস্টেমের সাথে প্লাগইনটি নমনীয়ভাবে ব্যবহার করতে দেয়। পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি সরবরাহ করার দুটি উপায় রয়েছে:
- আপনার সার্ভিস অ্যাকাউন্ট কী ফাইল
build.gradle
এ পাস করুন। আপনার বিল্ড এনভায়রনমেন্টে ইতিমধ্যে আপনার পরিষেবা অ্যাকাউন্ট কী ফাইল থাকলে আপনি এই পদ্ধতিটিকে সুবিধাজনক মনে করতে পারেন। - আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের দিকে নির্দেশ করতে পরিবেশ পরিবর্তনশীল
GOOGLE_APPLICATION_CREDENTIALS
সেট করুন৷ অন্য Google পরিষেবার (যেমন, Google Cloud ) জন্য আপনার যদি ইতিমধ্যেই অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) কনফিগার করা থাকে তবে আপনি এই পদ্ধতিটি পছন্দ করতে পারেন।
পরিষেবা অ্যাকাউন্ট শংসাপত্র ব্যবহার করে প্রমাণীকরণ করতে:
- Google Cloud কনসোলে, আপনার প্রকল্প নির্বাচন করুন এবং একটি নতুন পরিষেবা অ্যাকাউন্ট তৈরি করুন৷
- Firebase App Distribution অ্যাডমিন ভূমিকা যোগ করুন।
- একটি ব্যক্তিগত json কী তৈরি করুন এবং আপনার বিল্ড এনভায়রনমেন্টে অ্যাক্সেসযোগ্য অবস্থানে কীটি সরান। এই ফাইলটিকে কোথাও নিরাপদ রাখতে ভুলবেন না , কারণ এটি আপনার ফায়ারবেস প্রোজেক্টে App Distribution অ্যাডমিনিস্ট্রেটরকে অ্যাক্সেস দেয়।
- আপনি যদি 20 সেপ্টেম্বর, 2019 এর পরে আপনার অ্যাপ তৈরি করেন তবে এই ধাপটি এড়িয়ে যান: Google APIs কনসোলে, Firebase App Distribution API সক্ষম করুন। অনুরোধ করা হলে, আপনার ফায়ারবেস প্রকল্পের মতো একই নামের প্রকল্পটি নির্বাচন করুন।
আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি সরবরাহ করুন বা সনাক্ত করুন:
- Gradle আপনার পরিষেবা অ্যাকাউন্ট কী পাস করতে, আপনার
build.gradle
ফাইলে, ব্যক্তিগত কী JSON ফাইলে সম্পত্তিserviceCredentialsFile
সেট করুন। ADC-এর সাথে আপনার শংসাপত্রগুলি সনাক্ত করতে, ব্যক্তিগত কী JSON ফাইলের জন্য পরিবেশ পরিবর্তনশীল
GOOGLE_APPLICATION_CREDENTIALS
পাথে সেট করুন৷ যেমন:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
ADC এর সাথে প্রমাণীকরণের বিষয়ে আরও তথ্যের জন্য, আপনার আবেদনে প্রমাণপত্র সরবরাহ করা পড়ুন।
- 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 = "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 পরিষেবা গ্রেডল প্লাগইন ইনস্টল না থাকে তবেই এটি প্রয়োজনীয়৷ আপনি 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;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. পরীক্ষকদের কাছে আপনার অ্যাপ বিতরণ করুন
অবশেষে, আপনার পরীক্ষার অ্যাপ প্যাকেজ করতে এবং পরীক্ষকদের আমন্ত্রণ জানাতে, লক্ষ্যগুলি তৈরি করুন
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
আপনি
--<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"
একবার আপনার ফায়ারবেস প্রোজেক্টে একজন পরীক্ষক যোগ করা হলে, আপনি সেগুলিকে পৃথক রিলিজে যোগ করতে পারেন। যে পরীক্ষকদের সরিয়ে দেওয়া হয়েছে তারা আর আপনার প্রোজেক্টের রিলিজগুলিতে অ্যাক্সেস পাবে না, কিন্তু তারপরও কিছু সময়ের জন্য আপনার রিলিজগুলিতে অ্যাক্সেস বজায় রাখতে পারে।
আপনি
--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 কনসোলে একটি মেয়াদ শেষ হওয়ার বিজ্ঞপ্তি প্রদর্শিত হয়৷ পরীক্ষকের সারিতে ড্রপ-ডাউন মেনু ব্যবহার করে এটিকে পুনরায় পাঠানোর মাধ্যমে একটি আমন্ত্রণ পুনর্নবীকরণ করা যেতে পারে।
পরবর্তী পদক্ষেপ
পরীক্ষকদের জন্য আপনার অ্যাপ সম্পর্কে প্রতিক্রিয়া পাঠানো সহজ করতে অ্যাপ-মধ্যস্থ প্রতিক্রিয়া প্রয়োগ করুন (স্ক্রিনশট সহ)।
আপনার অ্যাপের নতুন বিল্ড ইনস্টল করার জন্য উপলব্ধ হলে আপনার পরীক্ষকদের কাছে কীভাবে অ্যাপ-মধ্যস্থ সতর্কতা প্রদর্শন করবেন তা শিখুন।
ধাপে ধাপে কীভাবে অ্যাপ বান্ডেল রিলিজ বিতরণ করতে হয় তা জানতে Android অ্যাপ বান্ডেল কোডল্যাবে যান।
CI/CD ব্যবহার করে QA পরীক্ষকদের কাছে অ্যান্ড্রয়েড অ্যাপ বিতরণের সর্বোত্তম অনুশীলন শিখুন।