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

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

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

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

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

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

  • प्ले फ़ीचर डिलीवरी और प्ले एसेट डिलीवरी जैसी ऐप बंडल सुविधाओं का परीक्षण करें।

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

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

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

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

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

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

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

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

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

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

    • Google Play में ऐप और Firebase Android ऐप दोनों एक ही पैकेज नाम का उपयोग करके पंजीकृत हैं।

    • 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.kts या <project>/build.gradle ) में, ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन को एक निर्भरता के रूप में जोड़ें:

    Kotlin

    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.1" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.2.0" apply false
    }
    

    Groovy

    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.1' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.2.0' apply false
    }
    
  2. अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle ), ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन जोड़ें:

    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")
    }
    

    Groovy

    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. यदि आप कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो निम्नलिखित जावा सिस्टम प्रॉपर्टी जोड़ें जो ऐप डिस्ट्रीब्यूशन को आपके वितरण को फ़ायरबेस पर अपलोड करने में सक्षम बनाता है:

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

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

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

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

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

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

Kotlin

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

android {

  // ...

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

  // ...
}

Groovy

android {

  // ...

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

  // ...
}

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

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

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"
          }
      }
  }

  // ...
}

Groovy

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"
          }
      }
  }

  // ...
}

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

ऐप वितरण बिल्ड पैरामीटर
appId

आपके ऐप की फायरबेस ऐप आईडी। केवल तभी आवश्यक है जब आपके पास Google Services Gradle प्लगइन स्थापित नहीं है। आप ऐप आईडी को google-services.json फ़ाइल में या सामान्य सेटिंग्स पृष्ठ पर फ़ायरबेस कंसोल में पा सकते हैं। आपकी 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"
testDevices या testDevicesFile

निम्नलिखित वितरण प्रकार स्वचालित परीक्षक बीटा सुविधा का हिस्सा हैं।

जिन परीक्षण उपकरणों को आप वितरित करना चाहते हैं उनका निर्माण होता है ( स्वचालित परीक्षण देखें)।

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

testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

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

testDevicesFile="/path/to/testDevices.txt"
testUsername

स्वचालित लॉगिन के लिए उपयोगकर्ता नाम स्वचालित परीक्षणों के दौरान उपयोग किया जाएगा।

testPassword या testPasswordFile

स्वचालित परीक्षणों के दौरान स्वचालित लॉगिन के लिए पासवर्ड का उपयोग किया जाएगा।

या, आप पासवर्ड वाली सादे पाठ फ़ाइल का पथ निर्दिष्ट कर सकते हैं:

testPasswordFile="/path/to/testPassword.txt"
testUsernameResource

स्वचालित परीक्षणों के दौरान उपयोग किए जाने वाले स्वचालित लॉगिन के लिए उपयोगकर्ता नाम फ़ील्ड के लिए संसाधन नाम।

testPasswordResource

स्वचालित परीक्षणों के दौरान उपयोग किए जाने वाले स्वचालित लॉगिन के लिए पासवर्ड फ़ील्ड के लिए संसाधन नाम।

testNonBlocking

स्वचालित परीक्षण अतुल्यकालिक रूप से चलाएँ। स्वचालित परीक्षण परिणामों के लिए फायरबेस कंसोल पर जाएँ।

stacktrace

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

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

  1. अंत में, अपने परीक्षण ऐप को पैकेज करने और परीक्षकों को आमंत्रित करने के लिए, अपने प्रोजेक्ट के ग्रैडल रैपर के साथ लक्ष्य BUILD-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"
      
    • अतिरिक्त परीक्षकों को आमंत्रित करने या मौजूदा परीक्षकों को अपने फायरबेस प्रोजेक्ट से हटाने के लिए:

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

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

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

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

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

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

ग्रैडल प्लगइन रिलीज़ अपलोड के बाद निम्नलिखित लिंक आउटपुट करता है। ये लिंक आपको बायनेरिज़ प्रबंधित करने में मदद करते हैं और यह सुनिश्चित करते हैं कि परीक्षकों और अन्य डेवलपर्स के पास सही रिलीज़ है:

  • firebase_console_uri - एकल रिलीज प्रदर्शित करने वाले फायरबेस कंसोल का एक लिंक। आप इस लिंक को अपने संगठन के अन्य डेवलपर्स के साथ साझा कर सकते हैं।
  • testing_uri - परीक्षक अनुभव (एंड्रॉइड मूल ऐप) में रिलीज़ का एक लिंक जो परीक्षकों को रिलीज़ नोट्स देखने और ऐप को उनके डिवाइस पर इंस्टॉल करने देता है। लिंक का उपयोग करने के लिए परीक्षक को रिलीज़ तक पहुंच की आवश्यकता होती है।
  • binary_download_uri - एक हस्ताक्षरित लिंक जो सीधे ऐप बाइनरी (एपीके या एएबी फ़ाइल) को डाउनलोड और इंस्टॉल करता है। लिंक एक घंटे के बाद समाप्त हो जाता है.

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

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

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

अगले कदम