App Distribution को Android की बिल्ड प्रोसेस में इंटिग्रेट किया जा सकता है. इसके लिए, App Distribution Gradle प्लगिन का इस्तेमाल करें. इस प्लगिन की मदद से, अपने ऐप्लिकेशन की Gradle फ़ाइल में टेस्टर और रिलीज़ नोट तय किए जा सकते हैं. इससे, आपको अपने ऐप्लिकेशन के अलग-अलग बिल्ड टाइप और वैरिएंट के लिए डिस्ट्रिब्यूशन कॉन्फ़िगर करने की सुविधा मिलती है.
इस गाइड में, App Distribution Gradle प्लगिन का इस्तेमाल करके, टेस्टर को APK डिस्ट्रिब्यूट करने का तरीका बताया गया है.
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
अगर आपको 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.3" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.1.1" 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.3' 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 प्लगिन जोड़ें: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 CLI से क्रेडेंशियल ढूंढता है. ऐसा तब होता है, जब पुष्टि करने के लिए किसी अन्य तरीके का इस्तेमाल नहीं किया जाता.
चरण 3. डिस्ट्रिब्यूशन प्रॉपर्टी कॉन्फ़िगर करना
अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) 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
बिल्ड को "demo" और "full"
प्रॉडक्ट फ़्लेवर में डिस्ट्रिब्यूट करने के लिए, इन निर्देशों का पालन करें:
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 या 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 फ़ाइल) को डाउनलोड और इंस्टॉल करता है. लिंक इस्तेमाल करने की समयसीमा एक घंटे में खत्म हो जाएगी.
अपनी बिल्ड को डिस्ट्रिब्यूट करने के बाद, यह App Distribution कंसोल के Firebase डैशबोर्ड में 150 दिनों (पांच महीने) तक उपलब्ध रहती है. जब बिल्ड की समयसीमा खत्म होने में 30 दिन बाकी होते हैं, तब समयसीमा खत्म होने की सूचना, कंसोल और टेस्टर के टेस्ट डिवाइस पर मौजूद बिल्ड की सूची, दोनों में दिखती है.
जिन टेस्टर को ऐप्लिकेशन की जांच करने का न्योता नहीं मिला है उन्हें ईमेल से न्योते भेजे जाते हैं, ताकि वे जांच शुरू कर सकें. इसके अलावा, मौजूदा टेस्टर को ईमेल से सूचनाएं भेजी जाती हैं कि नई बिल्ड की जांच की जा सकती है. जांच वाले ऐप्लिकेशन को इंस्टॉल करने के निर्देशों के लिए, टेस्टर सेट अप गाइड पढ़ें. Firebase कंसोल में जाकर, हर टेस्टर की स्थिति देखी जा सकती है. इससे यह पता चलता है कि टेस्टर ने न्योता स्वीकार किया है या नहीं और उसने ऐप्लिकेशन डाउनलोड किया है या नहीं.
टेस्टर के पास, ऐप्लिकेशन को टेस्ट करने के न्योते को स्वीकार करने के लिए 30 दिन होते हैं. इसके बाद, न्योते की समयसीमा खत्म हो जाती है. जब न्योते की समयसीमा खत्म होने में पांच दिन बाकी होते हैं, तब रिलीज़ पर टेस्टर के बगल में Firebase कंसोल में, समयसीमा खत्म होने की सूचना दिखती है. टेस्टर की लाइन में मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, न्योते को फिर से भेजा जा सकता है.
अगले चरण
ऐप्लिकेशन में सुझाव/राय देने या शिकायत करने की सुविधा लागू करें, ताकि टेस्टर आपके ऐप्लिकेशन के बारे में आसानी से सुझाव/राय दे सकें या शिकायत कर सकें. इसमें स्क्रीनशॉट भी शामिल हैं.
जब आपके ऐप्लिकेशन के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध हों, तब टेस्टर को ऐप्लिकेशन में दिखने वाली चेतावनियां दिखाने का तरीका जानें.
ऐप्लिकेशन बंडल की रिलीज़ को चरण दर चरण डिस्ट्रिब्यूट करने का तरीका जानने के लिए, Android ऐप्लिकेशन बंडल कोडलैब पर जाएं.
सीआई/सीडी का इस्तेमाल करके, क्वालिटी अश्योरेंस टेस्टर को Android ऐप्लिकेशन उपलब्ध कराने के सबसे सही तरीके जानें.