获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

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

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

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

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

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

चरण 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="APK"
              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 = "APK"
              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 assembleRelease appDistributionUploadRelease
    

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

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

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

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • अपने 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 कंसोल में एक समाप्ति सूचना दिखाई देती है। परीक्षक पंक्ति पर ड्रॉप-डाउन मेनू का उपयोग करके इसे फिर से भेजकर एक आमंत्रण का नवीनीकरण किया जा सकता है।

अगले कदम