App Distribution Gradle प्लग इन का इस्तेमाल करके, App Distribution को अपनी Android बिल्ड प्रोसेस में इंटिग्रेट किया जा सकता है. इस प्लग इन की मदद से, अपने ऐप्लिकेशन की Gradle फ़ाइल में टेस्टर और रिलीज़ नोट की जानकारी दी जा सकती है. साथ ही, अपने ऐप्लिकेशन के अलग-अलग टाइप के बिल्ड और वैरिएंट के लिए डिस्ट्रिब्यूशन कॉन्फ़िगर किए जा सकते हैं.
इस गाइड में, App Distribution Gradle प्लग इन का इस्तेमाल करके, टेस्टर को APK डिस्ट्रिब्यूट करने का तरीका बताया गया है.
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
अगर Firebase के किसी दूसरे प्रॉडक्ट का इस्तेमाल नहीं किया जा रहा है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. हालांकि, अगर आने वाले समय में आपको अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो ऊपर दिए गए लिंक किए गए पेज पर दिए गए सभी चरणों को पूरा करना न भूलें.
पहला चरण. अपना Android प्रोजेक्ट सेट अप करना
अपनी रूट-लेवल (प्रोजेक्ट-लेवल) Gradle फ़ाइल (
<project>/build.gradle.kts
या<project>/build.gradle
) में, App Distribution Gradle प्लग इन को डिपेंडेंसी के तौर पर जोड़ें: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.1.1" apply false }
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.1.1' apply false }
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
) में, App Distribution Gradle प्लग इन जोड़ें: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") }
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' }
अगर आप किसी कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो यहां दी गई Java सिस्टम प्रॉपर्टी जोड़ें. इससे App Distribution को Firebase पर डिस्ट्रिब्यूशन अपलोड करने में मदद मिलेगी:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
दूसरा चरण. Firebase की मदद से पुष्टि करना
Gradle प्लग इन का इस्तेमाल करने से पहले, आपको इनमें से किसी एक तरीके से अपने Firebase प्रोजेक्ट की पुष्टि करनी होगी. अगर पुष्टि करने के लिए किसी दूसरे तरीके का इस्तेमाल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से Gradle प्लग इन, Firebase सीएलआई से क्रेडेंशियल खोजता है.
Firebase सेवा खाते के क्रेडेंशियल का इस्तेमाल करना
सेवा खाते से पुष्टि करने पर, आपको अपने लगातार इंटिग्रेशन (सीआई) सिस्टम के साथ प्लग इन का आसानी से इस्तेमाल करने की सुविधा मिलती है. सेवा खाते के क्रेडेंशियल देने के दो तरीके हैं:
- अपनी सेवा खाता कुंजी फ़ाइल को
build.gradle
को पास करें. अगर आपके पास पहले से ही, बिल्ड एनवायरमेंट में सेवा खाते की कुंजी फ़ाइल है, तो आपको यह तरीका आसान लग सकता है. - एनवायरमेंट वैरिएबल
GOOGLE_APPLICATION_CREDENTIALS
को अपने सेवा खाते की कुंजी फ़ाइल पर ले जाने के लिए सेट करें. अगर आपके पास किसी दूसरी Google सेवा (उदाहरण के लिए, Google Cloud).
सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने के लिए:
- Google Cloud कंसोल पर,अपना प्रोजेक्ट चुनें और नया सेवा खाता बनाएं.
- Firebase App Distribution एडमिन की भूमिका जोड़ें.
- निजी JSON पासकोड बनाएं और पासकोड को ऐसी जगह पर ले जाएं जिसका ऐक्सेस आपके बिल्ड एनवायरमेंट के पास हो. इस फ़ाइल को किसी सुरक्षित जगह पर रखना न भूलें, क्योंकि इससे आपके Firebase प्रोजेक्ट में App Distribution का एडमिन ऐक्सेस मिलता है.
- अगर आपने अपना ऐप्लिकेशन 20 सितंबर, 2019 के बाद बनाया है, तो यह चरण छोड़ दें: Google API कंसोल में, Firebase App Distribution एपीआई को चालू करें. जब कहा जाए, तब उस प्रोजेक्ट को चुनें जिसका नाम आपके Firebase प्रोजेक्ट के नाम से मेल खाता हो.
अपने सेवा खाते के क्रेडेंशियल दें या उन्हें ढूंढें:
- Gradle को अपने सेवा खाते की कुंजी देने के लिए, अपनी
build.gradle
फ़ाइल में, प्रॉपर्टीserviceCredentialsFile
को निजी कुंजी वाली JSON फ़ाइल पर सेट करें. ADC की मदद से अपने क्रेडेंशियल ढूंढने के लिए, एनवायरमेंट वैरिएबल
GOOGLE_APPLICATION_CREDENTIALS
को निजी कुंजी की JSON फ़ाइल के पाथ पर सेट करें. उदाहरण के लिए:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
एडीसी की मदद से पुष्टि करने के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन के लिए क्रेडेंशियल उपलब्ध कराना लेख पढ़ें.
- Gradle को अपने सेवा खाते की कुंजी देने के लिए, अपनी
Firebase CLI का इस्तेमाल करके साइन इन करना
अपने प्रोजेक्ट की पुष्टि करने का तरीका जानने के लिए, Firebase सीएलआई से लॉग इन करें पर जाएं.
चरण 3. डिस्ट्रिब्यूशन प्रॉपर्टी कॉन्फ़िगर करना
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर
<project>/<app-module>/build.gradle.kts
या
<project>/<app-module>/build.gradle
) में, कम से कम एक firebaseAppDistribution
सेक्शन जोड़कर App Distribution को कॉन्फ़िगर करें.
उदाहरण के लिए, टेस्टर को release
बिल्ड उपलब्ध कराने के लिए, इन निर्देशों का पालन करें:
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" } } } // ... }
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
के बिल्ड को "डेमो" और "पूरे" प्रॉडक्ट के वर्शन में डिस्ट्रिब्यूट करने के लिए, इन निर्देशों का पालन करें:
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" } } } // ... }
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 Services Gradle प्लग इन इंस्टॉल न किया हो. ऐप्लिकेशन आईडी, appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
आपके सेवा खाते की निजी कुंजी की JSON फ़ाइल का पाथ. यह सिर्फ़ तब ज़रूरी है, जब सेवा खाते की पुष्टि करने की सुविधा का इस्तेमाल किया जा रहा हो. |
artifactType
|
इससे आपके ऐप्लिकेशन के फ़ाइल टाइप के बारे में पता चलता है. इसे
|
artifactPath
|
आपको जिस APK या AAB फ़ाइल को अपलोड करना है उसका ऐब्सलूट पाथ. |
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 |
अपने-आप चलने वाले टेस्ट को अलग-अलग चलाएं. अपने-आप होने वाली जांच के नतीजे देखने के लिए, Firebase कंसोल पर जाएं. |
stacktrace
|
उपयोगकर्ता से जुड़ी अपवादों के लिए स्टैकट्रैस को प्रिंट करता है. यह तब मददगार होता है, जब समस्याओं को डीबग किया जा रहा हो. |
चौथा चरण. टेस्टर को अपना ऐप्लिकेशन उपलब्ध कराना
आखिर में, अपने टेस्ट ऐप्लिकेशन को पैकेज करने और टेस्टर को न्योता देने के लिए, अपने प्रोजेक्ट के Gradle रैपर की मदद से टारगेट
BUILD-VARIANT
औरappDistributionUploadBUILD-VARIANT
बनाएं. यहां 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
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 प्रोजेक्ट में जोड़ने के बाद, उसे अलग-अलग रिलीज़ में जोड़ा जा सकता है. हटाए गए टेस्टर के पास अब आपके प्रोजेक्ट की रिलीज़ का ऐक्सेस नहीं होगा. हालांकि, कुछ समय के लिए उनके पास रिलीज़ का ऐक्सेस बना रहेगा.
--emails
के बजाय--file="/path/to/testers.txt"
का इस्तेमाल करके भी टेस्टर की जानकारी दी जा सकती है.appDistributionAddTesters
औरappDistributionRemoveTesters
टास्क के लिए, ये आर्ग्युमेंट भी इस्तेमाल किए जा सकते हैं:projectNumber
: आपका Firebase प्रोजेक्ट नंबर.serviceCredentialsFile
: Google की सेवा के क्रेडेंशियल वाली फ़ाइल का पाथ. यह वही आर्ग्युमेंट है जिसका इस्तेमाल अपलोड ऐक्शन करता है.
रिलीज़ अपलोड होने के बाद, Gradle प्लग इन ये लिंक दिखाता है. इन लिंक की मदद से, बाइनरी को मैनेज किया जा सकता है. साथ ही, यह पक्का किया जा सकता है कि टेस्टर और दूसरे डेवलपर के पास सही रिलीज़ हो:
firebase_console_uri
- Firebase कंसोल का लिंक, जिसमें एक रिलीज़ दिख रही है. इस लिंक को अपने संगठन के अन्य डेवलपर के साथ शेयर किया जा सकता है.testing_uri
- टेस्टर के अनुभव (Android नेटिव ऐप्लिकेशन) में रिलीज़ का लिंक, जिससे टेस्टर रिलीज़ नोट देख सकते हैं और अपने डिवाइस पर ऐप्लिकेशन इंस्टॉल कर सकते हैं. लिंक का इस्तेमाल करने के लिए, टेस्टर के पास रिलीज़ का ऐक्सेस होना चाहिए.binary_download_uri
- साइन किया गया लिंक, जो ऐप्लिकेशन बाइनरी (APK या AAB फ़ाइल) को सीधे डाउनलोड और इंस्टॉल करता है. लिंक इस्तेमाल करने की समयसीमा एक घंटे में खत्म हो जाएगी.
अपना बिल्ड डिस्ट्रिब्यूट करने के बाद, वह Firebase कंसोल के App Distribution डैशबोर्ड में 150 दिनों (पांच महीने) तक उपलब्ध रहता है. जब बिल्ड की समयसीमा खत्म होने में 30 दिन बचे हों, तो समयसीमा खत्म होने की सूचना, कंसोल और टेस्टर के टेस्ट डिवाइस पर मौजूद बिल्ड की सूची, दोनों में दिखती है.
जिन टेस्टर को ऐप्लिकेशन की जांच करने का न्योता नहीं मिला है उन्हें जांच शुरू करने के लिए ईमेल से न्योता भेजा जाता है. साथ ही, मौजूदा टेस्टर को ईमेल से सूचनाएं भेजी जाती हैं कि नया बिल्ड जांच के लिए तैयार है. टेस्ट ऐप्लिकेशन को इंस्टॉल करने के तरीके के बारे में जानने के लिए, टेस्टर सेट अप गाइड पढ़ें. Firebase कंसोल में जाकर, हर टेस्टर की स्थिति पर नज़र रखी जा सकती है. जैसे, उन्होंने न्योता स्वीकार किया है या नहीं और उन्होंने ऐप्लिकेशन डाउनलोड किया है या नहीं.
टेस्टर के पास, ऐप्लिकेशन को टेस्ट करने का न्योता स्वीकार करने के लिए 30 दिन होते हैं. इसके बाद, न्योते की समयसीमा खत्म हो जाती है. न्योते की समयसीमा खत्म होने के पांच दिन पहले, Firebase कंसोल में रिलीज़ के बगल में, समयसीमा खत्म होने की सूचना दिखती है. टेस्टर की लाइन में मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, न्योता फिर से भेजकर उसे रिन्यू किया जा सकता है.
अगले चरण
इन-ऐप्लिकेशन सुझाव/राय/शिकायत/राय की सुविधा लागू करें, ताकि टेस्टर आपके ऐप्लिकेशन के बारे में आसानी से सुझाव/राय/शिकायत/राय भेज सकें. इसमें स्क्रीनशॉट भी शामिल हैं.
अपने ऐप्लिकेशन के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध होने पर, टेस्टर को ऐप्लिकेशन में सूचनाएं दिखाने का तरीका जानें.
ऐप्लिकेशन बंडल की रिलीज़ को सिलसिलेवार तरीके से डिस्ट्रिब्यूट करने का तरीका जानने के लिए, Android ऐप्लिकेशन बंडल कोडलैब पर जाएं.
सीआई/सीडी का इस्तेमाल करके, Android ऐप्लिकेशन को क्यूए टेस्टर को डिस्ट्रिब्यूट करने के सबसे सही तरीके जानें.