ঐচ্ছিক Firebase App Distribution iOS এবং Android SDK আপনাকে আপনার অ্যাপের নতুন বিল্ড ইনস্টল করার জন্য উপলভ্য হলে আপনার পরীক্ষকদের অ্যাপ-মধ্যস্থ সতর্কতা প্রদর্শন করতে দেয়। এই নির্দেশিকা থেকে জানতে পারবেন যে কীভাবে App Distribution iOS এবং Android SDK ব্যবহার করে আপনার পরীক্ষকদের জন্য নতুন বিল্ড অ্যালার্ট তৈরি ও কাস্টমাইজ করতে হয়।
শুরু করার আগে
আপনি আগে থেকে না করে থাকলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন।
ধাপ ১: App Distribution Tester API চালু করুন
Google Cloud কনসোল থেকে আপনার প্রোজেক্ট বেছে নিন।
Firebase App Testers API-এর অধীনে, চালু করুন বিকল্পে ক্লিক করুন।
ধাপ ২: আপনার অ্যাপে App Distribution যোগ করুন
ধাপ ২: আপনার অ্যাপে App Distribution যোগ করুন
App Distribution Android SDK-তে দুটি লাইব্রেরি আছে:
firebase-appdistribution-api- API-অনলি লাইব্রেরি, যা আপনি সব বিল্ড ভ্যারিয়েন্টে অন্তর্ভুক্ত করতে পারবেন।firebase-appdistribution- সম্পূর্ণ SDK প্রয়োগ (ঐচ্ছিক)।
API-অনলি লাইব্রেরি আপনার কোডকে SDK-তে কল করার অনুমতি দেয়। সম্পূর্ণ SDK প্রয়োগ করা না থাকলে, কলের কোনও প্রভাব থাকবে না।
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts বা
<project>/<app-module>/build.gradle) App Distribution Android SDK-এর জন্য ডিপেন্ডেন্সি ঘোষণা করুন। আপনার Play বিল্ডে সম্পূর্ণ SDK
ইমপ্লিমেন্টেশনের সেল্ফ-আপডেট কার্যকারিতা অন্তর্ভুক্ত করা এড়াতে,
সব বিল্ড ভেরিয়েন্টে শুধুমাত্র API লাইব্রেরি ডিপেন্ডেন্সি
যোগ করুন।
শুধুমাত্র প্রি-রিলিজ টেস্টিংয়ের জন্য তৈরি করা ভেরিয়েন্টে সম্পূর্ণ SDK ইমপ্লিমেন্টেশন
যোগ করুন।
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta21")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta21")
}
Kotlin-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? অক্টোবর ২০২৩ রিলিজ থেকে শুরু করে, Kotlin ও Java ডেভেলপাররা প্রধান লাইব্রেরি মডিউলের উপর নির্ভর করতে পারবেন (বিস্তারিত জানতে, এই উদ্যোগ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন)।
ধাপ ৩: অ্যাপ-মধ্যস্থ সতর্কতা কনফিগার করুন
App Distribution Android SDK আপনার টেস্টারদের জন্য অ্যাপ-মধ্যস্থ বিল্ড অ্যালার্ট সেট-আপ করার জন্য নিম্নলিখিত উপায়গুলি প্রদান করে:
- একটি প্রাথমিক সতর্কতা কনফিগারেশন যা আগে থেকে তৈরি অ্যাপ আপডেট এবং পরীক্ষকদের দেখানোর জন্য সাইন-ইন ডায়ালগের সাথে আসে।
- একটি উন্নত সতর্কতা কনফিগারেশন যা আপনাকে নিজের ইউজার ইন্টারফেস কাস্টমাইজ করতে দেয়।
আপনি প্রথমবার App Distribution Android SDK ব্যবহার করলে, আমরা প্রাথমিক কনফিগারেশন ব্যবহার করার সাজেশন দিই।
প্রাথমিক কনফিগারেশন
যেসব টেস্টার এখনও সতর্কতা চালু করেননি তাদের আগে থেকে তৈরি করা সতর্কতা চালু করার ডায়ালগ
দেখাতে updateIfNewReleaseAvailable ব্যবহার করুন এবং তারপরে নতুন
বিল্ড উপলভ্য আছে কিনা তা চেক করুন। কল করা হলে, পদ্ধতিটি নিম্নলিখিত ক্রমটি কার্যকর করে:
টেস্টার সতর্কতা চালু করেছেন কিনা তা চেক করে। টেস্টার এখনও সতর্কতা চালু না করে থাকলে, এই পদ্ধতি টেস্টারকে তার Google অ্যাকাউন্ট দিয়ে App Distribution-এ সাইন-ইন করার জন্য প্রম্পট করে।
টেস্টারের ইনস্টল করার জন্য নতুন উপলভ্য বিল্ড চেক করে।
টেস্টারকে আপডেট করার জন্য প্রম্পট করে আগে থেকে তৈরি করা সতর্কতা দেখায়।
নতুন বিল্ডটি Android App Bundle (AAB) হলে, আপডেট করার প্রসেস সম্পূর্ণ করতে, পরীক্ষককে Google Play-এ রিডাইরেক্ট করে।
নতুন বিল্ডটি Android অ্যাপ্লিকেশন প্যাকেজ (APK) হলে, SDK ব্যাকগ্রাউন্ডে নতুন বিল্ড ডাউনলোড করে এবং ডাউনলোড সম্পূর্ণ হলে টেস্টারকে ইনস্টল করার জন্য প্রম্পট করে। SDK
NotificationManagerব্যবহার করে ব্যবহারকারীকে ডাউনলোডের প্রগ্রেস সংক্রান্ত বিজ্ঞপ্তি পাঠায়। এছাড়াও,updateIfNewReleaseAvailableটাস্কেonProgressUpdateহ্যান্ডলার অ্যাটাচ করে আপনি নিজের প্রগ্রেস ইন্ডিকেটর যোগ করতে পারবেন।
আপনি অ্যাপের যেকোনও পয়েন্টে updateIfNewReleaseAvailable কল করতে পারবেন। যেমন, অ্যাপের মূল অ্যাক্টিভিটির onResume
পদ্ধতি চলাকালীন আপনি updateIfNewReleaseAvailable কল করতে পারবেন।
নিম্নলিখিত উদাহরণটি চেক করে যে টেস্টার সতর্কতা চালু করেছেন কিনা এবং নতুন বিল্ডে অ্যাক্সেস আছে কিনা। এইসব শর্ত পূরণ হলে, বিল্ড ইনস্টল করার জন্য উপলভ্য হলে একটি ডায়ালগ দেখানো হয়:
Kotlin
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
// (Optional) Handle errors.
if (e is FirebaseAppDistributionException) {
when (e.errorCode) {
Status.NOT_IMPLEMENTED -> {
// SDK did nothing. This is expected when building for Play.
}
else -> {
// Handle other errors.
}
}
}
}
Java
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener(updateProgress -> {
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
})
.addOnFailureListener(e -> {
// (Optional) Handle errors.
if (e instanceof FirebaseAppDistributionException) {
switch (((FirebaseAppDistributionException)e).getErrorCode()) {
case NOT_IMPLEMENTED:
// SDK did nothing. This is expected when building for Play.
break;
default:
// Handle other errors.
break;
}
}
});
উন্নত কনফিগারেশন
উন্নত সাইন-ইন কনফিগারেশন
signInTester এবং isTesterSignedIn পদ্ধতি আপনাকে আরও নমনীয়তা দেয়
আপনার টেস্টারের সাইন-ইন অভিজ্ঞতা কাস্টমাইজ করতে, যাতে টেস্টারের অভিজ্ঞতা হতে পারে
আপনার অ্যাপের লুক এবং অনুভূতির সাথে আরও ভাল মেলে।
নিম্নলিখিত উদাহরণটি চেক করে যে পরীক্ষক আগেই তার App Distribution পরীক্ষক অ্যাকাউন্টে সাইন-ইন করেছেন কিনা। এটি আপনাকে শুধুমাত্র সেইসব পরীক্ষকদের আপনার সাইন-ইন ইউজার ইন্টারফেস (UI) দেখানোর বিকল্প বেছে নিতে দেয় যারা এখনও সাইন-ইন করেননি। টেস্টার
সাইন-ইন করার পরে, আপনি updateIfNewReleaseAvailable-এ কল করে চেক করতে পারেন
যে টেস্টারের কাছে নতুন বিল্ডের অ্যাক্সেস আছে কিনা।
Kotlin
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener {
// Handle failed update.
}
}
Java
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn()) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn()) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener( e -> {
// Handle failed update.
});
}
আপনার সাইন-ইন UI থেকে, টেস্টার এগিয়ে যাওয়ার বিকল্প বেছে নিলে, signInTester() কল করুন:
Kotlin
firebaseAppDistribution.signInTester().addOnSuccessListener {
// Handle successful sign-in.
}.addOnFailureListener {
// Handle failed sign-in.
});
Java
firebaseAppDistribution.signInTester().addOnSuccessListener( unused -> {
// Handle successful sign-in.
}).addOnFailureListener(e -> {
// Handle failed sign-in.
});
উন্নত আপডেট কনফিগারেশন
checkForNewRelease এবং updateApp পদ্ধতি আপনাকে আরও নমনীয়তা দেয়
আপনার টেস্টারকে কখন আপডেট করার জন্য প্রম্পট করা হবে তা কাস্টমাইজ করুন। এছাড়াও, আপনি আগে থেকে তৈরি আপডেট ডায়ালগ এবং ডাউনলোড প্রগ্রেস ইন্ডিকেটর কাস্টমাইজ করতে পারেন যাতে সেগুলি আপনার অ্যাপের লুক ও ফিলের সাথে আরও ভালোভাবে ম্যাচ করে।
মনে রাখবেন, updateApp ডাউনলোড প্রগ্রেস ইন্ডিকেশন প্রদান করে না। এর অর্থ হল, আপনাকে NotificationManager, কোনও ধরনের অ্যাপ-মধ্যস্থ স্ট্যাটাস ডিসপ্লে বা অন্য কোনও
পদ্ধতি ব্যবহার করে
আপনার নিজস্ব প্রগ্রেস ইন্ডিকেশন প্রয়োগ করতে হবে।
নিম্নলিখিত উদাহরণটি নতুন রিলিজ উপলভ্য আছে কিনা তা চেক করে এবং তারপরে
কাস্টম UI দেখায়। checkForNewRelease এবং updateApp কল করার আগে, নিশ্চিত করুন যে পরীক্ষক উন্নত সাইন-ইন কনফিগারেশন ব্যবহার করে
সাইন-ইন করেছেন।
Kotlin
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener { release ->
if (release != null) {
// New release available. Start your update UI here.
}
}.addOnFailureListener {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
}
Java
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener(release -> {
if (release != null) {
// New release available. Start your update UI here.
}
}).addOnFailureListener(e -> {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
});
টেস্টার আপনার আপডেট UI থেকে আপডেট করার সিদ্ধান্ত নিলে, updateApp() কল করুন:
Kotlin
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
ধাপ ৪: আপনার ইমপ্লিমেন্টেশন তৈরি ও পরীক্ষা করুন
আপনার অ্যাপ তৈরি করুন এবং Firebase কনসোল ব্যবহার করে বিল্ড ডিস্ট্রিবিউট করে টেস্টারদের মাধ্যমে আপনার প্রয়োগ পরীক্ষা করুন।
সাধারণ সমস্যার ক্ষেত্রে সাহায্য পেতে App Distribution সমস্যার সমাধান সংক্রান্ত গাইড দেখুন, যেমন:
- টেস্টার অ্যাপ-মধ্যস্থ সতর্কতা পাচ্ছেন না
- টেস্টারকে একাধিকবার Google-এ সাইন-ইন করার জন্য প্রম্পট করা হচ্ছে