टेस्टर को नए बिल्ड के बारे में सूचना दें

Firebase App Distribution iOS और Android SDK के वैकल्पिक टूल की मदद से, टेस्टर को इन-ऐप्लिकेशन अलर्ट दिखाने की सुविधा मिलती है. इससे पता चलता है कि आपके ऐप्लिकेशन का नया बिल्ड जब इंस्टॉल करने के लिए उपलब्ध होगा. इस गाइड में यह बताया गया है कि ऐप्लिकेशन की जांच करने वाले लोगों के लिए नई बिल्ड सूचनाएं बनाने और उन्हें पसंद के मुताबिक बनाने के लिए, App Distribution iOS और Android SDK टूल का इस्तेमाल कैसे किया जा सकता है.

वेब कंटेनर इंस्टॉल करने से पहले

अगर आपने पहले से Firebase को नहीं जोड़ा है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

पहला चरण: App Distribution Tester API चालू करना

  1. Google Cloud Console में अपना प्रोजेक्ट चुनें.

  2. Firebase App Testers API में जाकर, चालू करें पर क्लिक करें.

दूसरा चरण: अपने ऐप्लिकेशन में ऐप्लिकेशन डिस्ट्रिब्यूशन की सुविधा जोड़ना

App Distribution Android SDK टूल में दो लाइब्रेरी होती हैं:

  • firebase-appdistribution-api - सिर्फ़ एपीआई वाली लाइब्रेरी, जिसे बिल्ड के सभी वैरिएंट में शामिल किया जा सकता है.
  • firebase-appdistribution - SDK टूल को पूरी तरह लागू करना (ज़रूरी नहीं).

सिर्फ़ एपीआई लाइब्रेरी की मदद से, आपका कोड SDK टूल को कॉल कर सकता है. अगर SDK टूल को पूरी तरह से लागू नहीं किया गया है, तो कॉल पर कोई असर नहीं पड़ेगा.

अपने मॉड्यूल (ऐप्लिकेशन लेवल) की Gradle फ़ाइल (आम तौर पर, <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में App Distribution Android SDK के लिए डिपेंडेंसी का एलान करें. अपने Play बिल्ड में SDK टूल को लागू करने की सेल्फ़-अपडेट करने की सुविधा को शामिल करने से बचने के लिए, सभी बिल्ड वैरिएंट में सिर्फ़ एपीआई वाली लाइब्रेरी डिपेंडेंसी जोड़ें. SDK टूल को सिर्फ़ उन वैरिएंट में लागू करें जिन्हें खास तौर पर रिलीज़ से पहले की टेस्टिंग के लिए बनाया गया है.

dependencies {
    // ADD the API-only library to all variants
    implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta13")

    // ADD the full SDK implementation to the "beta" variant only (example)
    betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta13")
}

Kotlin की मदद से खास लाइब्रेरी मॉड्यूल की तलाश कर रहे हैं? अक्टूबर 2023 की रिलीज़ की शुरुआत से, Kotlin और Java डेवलपर, दोनों ही मुख्य लाइब्रेरी मॉड्यूल पर निर्भर हो सकते हैं (ज़्यादा जानकारी के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले सवाल देखें).

तीसरा चरण: ऐप्लिकेशन में मिलने वाली सूचनाएं कॉन्फ़िगर करें

App Distribution Android SDK टूल की मदद से आपके टेस्टर के लिए, इन-ऐप्लिकेशन बिल्ड अलर्ट सेट अप करने के ये तरीके बताए गए हैं:

  • एक बुनियादी सूचना कॉन्फ़िगरेशन, जो टेस्टर को दिखाने के लिए, पहले से बने ऐप्लिकेशन अपडेट और साइन-इन डायलॉग के साथ आता है.
  • यह एक बेहतर सूचना कॉन्फ़िगरेशन है. इसकी मदद से, अपना यूज़र इंटरफ़ेस अपनी पसंद के मुताबिक बनाया जा सकता है.

अगर App Distribution Android SDK का पहली बार इस्तेमाल किया जा रहा है, तो हमारा सुझाव है कि आप बेसिक कॉन्फ़िगरेशन का इस्तेमाल करें.

बुनियादी कॉन्फ़िगरेशन

जिन टेस्टर ने अभी तक सूचना पाने की सुविधा चालू नहीं की है उन्हें सूचना वाला डायलॉग बॉक्स दिखाने के लिए, updateIfNewReleaseAvailable का इस्तेमाल करें. इसके बाद, देखें कि नया बिल्ड उपलब्ध है या नहीं. कॉल करने पर, यह तरीका नीचे दिया गया क्रम लागू करता है:

  1. यह जांचता है कि क्या किसी टेस्टर ने सूचनाएं चालू की हैं. अगर टेस्टर ने अभी तक सूचनाएं चालू नहीं की हैं, तो इस तरीके में टेस्टर को अपने Google खाते से App Distribution में साइन इन करने के लिए कहा जाएगा.

  2. टेस्टर को इंस्टॉल करने के लिए, उपलब्ध नए बिल्ड की जांच करता है.

  3. पहले से मौजूद सूचना दिखाती है, जो टेस्टर को अपडेट करने के लिए कहती है.

  4. अगर नया बिल्ड Android ऐप्लिकेशन बंडल (एएबी) है, तो टेस्टर को अपडेट की प्रोसेस पूरी करने के लिए Google Play पर रीडायरेक्ट कर दिया जाता है.

    अगर नया बिल्ड Android ऐप्लिकेशन PacKage (APK) है, तो SDK टूल, नए बिल्ड को बैकग्राउंड में डाउनलोड करता है. साथ ही, डाउनलोड पूरा होने पर टेस्टर को इंस्टॉल करने का निर्देश देता है. SDK टूल, NotificationManager का इस्तेमाल करके उपयोगकर्ता को डाउनलोड की स्थिति से जुड़ी सूचनाएं भेजता है. आपके पास updateIfNewReleaseAvailable टास्क में onProgressUpdate हैंडलर अटैच करके, प्रोग्रेस इंडिकेटर जोड़ने का विकल्प भी है.

आपके पास अपने ऐप्लिकेशन में कभी भी updateIfNewReleaseAvailable को कॉल करने की सुविधा होती है. उदाहरण के लिए, ऐप्लिकेशन की मुख्य गतिविधि के onResume तरीके के दौरान updateIfNewReleaseAvailable को कॉल किया जा सकता है.

यहां दिए गए उदाहरण में यह जांच की गई है कि टेस्टर ने चेतावनियां चालू की हैं या नहीं. साथ ही, उसके पास नए बिल्ड का ऐक्सेस है या नहीं. अगर ये शर्तें पूरी होती हैं, तो बिल्ड के इंस्टॉल करने के लिए उपलब्ध होने पर एक डायलॉग दिखता है:

Kotlin+KTX

// 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+KTX

// 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+KTX

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+KTX

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+KTX

firebaseAppDistribution.updateApp()
    .addOnProgressListener { updateState ->
      // Use updateState to show update progress.
    }

Java

firebaseAppDistribution.updateApp()
    .addOnProgressListener(updateState -> {
      // Use updateState to show update progress.
    });

चौथा चरण: लागू करने की प्रोसेस बनाएं और उसकी जांच करें

अपना ऐप्लिकेशन बनाएं और Firebase कंसोल का इस्तेमाल करके, टेस्टर को बिल्ड डिस्ट्रिब्यूट करके लागू करने की प्रोसेस की जांच करें.

आम समस्याओं को हल करने में मदद पाने के लिए, ऐप्लिकेशन डिस्ट्रिब्यूशन से जुड़ी समस्या हल करने वाली गाइड पर जाएं. जैसे:

  • टेस्टर को ऐप्लिकेशन में सूचनाएं नहीं मिल रही हैं
  • टेस्टर को एक से ज़्यादा बार Google में साइन इन करने के लिए कहा जा रहा है