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

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

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

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

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

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

चरण 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 = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              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 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"
      
    • अतिरिक्त परीक्षकों को आमंत्रित करने या मौजूदा परीक्षकों को अपने फायरबेस प्रोजेक्ट से हटाने के लिए:

      ./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 दिन शेष होते हैं, तो रिलीज़ पर परीक्षक के बगल में फायरबेस कंसोल में एक समाप्ति सूचना दिखाई देती है। किसी आमंत्रण को परीक्षक पंक्ति पर ड्रॉप-डाउन मेनू का उपयोग करके पुनः भेजकर नवीनीकृत किया जा सकता है।

अगले कदम