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


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

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

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

पहला चरण: App Distribution Tester API को चालू करें

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

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

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

दूसरा चरण: अपने ऐप्लिकेशन में 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 बिल्ड में, SDK टूल के पूरे सेटअप की अपने-आप अपडेट होने की सुविधा को शामिल करने से बचने के लिए, सिर्फ़ एपीआई वाली लाइब्रेरी डिपेंडेंसी को सभी बिल्ड वैरिएंट में जोड़ें. 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 के लिए खास तौर पर बनाया गया लाइब्रेरी मॉड्यूल चाहिए? अक्टूबर 2023 की रिलीज़ से, Kotlin और Java, दोनों के डेवलपर मुख्य लाइब्रेरी मॉड्यूल पर निर्भर हो सकते हैं. ज़्यादा जानकारी के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले सवाल देखें.

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

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

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

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

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

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

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

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

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

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

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