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


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

शुरू करने से पहले

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

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

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

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

दूसरा चरण: अपने ऐप्लिकेशन में App Distribution जोड़ना

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

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

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

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

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

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

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

तीसरा चरण: इन-ऐप्लिकेशन चेतावनियां कॉन्फ़िगर करना

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

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

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

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

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

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

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

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

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

    अगर नया बिल्ड, Android ऐप्लिकेशन पैकेज (एपीके) है, तो एसडीके टूल, नए बिल्ड को बैकग्राउंड में डाउनलोड करता है. साथ ही, डाउनलोड पूरा होने पर, टेस्टर को इंस्टॉल करने के लिए कहता है. एसडीके टूल, 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 टेस्टर खाते में पहले से साइन इन किया है या नहीं. इससे, आपके पास सिर्फ़ उन टेस्टर को साइन-इन का यूज़र इंटरफ़ेस (यूआई) दिखाने का विकल्प होता है जिन्होंने अब तक साइन इन नहीं किया है. टेस्टर के साइन इन करने के बाद, 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 में साइन इन करने के लिए कहा जा रहा है