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


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

इस गाइड में, टेस्टर के लिए Android ऐप्लिकेशन बंडल (एएबी) डिस्ट्रिब्यूट करने का तरीका बताया गया है App Distribution Gradle प्लग इन का इस्तेमाल करके.

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

  • आपके डिवाइस के लिए ऑप्टिमाइज़ किए गए, ऑप्टिमाइज़ किए गए ऐसे APK चलाएं जो Google Play उपलब्ध कराता है टेस्टर की डिवाइस.

  • डिवाइस से जुड़ी समस्याओं का पता लगाना और उन्हें डीबग करना.

  • ऐप्लिकेशन बंडल की सुविधाओं की जांच करें, जैसे कि Play की सुविधाओं की डिलीवरी और Play ऐसेट डिलीवरी शामिल है.

  • अपने ऐप्लिकेशन के टेस्टर के लिए, डाउनलोड का साइज़ कम करें.

ज़रूरी अनुमतियां

App Distribution में एएबी अपलोड करने के लिए, आपको अपने Firebase ऐप्लिकेशन को किसी ऐप्लिकेशन से लिंक करना होगा Google Play में. आपके पास ज़रूरी ऐक्सेस होना चाहिए इन कार्रवाइयों को करने के लिए.

अगर आपके पास Firebase का ज़रूरी ऐक्सेस नहीं है, तो आप Firebase प्रोजेक्ट से ऐसा करने का अनुरोध कर सकते हैं इसके ज़रिए, आपको लागू होने वाली भूमिका असाइन करेगा: Firebase कंसोल की IAM सेटिंग. अगर Firebase प्रोजेक्ट को ऐक्सेस करने के बारे में आपका कोई सवाल है, तो असाइन करने या ढूंढने के लिए, "Firebase प्रोजेक्ट की अनुमतियां और ऐक्सेस" अक्सर पूछे जाने वाले सवाल.

नीचे दी गई टेबल, Firebase ऐप्लिकेशन को किसी ऐप्लिकेशन से लिंक करने पर लागू होती है Google Play और एएबी अपलोड कर रहा है.

Firebase कंसोल में कार्रवाई आईएएम की ज़रूरी अनुमति आईएएम की ऐसी भूमिकाएं जिनमें इनके लिए ज़रूरी अनुमतियां शामिल होती हैं डिफ़ॉल्ट अन्य ज़रूरी भूमिका
Google Play में, Firebase के ऐप्लिकेशन को किसी ऐप्लिकेशन से लिंक करना firebase.playLinks.update इनमें से कोई एक भूमिका: Google Play के डेवलपर खाते को इस तौर पर ऐक्सेस करें: एडमिन
App Distribution पर एएबी अपलोड करें firebaseappdistro.releases.update इनमें से कोई एक भूमिका: ––

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

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

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

  2. Google Play से Firebase लिंक बनाने और एएबी अपलोड करने के लिए, पक्का करें कि आपका ऐप्लिकेशन इन ज़रूरी शर्तों को पूरा करता है:

    • Google Play और Firebase का Android ऐप्लिकेशन, दोनों रजिस्टर किए गए हों पैकेज नाम का ही इस्तेमाल करें.

    • Google Play में मौजूद ऐप्लिकेशन को ऐप्लिकेशन पर सेट अप किया गया हो डैशबोर्ड और उसे Google Play के किसी एक ट्रैक (इंटरनल टेस्टिंग, क्लोज़्ड टेस्टिंग, ओपन टेस्टिंग या प्रोडक्शन).

    • Google Play पर ऐप्लिकेशन की समीक्षा पूरी हो गई है और ऐप्लिकेशन को पब्लिश कर दिया गया है. अगर ऐप्लिकेशन की स्थिति कॉलम में, स्टेटस: इंटरनल टेस्टिंग (ड्राफ़्ट की इंटरनल टेस्टिंग नहीं), क्लोज़्ड टेस्टिंग, ओपन टेस्टिंग या प्रोडक्शन.

  3. अपने Firebase के Android ऐप्लिकेशन को Google Play डेवलपर खाते से जोड़ें:

    1. Firebase कंसोल में, अपने प्रोजेक्ट सेटिंग, इसके बाद, इंटिग्रेशन टैब चुनें.

    2. Google Play कार्ड पर जाकर, जोड़ें पर क्लिक करें.
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है अगर आपके पास पहले से ही Google Play के लिंक हैं, तो मैनेज करें पर क्लिक करें आज़माएं.

    3. App Distribution को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें और चुनें कि Google से कौनसे Firebase Android ऐप्लिकेशन लिंक करने हैं ऐप्लिकेशन चलाएं.

    इसके बारे में ज़्यादा जानें Google Play से लिंक करना.

पहला चरण. अपना 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 सिस्टम प्रॉपर्टी इसकी मदद से App Distribution आपके डिस्ट्रिब्यूशन को 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 = "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"
          }
      }
  }

  // ...
}

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 bundleRelease appDistributionUploadRelease
    

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

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

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

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

    इसके बजाय, --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 कंसोल. न्योता टेस्टर की लाइन पर मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, उसे फिर से भेजकर रिन्यू किया जा सकता है.

अगले चरण