नए बिल्ड के बारे में परीक्षकों को सूचित करें

वैकल्पिक फायरबेस ऐप वितरण आईओएस और एंड्रॉइड एसडीके आपको अपने परीक्षकों को इन-ऐप अलर्ट प्रदर्शित करने देते हैं जब आपके ऐप के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध होते हैं। यह मार्गदर्शिका बताती है कि अपने परीक्षकों के लिए नए बिल्ड अलर्ट बनाने और अनुकूलित करने के लिए ऐप वितरण आईओएस और एंड्रॉइड एसडीके का उपयोग कैसे करें।

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

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

चरण 1 : ऐप वितरण परीक्षक एपीआई सक्षम करें

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

  2. फायरबेस ऐप टेस्टर्स एपीआई के तहत, सक्षम करें पर क्लिक करें।

चरण 2 : अपने ऐप में ऐप वितरण जोड़ें

ऐप वितरण एंड्रॉइड एसडीके में दो लाइब्रेरी शामिल हैं:

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

एपीआई-केवल लाइब्रेरी आपके कोड को एसडीके पर कॉल करने देती है। यदि पूर्ण एसडीके कार्यान्वयन मौजूद नहीं है तो कॉल पर कोई प्रभाव नहीं पड़ेगा।

अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में ऐप वितरण एंड्रॉइड एसडीके के लिए निर्भरता की घोषणा करें (आमतौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle ). अपने प्ले बिल्ड में पूर्ण एसडीके कार्यान्वयन की स्व-अद्यतन कार्यक्षमता को शामिल करने से बचने के लिए, सभी बिल्ड वेरिएंट में केवल एपीआई लाइब्रेरी निर्भरता जोड़ें। पूर्ण एसडीके कार्यान्वयन को केवल उन वेरिएंट में जोड़ें जो विशेष रूप से प्री-रिलीज़ परीक्षण के लिए हैं।

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

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

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

चरण 3 : इन-ऐप अलर्ट कॉन्फ़िगर करें

ऐप वितरण एंड्रॉइड एसडीके आपके परीक्षकों के लिए इन-ऐप बिल्ड अलर्ट सेट करने के निम्नलिखित तरीके प्रदान करता है:

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

यदि आप पहली बार ऐप वितरण एंड्रॉइड एसडीके का उपयोग कर रहे हैं, तो हम बुनियादी कॉन्फ़िगरेशन का उपयोग करने की सलाह देते हैं।

बुनियादी विन्यास

जिन परीक्षकों ने अभी तक अलर्ट सक्षम नहीं किया है, उनके लिए पूर्व-निर्मित सक्षम अलर्ट संवाद प्रदर्शित करने के लिए updateIfNewReleaseAvailable का उपयोग करें, और फिर जांचें कि क्या कोई नया बिल्ड उपलब्ध है। जब बुलाया जाता है, तो विधि निम्नलिखित अनुक्रम लागू करती है:

  1. जाँचता है कि क्या किसी परीक्षक ने अलर्ट सक्षम किया है। यदि परीक्षक ने अभी तक अलर्ट सक्षम नहीं किया है, तो विधि परीक्षक को अपने Google खाते से ऐप वितरण में साइन इन करने के लिए संकेत देती है।

  2. परीक्षक को स्थापित करने के लिए नए उपलब्ध बिल्ड की जाँच करता है।

  3. एक पूर्व-निर्मित अलर्ट प्रदर्शित करता है जो परीक्षक को अद्यतन करने के लिए प्रेरित करता है।

  4. यदि नया बिल्ड एक एंड्रॉइड ऐप बंडल (एएबी) है, तो अपडेट प्रक्रिया को पूरा करने के लिए परीक्षक को Google Play पर रीडायरेक्ट करता है।

    यदि नया बिल्ड एक एंड्रॉइड एप्लिकेशन पैककेज (एपीके) है, तो एसडीके पृष्ठभूमि में नए बिल्ड को डाउनलोड करता है और डाउनलोड पूरा होने पर परीक्षक को इंस्टॉल करने के लिए संकेत देता है। 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 विधियां आपको अपने परीक्षक के साइन-इन अनुभव को अनुकूलित करने के लिए अधिक लचीलापन प्रदान करती हैं, ताकि परीक्षक का अनुभव आपके ऐप के स्वरूप और अनुभव से बेहतर ढंग से मेल खा सके।

निम्नलिखित उदाहरण यह जांचता है कि क्या परीक्षक ने पहले ही अपने ऐप वितरण परीक्षक खाते में साइन इन कर लिया है। इससे आप अपना साइन-इन यूजर इंटरफेस (यूआई) केवल उन परीक्षकों को प्रदर्शित करना चुन सकते हैं जिन्होंने अभी तक साइन इन नहीं किया है। परीक्षक के साइन इन करने के बाद, आप 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.
    });

चरण 4 : अपना कार्यान्वयन बनाएं और परीक्षण करें

अपना ऐप बनाएं और फायरबेस कंसोल का उपयोग करके परीक्षकों को बिल्ड वितरित करके अपने कार्यान्वयन का परीक्षण करें।

सामान्य समस्याओं में सहायता के लिए ऐप वितरण समस्या निवारण मार्गदर्शिका पर जाएँ, जैसे:

  • परीक्षक को इन-ऐप अलर्ट प्राप्त नहीं हो रहे हैं
  • परीक्षक को Google में एक से अधिक बार साइन इन करने के लिए प्रेरित किया जा रहा है