Gradle का इस्तेमाल करके, जांच करने वाले लोगों को Android ऐप्लिकेशन उपलब्ध कराना

Android की बिल्ड प्रोसेस में App Distribution को Android बिल्ड प्रोसेस में इंटिग्रेट करने के लिए, यहां दिया गया तरीका अपनाएं: App Distribution Gradle प्लग इन. प्लगिन आपको अपने टेस्टर और अपने ऐप्लिकेशन की ग्रेडल फ़ाइल में रिलीज़ नोट की सुविधा का इस्तेमाल करें. इससे डिस्ट्रिब्यूशन को कॉन्फ़िगर किया जा सकता है के लिए, डाइग्नोस्टिक टूल का इस्तेमाल करें.

इस गाइड में बताया गया है कि App Distribution Gradle प्लग इन.

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

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

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

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

  1. आपकी रूट-लेवल (प्रोजेक्ट-लेवल) की Gradle फ़ाइल में (<project>/build.gradle.kts या <project>/build.gradle), जोड़ें डिपेंडेंसी के तौर पर App Distribution 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.2" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "5.0.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.2' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '5.0.0' apply false
    }
    
  2. आपके मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर) में <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle), App Distribution 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. अगर आप किसी कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो इन्हें जोड़ें Java सिस्टम प्रॉपर्टी जो ऐप्लिकेशन डिस्ट्रिब्यूशन को Firebase पर आपके डिस्ट्रिब्यूशन को अपलोड करने की सुविधा देता है:

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

दूसरा चरण. Firebase की मदद से पुष्टि करें

Gradle प्लग इन का इस्तेमाल करने से पहले, आपको अपने Firebase प्रोजेक्ट को इनमें से किसी एक तरीके से प्रोजेक्ट किया जा सकता है. डिफ़ॉल्ट रूप से, Gradle प्लग इन अगर पुष्टि करने का कोई दूसरा तरीका नहीं है, तो Firebase सीएलआई से क्रेडेंशियल खोजता है का तरीका इस्तेमाल किया जाता है.

चरण 3. डिस्ट्रिब्यूशन की अपनी प्रॉपर्टी कॉन्फ़िगर करना

आपके मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर) में <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle), App Distribution को यहां जोड़कर कॉन्फ़िगर करें कम से कम एक 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"
          }
      }
  }

  // ...
}

App Distribution को इनके लिए कॉन्फ़िगर किया जा सकता है: बिल्ड टाइप और प्रॉडक्ट के फ़्लेवर के बारे में ज़्यादा जानें.

उदाहरण के लिए, 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"
          }
      }
  }

  // ...
}

डिस्ट्रिब्यूशन को कॉन्फ़िगर करने के लिए, इन पैरामीटर का इस्तेमाल करें:

App Distribution बिल्ड पैरामीटर
appId

आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी. सिर्फ़ तब ज़रूरी है, जब आपके पास Google सेवाएं Gradle प्लग इन इंस्टॉल किया गया. ऐप्लिकेशन आईडी यहां देखा जा सकता है: google-services.json फ़ाइल या Firebase कंसोल सामान्य सेटिंग वाला पेज. आपके build.gradle में मौजूद मान फ़ाइल, google-services के मान आउटपुट को बदल देती है प्लग इन.

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

आपके सेवा खाते की निजी कुंजी वाली JSON फ़ाइल का पाथ. सिर्फ़ ज़रूरी है अगर आप सेवा खाते की पुष्टि करने की सुविधा का इस्तेमाल करते हैं.

artifactType

यह आपके ऐप्लिकेशन का फ़ाइल टाइप बताता है. इस पर सेट किया जा सकता है "AAB" या "APK".

artifactPath

उस APK या एएबी फ़ाइल का ऐब्सलूट पाथ जिसे आपको अपलोड करना है.

releaseNotes या releaseNotesFile

इस बिल्ड के लिए प्रॉडक्ट की जानकारी वाला दस्तावेज़.

आपके पास सीधे तौर पर रिलीज़ नोट बताने का विकल्प होता है. इसके अलावा, सादे टेक्स्ट वाली फ़ाइल का पाथ.

testers या testersFile

उन टेस्टर के ईमेल पते जिनके बिल्ड डिस्ट्रिब्यूट करने हैं से.

टेस्टर की जानकारी, कॉमा लगाकर अलग की गई ईमेल की सूची के तौर पर दी जा सकती है पते:

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

इसके अलावा, ऐसी फ़ाइल का पाथ डाला जा सकता है जिसमें कॉमा लगाकर अलग किया गया हो ईमेल पतों की सूची:

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

टेस्टर के वे ग्रुप जिनमें आपको बिल्ड डिस्ट्रिब्यूट करने हैं (देखें टेस्टर मैनेज करें). ग्रुप की जानकारी ग्रुप के उपनामों का इस्तेमाल करके दी जाती है. इससे आपको ये काम करने में मदद मिल सकती है Firebase के टेस्टर टैब में खोजें App Distribution कंसोल.

आपके पास ग्रुप की जानकारी को, कॉमा लगाकर अलग किए गए ग्रुप की सूची के तौर पर सेट करने का विकल्प होता है उपनाम:

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

एसिंक्रोनस तरीके से ऑटोमेटेड टेस्ट चलाएं. अपने-आप होने वाले टेस्ट के नतीजों के लिए, Firebase कंसोल पर जाएं.

stacktrace

यह उपयोगकर्ता अपवादों के लिए स्टैकट्रेस को प्रिंट करता है. यह तब मददगार होता है, जब डीबग करने से जुड़ी समस्याएं.

चौथा चरण. टेस्टर को अपना ऐप्लिकेशन उपलब्ध कराना

  1. आखिर में, अपने टेस्ट ऐप्लिकेशन को पैकेज करने और टेस्टर को न्योता भेजने के लिए, टारगेट सेट करें BUILD-VARIANT और appDistributionUploadBUILD-VARIANT को अपने प्रोजेक्ट का Gradle रैपर, जहां BUILD-VARIANT वैकल्पिक है प्रॉडक्ट फ़्लेवर और बिल्ड टाइप को आपने पिछले चरण में कॉन्फ़िगर किया है. प्रॉडक्ट के फ़्लेवर के बारे में ज़्यादा जानकारी के लिए, देखें बिल्ड वैरिएंट कॉन्फ़िगर करें.

    उदाहरण के लिए, release बिल्ड वैरिएंट का इस्तेमाल करके अपना ऐप्लिकेशन उपलब्ध कराने के लिए, निम्न आदेश:

    ./gradlew assembleRelease appDistributionUploadRelease
    

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

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

    • App Distribution पर डीबग बिल्ड अपलोड करने के लिए:

      ./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 प्रोजेक्ट में जोड़ने के बाद, उसे इसमें जोड़ा जा सकता है रिलीज़ कर सकें. जिन टेस्टर को हटाया गया है वे अब इन्हें ऐक्सेस नहीं कर पाएंगे रिलीज़ होने के बावजूद, अपनी रिलीज़ का ऐक्सेस बनाए रख सकते हैं. को हाइलाइट किया जाता है.

    इसके बजाय, --file="/path/to/testers.txt" का इस्तेमाल करके भी टेस्टर तय किए जा सकते हैं --emails.

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

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

    • serviceCredentialsFile: आपकी Google सेवा क्रेडेंशियल फ़ाइल का पाथ. अपलोड ऐक्शन में इसी तर्क का इस्तेमाल किया जाता है.

रिलीज़ अपलोड होने के बाद, Gradle प्लग इन, इन लिंक का आउटपुट देता है. ये लिंक की मदद से बाइनरी मैनेज की जा सकती हैं. साथ ही, यह पक्का किया जा सकता है कि टेस्टर और अन्य डेवलपर को इसकी रिलीज़ सही होनी चाहिए:

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

बिल्ड डिस्ट्रिब्यूट करने के बाद, यह Firebase कंसोल का App Distribution डैशबोर्ड, 150 दिन (पांच महीने) के लिए. जब बिल्ड की समयसीमा खत्म होने से 30 दिन का समय बीत जाता है, तो दोनों में समयसीमा खत्म होने की सूचना दिखती है कंसोल और आपके टेस्टर के टेस्ट डिवाइस पर बिल्ड की सूची.

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

टेस्टर को 30 दिनों के अंदर, ऐप्लिकेशन की जांच करने का न्योता स्वीकार करना होगा. इसके बाद, ऐप्लिकेशन की समयसीमा खत्म हो जाएगी. जब किसी न्योते की समयसीमा खत्म होने के पांच दिन बाद की समयसीमा खत्म होने की सूचना होती है, तो रिलीज़ पर टेस्टर के बगल में मौजूद Firebase कंसोल. न्योता टेस्टर की लाइन पर मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, उसे फिर से भेजकर रिन्यू किया जा सकता है.

अगले चरण