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 Android SDK में दो लाइब्रेरी होती हैं:
firebase-appdistribution-api
- यह सिर्फ़ एपीआई वाली लाइब्रेरी है. इसे सभी बिल्ड वैरिएंट में शामिल किया जा सकता है.firebase-appdistribution
- SDK टूल को पूरी तरह से लागू करना (ज़रूरी नहीं).
एपीआई-ओनली लाइब्रेरी की मदद से, आपका कोड एसडीके को कॉल कर सकता है. अगर SDK टूल को पूरी तरह से लागू नहीं किया गया है, तो कॉल का कोई असर नहीं होगा.
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts
या <project>/<app-module>/build.gradle
) में, App Distribution Android SDK के लिए डिपेंडेंसी का एलान करें. Play बिल्ड में, एसडीके के पूरे वर्शन को लागू करने की सुविधा को शामिल होने से रोकने के लिए, सभी बिल्ड वैरिएंट में, सिर्फ़ एपीआई वाली लाइब्रेरी की डिपेंडेंसी जोड़ें.
एसडीके को सिर्फ़ उन वैरिएंट में पूरी तरह से लागू करें जिन्हें सिर्फ़ रिलीज़ से पहले की टेस्टिंग के लिए बनाया गया है.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta16")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta16")
}
क्या आपको Kotlin के लिए कोई खास लाइब्रेरी मॉड्यूल चाहिए? अक्टूबर 2023 के रिलीज़ वर्शन से, Kotlin और Java, दोनों के डेवलपर मुख्य लाइब्रेरी मॉड्यूल पर भरोसा कर सकते हैं. ज़्यादा जानकारी के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले सवाल देखें.
तीसरा चरण: ऐप्लिकेशन में दिखने वाली सूचनाएं कॉन्फ़िगर करना
App Distribution Android SDK, टेस्टर के लिए ऐप्लिकेशन में बिल्ड से जुड़ी सूचनाएं सेट अप करने के ये तरीके उपलब्ध कराता है:
- यह बुनियादी सूचना कॉन्फ़िगरेशन है. इसमें ऐप्लिकेशन अपडेट करने और साइन-इन करने के लिए, पहले से बने डायलॉग बॉक्स शामिल होते हैं. ये डायलॉग बॉक्स, टेस्टर को दिखाए जाते हैं.
- सूचना कॉन्फ़िगरेशन की ऐडवांस सुविधा, जिसकी मदद से उपयोगकर्ता इंटरफ़ेस को अपनी पसंद के मुताबिक बनाया जा सकता है.
अगर आपने पहली बार App Distribution Android SDK का इस्तेमाल किया है, तो हमारा सुझाव है कि आप बेसिक कॉन्फ़िगरेशन का इस्तेमाल करें.
बुनियादी कॉन्फ़िगरेशन
updateIfNewReleaseAvailable
का इस्तेमाल करके, टेस्टर को सूचनाएं चालू करने का पहले से बना डायलॉग दिखाएं. यह डायलॉग उन टेस्टर को दिखाया जाएगा जिन्होंने अब तक सूचनाएं चालू नहीं की हैं. इसके बाद, देखें कि कोई नया बिल्ड उपलब्ध है या नहीं. कॉल किए जाने पर, यह तरीका इस क्रम में काम करता है:
इस कुकी से यह पता चलता है कि टेस्टर ने सूचनाएं पाने की सुविधा चालू की है या नहीं. अगर टेस्टर ने अब तक सूचनाएं पाने की सुविधा चालू नहीं की है, तो इस तरीके से टेस्टर को App Distribution में अपने Google खाते से साइन इन करने के लिए कहा जाता है.
यह टेस्टर के लिए, नई उपलब्ध बिल्ड की जांच करता है, ताकि टेस्टर उन्हें इंस्टॉल कर सके.
यह पहले से बनी हुई एक सूचना दिखाता है, जिसमें टेस्टर को अपडेट करने के लिए कहा जाता है.
अगर नई बिल्ड, Android ऐप्लिकेशन बंडल (एएबी) है, तो टेस्टर को Google Play पर रीडायरेक्ट करता है, ताकि वह अपडेट करने की प्रोसेस पूरी कर सके.
अगर नई बिल्ड, Android ऐप्लिकेशन पैकेज (APK) है, तो SDK टूल बैकग्राउंड में नई बिल्ड डाउनलोड करता है. इसके बाद, डाउनलोड पूरा होने पर टेस्टर को इसे इंस्टॉल करने के लिए कहता है. SDK टूल,
NotificationManager
का इस्तेमाल करके उपयोगकर्ता को डाउनलोड की प्रोग्रेस की सूचनाएं भेजता है.updateIfNewReleaseAvailable
Task में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 टेस्टर खाते में पहले से साइन इन किया है या नहीं. इससे, साइन-इन करने के लिए उपलब्ध यूज़र इंटरफ़ेस (यूआई) को सिर्फ़ उन टेस्टर को दिखाने का विकल्प चुना जा सकता है जिन्होंने अब तक साइन इन नहीं किया है. टेस्टर के साइन इन करने के बाद, 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.
});
}
साइन-इन यूज़र इंटरफ़ेस (यूआई) से, जब टेस्टर आगे बढ़ने का विकल्प चुनता है, तब 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
का इस्तेमाल करके, प्रोग्रेस इंडिकेटर को खुद लागू करना होगा. इसके अलावा, ऐप्लिकेशन में स्टेटस दिखाने की सुविधा या कोई अन्य तरीका भी इस्तेमाल किया जा सकता है.
यहां दिए गए उदाहरण में, यह देखा जाता है कि कोई नई रिलीज़ उपलब्ध है या नहीं. इसके बाद, कस्टम यूज़र इंटरफ़ेस (यूआई) दिखाया जाता है. 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.
});
जब टेस्टर, अपडेट के यूज़र इंटरफ़ेस (यूआई) से अपडेट करने की प्रोसेस जारी रखने का विकल्प चुनता है, तब 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 में साइन इन करने के लिए कहा जा रहा है