Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

ग्रैडल का उपयोग करके परीक्षकों को Android ऐप्स वितरित करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

आप ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन का उपयोग करके अपने एंड्रॉइड बिल्ड प्रोसेस में ऐप डिस्ट्रीब्यूशन को एकीकृत कर सकते हैं। प्लगइन आपको अपने ऐप की build.gradle फ़ाइल में अपने परीक्षकों को निर्दिष्ट करने और नोट्स जारी करने देता है, जिससे आप अपने ऐप के विभिन्न बिल्ड प्रकारों और प्रकारों के लिए वितरण कॉन्फ़िगर कर सकते हैं।

यह मार्गदर्शिका बताती है कि ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन का उपयोग करके परीक्षकों को Android ऐप बंडल (AAB) कैसे वितरित किया जाए।

ऐप वितरण आपके द्वारा अपलोड किए गए एएबी को संसाधित करने और आपके परीक्षकों के डिवाइस कॉन्फ़िगरेशन के लिए अनुकूलित किए गए एपीके की सेवा के लिए Google Play की आंतरिक ऐप साझाकरण सेवा के साथ एकीकृत होता है। एएबी वितरित करने से आप निम्न कार्य कर सकते हैं:

  • अनुकूलित APK चलाएं (Google Play द्वारा प्रस्तुत) जो आपके परीक्षकों के उपकरणों के लिए अनुकूलित हैं।

  • डिवाइस-विशिष्ट मुद्दों को उजागर करें और डीबग करें।

  • टेस्ट ऐप बंडल फ़ीचर जैसे Play फ़ीचर डिलीवरी और Play एसेट डिलीवरी

  • अपने परीक्षकों के लिए डाउनलोड का आकार कम करें।

आवश्यक अनुमतियाँ

एएबी को ऐप वितरण में अपलोड करने के लिए, आपको अपने फायरबेस ऐप को Google Play में किसी ऐप से लिंक करना होगा। इन कार्यों को करने के लिए आपके पास आवश्यक स्तर की पहुंच होनी चाहिए।

यदि आपके पास आवश्यक Firebase एक्सेस नहीं है, तो आप Firebase प्रोजेक्ट स्वामी से Firebase कंसोल IAM सेटिंग के माध्यम से आपको लागू भूमिका सौंपने के लिए कह सकते हैं। अगर आपके पास अपने फायरबेस प्रोजेक्ट तक पहुंचने के बारे में प्रश्न हैं, जिसमें मालिक को ढूंढना या असाइन करना शामिल है, तो "फायरबेस प्रोजेक्ट्स की अनुमतियां और एक्सेस" अक्सर पूछे जाने वाले प्रश्नों की समीक्षा करें।

निम्न तालिका Google Play में एक Firebase ऐप को किसी ऐप से लिंक करने के साथ-साथ AAB को अपलोड करने पर लागू होती है।

फायरबेस कंसोल में कार्रवाई आवश्यक IAM अनुमति IAM भूमिका (भूमिकाएं) जिनमें डिफ़ॉल्ट रूप से आवश्यक अनुमतियां शामिल हैं अतिरिक्त आवश्यक भूमिका (भूमिकाएं)
किसी Firebase ऐप्लिकेशन को Google Play में ऐप्लिकेशन से लिंक करें firebase.playLinks.update निम्नलिखित भूमिकाओं में से एक: व्यवस्थापक के रूप में Google Play डेवलपर खाते तक पहुंच
ऐप वितरण में एएबी अपलोड करें firebaseappdistro.releases.update निम्नलिखित भूमिकाओं में से एक: —–

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

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

    अगर आप किसी अन्य Firebase उत्पादों का उपयोग नहीं कर रहे हैं, तो आपको केवल एक प्रोजेक्ट बनाना होगा और अपना ऐप पंजीकृत करना होगा। यदि आप अतिरिक्त उत्पादों का उपयोग करने का निर्णय लेते हैं, तो अपने Android प्रोजेक्ट में Firebase जोड़ें में सभी चरणों को पूरा करना सुनिश्चित करें।

  2. Google Play से Firebase लिंक बनाने और AAB अपलोड करने के लिए, सुनिश्चित करें कि आपका ऐप निम्नलिखित आवश्यकताओं को पूरा करता है:

    • Google Play में ऐप और फायरबेस एंड्रॉइड ऐप दोनों एक ही पैकेज नाम का उपयोग करके पंजीकृत हैं।

    • Google Play में ऐप को ऐप डैशबोर्ड पर सेट किया गया है और इसे Google Play ट्रैक (आंतरिक परीक्षण, बंद परीक्षण, खुला परीक्षण, या उत्पादन) में से एक में वितरित किया जाता है।

    • Google Play में ऐप की समीक्षा पूरी हो गई है और ऐप प्रकाशित हो गया है। यदि ऐप स्थिति कॉलम निम्न में से कोई एक स्थिति प्रदर्शित करता है तो आपका ऐप प्रकाशित होता है: आंतरिक परीक्षण (ड्राफ़्ट आंतरिक परीक्षण नहीं), बंद परीक्षण, खुला परीक्षण, या उत्पादन।

  3. अपने फायरबेस एंड्रॉइड ऐप को अपने Google Play डेवलपर खाते से लिंक करें:

    1. फायरबेस कंसोल में, अपनी प्रोजेक्ट सेटिंग्स पर जाएं, फिर इंटीग्रेशन टैब चुनें।

    2. Google Play कार्ड पर, लिंक पर क्लिक करें।
      यदि आपके पास पहले से Google Play के लिंक हैं, तो इसके बजाय प्रबंधित करें पर क्लिक करें।

    3. ऐप वितरण एकीकरण को सक्षम करने के लिए ऑन-स्क्रीन निर्देशों का पालन करें और चुनें कि कौन से फायरबेस एंड्रॉइड ऐप को Google Play से लिंक करना है।

    Google Play से लिंक करने के बारे में और जानें।

चरण 1. अपना Android प्रोजेक्ट सेट करें

  1. अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल ( <project>/build.gradle या <project>/build.gradle.kts ) में, ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन को बिल्डस्क्रिप्ट डिपेंडेंसी के रूप में जोड़ें:

    ग्रूवी

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath 'com.android.tools.build:gradle:7.2.0'
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath 'com.google.gms:google-services:4.3.14'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
      }
    }
    

    Kotlin

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath("com.android.tools.build:gradle:7.2.0")
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath("com.google.gms:google-services:4.3.14")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:3.1.1")
      }
    }
    
  2. अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर <project>/<app-module>/build.gradle या <project>/<app-module>/build.gradle.kts ) में, ऐप डिस्ट्रीब्यूशन ग्रेडल प्लगइन जोड़ें:

    ग्रूवी

    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
    

    Kotlin

    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    
  3. यदि आप किसी कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो निम्न जावा सिस्टम गुण जोड़ें जो ऐप वितरण को आपके वितरणों को Firebase पर अपलोड करने में सक्षम बनाता है:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

चरण 2. फायरबेस के साथ प्रमाणित करें

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

चरण 3. अपने वितरण गुणों को कॉन्फ़िगर करें

अपने मॉड्यूल (ऐप-स्तर) ग्रेड फ़ाइल (आमतौर पर <project>/<app-module>/build.gradle या <project>/<app-module>/build.gradle.kts ) में, कम से कम जोड़कर ऐप वितरण को कॉन्फ़िगर करें एक firebaseAppDistribution अनुभाग।

उदाहरण के लिए, release बिल्ड को परीक्षकों को वितरित करने के लिए, इन निर्देशों का पालन करें::

ग्रूवी

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

आप बिल्ड प्रकारों और उत्पाद स्वादों के लिए ऐप वितरण को कॉन्फ़िगर कर सकते हैं।

उदाहरण के लिए, "डेमो" और "पूर्ण" उत्पाद स्वादों में debug और release बिल्ड वितरित करने के लिए, इन निर्देशों का पालन करें:

ग्रूवी

android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}

वितरण को कॉन्फ़िगर करने के लिए निम्नलिखित मापदंडों का उपयोग करें:

ऐप डिस्ट्रीब्यूशन बिल्ड पैरामीटर्स
appId

आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी. केवल तभी आवश्यक है जब आपके पास Google Services Gradle प्लगइन स्थापित न हो। आप ऐप आईडी को google-services.json फ़ाइल में या सामान्य सेटिंग पृष्ठ पर Firebase कंसोल में पा सकते हैं। आपकी build.gradle फ़ाइल का मान google-services प्लगइन से मान आउटपुट को ओवरराइड करता है।

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

आपके सेवा खाते का पथ निजी कुंजी JSON फ़ाइल। केवल तभी आवश्यक है जब आप सेवा खाता प्रमाणीकरण का उपयोग करते हैं।

artifactType

आपके ऐप का फ़ाइल प्रकार निर्दिष्ट करता है। "AAB" या "APK" एपीके" पर सेट किया जा सकता है।

artifactPath

आप जिस एपीके या एएबी फ़ाइल को अपलोड करना चाहते हैं, उसका पूर्ण पथ।

releaseNotes या releaseNotesFile

इस निर्माण के लिए नोट जारी करें।

आप या तो रिलीज़ नोट्स को सीधे निर्दिष्ट कर सकते हैं या एक सादा पाठ फ़ाइल का पथ निर्दिष्ट कर सकते हैं।

testers या testersFile

जिन परीक्षकों को आप वितरित करना चाहते हैं उनके ईमेल पते बिल्ड हो जाते हैं।

आप परीक्षकों को ईमेल पतों की अल्पविराम से अलग की गई सूची के रूप में निर्दिष्ट कर सकते हैं:

testers="ali@example.com, bri@example.com, cal@example.com"

या, आप ईमेल पतों की अल्पविराम से अलग की गई सूची वाली फ़ाइल का पथ निर्दिष्ट कर सकते हैं:

testersFile="/path/to/testers.txt"
groups या groupsFile

आप जिन परीक्षक समूहों को वितरित करना चाहते हैं, वे बनते हैं ( परीक्षकों को प्रबंधित करें देखें)। समूह का उपयोग करके निर्दिष्ट किया जाता है समूह उपनाम , जिसे आप फ़ायरबेस ऐप डिस्ट्रीब्यूशन कंसोल में टेस्टर्स टैब में पा सकते हैं।

आप समूहों को समूह उपनामों की अल्पविराम से अलग की गई सूची के रूप में निर्दिष्ट कर सकते हैं:

groups="qa-team, android-testers"

या, आप समूह उपनामों की अल्पविराम से अलग की गई सूची वाली फ़ाइल का पथ निर्दिष्ट कर सकते हैं:

groupsFile="/path/to/tester-groups.txt"
stacktrace

उपयोगकर्ता अपवादों के लिए स्टैकट्रेस प्रिंट करता है। डीबगिंग समस्याओं के दौरान यह सहायक होता है।

चरण 4. अपना ऐप परीक्षकों को वितरित करें

  1. अंत में, अपने परीक्षण ऐप को पैकेज करने और परीक्षकों को आमंत्रित करने के लिए, लक्ष्य बनाएं BUILD-VARIANT VARIANT और appDistributionUpload BUILD-VARIANT अपने प्रोजेक्ट के ग्रैडल रैपर के साथ, जहां BUILD-VARIANT वैकल्पिक उत्पाद स्वाद और बिल्ड प्रकार है जिसे आपने पिछले चरण में कॉन्फ़िगर किया था। उत्पाद फ्लेवर के बारे में अधिक जानकारी के लिए, बिल्ड वेरिएंट कॉन्फ़िगर करें देखें।

    उदाहरण के लिए, release बिल्ड संस्करण का उपयोग करके अपने ऐप को वितरित करने के लिए, निम्न आदेश चलाएँ:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    या, यदि आपने अपने Google खाते से प्रमाणित किया है और अपनी ग्रैडल बिल्ड फ़ाइल में क्रेडेंशियल प्रदान नहीं किया है, तो FIREBASE_TOKEN चर शामिल करें:

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. आप --<property-name>=<property-value> के रूप में कमांड लाइन तर्क पारित करके अपनी build.gradle फ़ाइल में सेट किए गए मानों को ओवरराइड भी कर सकते हैं। उदाहरण के लिए:

    • डिबग बिल्ड को ऐप डिस्ट्रीब्यूशन में अपलोड करने के लिए:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
      
    • अपने Firebase प्रोजेक्ट से अतिरिक्त परीक्षकों को आमंत्रित करने या मौजूदा परीक्षकों को निकालने के लिए:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      आपके Firebase प्रोजेक्ट में परीक्षक जोड़े जाने के बाद, आप उन्हें अलग-अलग रिलीज़ में जोड़ सकते हैं। निकाले गए परीक्षकों के पास अब आपके प्रोजेक्ट में रिलीज़ की एक्सेस नहीं होगी, लेकिन वे कुछ समय के लिए आपकी रिलीज़ तक पहुंच बनाए रख सकते हैं।

    आप --emails के बजाय --emails --file="/path/to/testers.txt" का उपयोग करके भी परीक्षक निर्दिष्ट कर सकते हैं।

    appDistributionAddTesters और appDistributionRemoveTesters कार्य भी निम्नलिखित तर्कों को स्वीकार करते हैं:

    • प्रोजेक्टनंबर: आपका projectNumber प्रोजेक्ट नंबर।

    • serviceCredentialsFile : आपकी Google सेवा क्रेडेंशियल फ़ाइल का पथ। यह वही तर्क है जिसका उपयोग अपलोड कार्रवाई द्वारा किया जाता है।

एक बार जब आप अपना निर्माण वितरित कर देते हैं, तो यह 150 दिनों (पांच महीने) के लिए फायरबेस कंसोल के ऐप वितरण डैशबोर्ड में उपलब्ध हो जाता है। जब बिल्ड की समय-सीमा समाप्त होने के 30 दिन बाद होते हैं, तो कंसोल और आपके टेस्टर की उनके परीक्षण डिवाइस पर बिल्ड की सूची दोनों में एक समाप्ति सूचना दिखाई देती है।

जिन परीक्षकों को ऐप का परीक्षण करने के लिए आमंत्रित नहीं किया गया है, उन्हें आरंभ करने के लिए ईमेल आमंत्रण प्राप्त होते हैं, और मौजूदा परीक्षकों को ईमेल सूचनाएं प्राप्त होती हैं कि एक नया बिल्ड परीक्षण के लिए तैयार है (परीक्षण ऐप को कैसे स्थापित करें, इस पर निर्देशों के लिए परीक्षक सेट अप मार्गदर्शिका पढ़ें)। आप प्रत्येक परीक्षक की स्थिति की निगरानी कर सकते हैं-क्या उन्होंने आमंत्रण स्वीकार किया है और क्या उन्होंने ऐप डाउनलोड किया है-Firebase कंसोल में।

परीक्षकों के पास ऐप की समय-सीमा समाप्त होने से पहले उसका परीक्षण करने का आमंत्रण स्वीकार करने के लिए 30 दिन का समय होता है। जब किसी आमंत्रण की समय-सीमा समाप्त होने के 5 दिन होते हैं, तो रिलीज़ पर परीक्षक के बगल में Firebase कंसोल में एक समाप्ति सूचना दिखाई देती है। परीक्षक पंक्ति पर ड्रॉप-डाउन मेनू का उपयोग करके इसे फिर से भेजकर एक आमंत्रण का नवीनीकरण किया जा सकता है।

अगले कदम