App Distribution Gradle प्लग इन का इस्तेमाल करके, Android बिल्ड प्रोसेस में App Distribution को इंटिग्रेट किया जा सकता है. प्लगिन की मदद से, ऐप्लिकेशन की ग्रेडल फ़ाइल में टेस्टर और रिलीज़ नोट की जानकारी जोड़ी जा सकती है. इससे, अपने ऐप्लिकेशन के अलग-अलग बिल्ड टाइप और वैरिएंट के लिए डिस्ट्रिब्यूशन को कॉन्फ़िगर किया जा सकता है.
इस गाइड में ऐप्लिकेशन डिस्ट्रिब्यूशन Gradle प्लग इन का इस्तेमाल करके, जांच करने वाले लोगों को APK डिस्ट्रिब्यूट करने का तरीका बताया गया है.
वेब कंटेनर इंस्टॉल करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो Firebase को अपने Android प्रोजेक्ट में जोड़ें.
अगर किसी अन्य Firebase प्रॉडक्ट का इस्तेमाल नहीं किया जा रहा है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. हालांकि, अगर आपको आने वाले समय में अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो ऊपर दिए गए पेज पर दिए गए सभी चरणों को पूरा करें.
पहला चरण. अपना Android प्रोजेक्ट सेट अप करना
अपनी रूट-लेवल (प्रोजेक्ट-लेवल) की 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 }
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की 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' }
अगर किसी कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल का इस्तेमाल किया जा रहा है, तो यहां दी गई Java सिस्टम प्रॉपर्टी जोड़ें. इसकी मदद से, App Distribution की मदद से आपके डिस्ट्रिब्यूशन को Firebase पर अपलोड किया जा सकता है:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
दूसरा चरण. Firebase की मदद से पुष्टि करें
Gradle प्लग इन का इस्तेमाल करने से पहले, आपको इनमें से किसी एक तरीके से अपने Firebase प्रोजेक्ट की पुष्टि करनी होगी. अगर पुष्टि करने के किसी दूसरे तरीके का इस्तेमाल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से Gradle प्लग इन, Firebase सीएलआई से क्रेडेंशियल की जांच करता है.
तीसरा चरण. डिस्ट्रिब्यूशन की अपनी प्रॉपर्टी कॉन्फ़िगर करना
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर
<project>/<app-module>/build.gradle.kts
या
<project>/<app-module>/build.gradle
) में, कम से कम एक firebaseAppDistribution
सेक्शन जोड़कर App Distribution को कॉन्फ़िगर करें.
उदाहरण के लिए, टेस्टर को 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 Services Gradle प्लग इन इंस्टॉल न किया हो. ऐप्लिकेशन आईडी
appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
आपके सेवा खाते की निजी कुंजी वाली JSON फ़ाइल का पाथ. सिर्फ़ तब ज़रूरी है, जब सेवा खाते की पुष्टि करने की सुविधा का इस्तेमाल किया जा रहा हो. |
artifactType
|
यह आपके ऐप्लिकेशन का फ़ाइल टाइप बताता है. |
artifactPath
|
उस APK या एएबी फ़ाइल का ऐब्सलूट पाथ जिसे आपको अपलोड करना है. |
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
आपके पास
--<property-name>=<property-value>
के रूप में कमांड लाइन आर्ग्युमेंट पास करके, अपनीbuild.gradle
फ़ाइल में सेट की गई वैल्यू को बदलने का भी विकल्प है. उदाहरण के लिए: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 या एएबी फ़ाइल) को डाउनलोड और इंस्टॉल करता है. लिंक की समयसीमा एक घंटे के बाद काम नहीं करती.
बिल्ड डिस्ट्रिब्यूट करने के बाद, यह Firebase कंसोल के App Distribution डैशबोर्ड में 150 दिनों (पांच महीने) तक उपलब्ध रहता है. बिल्ड की समयसीमा खत्म होने के 30 दिन बाद, कंसोल और आपके टेस्टर के टेस्ट डिवाइस पर बिल्ड की सूची, दोनों में समयसीमा खत्म होने की सूचना दिखती है.
जिन टेस्टर को ऐप्लिकेशन की जांच करने का न्योता नहीं मिला है उन्हें ऐप्लिकेशन को टेस्ट करने के न्योते मिलते हैं. साथ ही, मौजूदा टेस्टर को इस बारे में ईमेल सूचनाएं मिलती हैं कि नया बिल्ड टेस्ट किया जा सकता है. टेस्टर ऐप्लिकेशन को इंस्टॉल करने के निर्देशों के लिए, टेस्टर सेट अप गाइड पढ़ें. आप हर टेस्टर की स्थिति पर नज़र रख सकते हैं. यह भी देखा जा सकता है कि उन्होंने न्योता स्वीकार किया है या नहीं और क्या उन्होंने Firebase कंसोल में ऐप्लिकेशन डाउनलोड किया है.
टेस्टर को 30 दिनों के अंदर, ऐप्लिकेशन की जांच करने का न्योता स्वीकार करना होगा. इसके बाद, ऐप्लिकेशन की समयसीमा खत्म हो जाएगी. जब किसी न्योते की समयसीमा खत्म होने के पांच दिन होते हैं, तो रिलीज़ के टेस्टर के बगल में Firebase कंसोल में, न्योते की समयसीमा खत्म होने की सूचना दिखती है. टेस्टर की लाइन पर मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, न्योते को फिर से भेजकर, उसे रिन्यू किया जा सकता है.
अगले चरण
ऐप्लिकेशन में मौजूद सुझाव लागू करें, ताकि जांच करने वाले लोग आपके ऐप्लिकेशन के बारे में आसानी से सुझाव भेज सकें. इसमें स्क्रीनशॉट भी शामिल हैं.
जब आपके ऐप्लिकेशन के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध हों, तब अपने टेस्टर को इन-ऐप्लिकेशन सूचनाएं दिखाने का तरीका जानें.
ऐप्लिकेशन बंडल की रिलीज़ को सिलसिलेवार तरीके से उपलब्ध कराने का तरीका जानने के लिए, Android ऐप्लिकेशन बंडल कोडलैब पर जाएं.
सीआई/सीडी का इस्तेमाल करके, QA जांच करने वाले लोगों को Android ऐप्लिकेशन उपलब्ध कराने के सबसे सही तरीके जानें.