App Distribution Gradle प्लग इन का इस्तेमाल करके, App Distribution को Android बिल्ड प्रोसेस में इंटिग्रेट किया जा सकता है. प्लगिन की मदद से, अपने ऐप्लिकेशन की Gradle फ़ाइल में टेस्टर और रिलीज़ नोट तय किए जा सकते हैं. इससे, अपने ऐप्लिकेशन के अलग-अलग बिल्ड टाइप और वैरिएंट के लिए डिस्ट्रिब्यूशन को कॉन्फ़िगर किया जा सकता है.
इस गाइड में, App Distribution Gradle प्लग इन का इस्तेमाल करके, टेस्टर को APK उपलब्ध कराने का तरीका बताया गया है.
शुरू करने से पहले
अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
अगर Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं किया जा रहा है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. हालांकि, अगर आपको आने वाले समय में अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो ऊपर दिए गए लिंक पर मौजूद पेज पर बताए गए सभी चरणों को पूरा करें.
Firebase कंसोल का App Distribution पेज खोलें. प्रॉम्प्ट मिलने पर, अपना 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.5.0" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.3.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.5.0' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.3.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 सीएलआई से क्रेडेंशियल खोजता है.
चरण 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 बिल्ड को "डेमो" और "फ़ुल" ऐप्लिकेशन टाइप में डिस्ट्रिब्यूट करने के लिए, इन निर्देशों का पालन करें:
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" इसके अलावा, उस फ़ाइल का पाथ भी दिया जा सकता है जिसमें डिवाइस की खास जानकारी की सूची, सेमीकोलन से अलग की गई हो: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने के लिए उपयोगकर्ता नाम. |
testPassword या testPasswordFile |
ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने की सुविधा के लिए इस्तेमाल किया जाने वाला पासवर्ड. इसके अलावा, पासवर्ड वाली सादे टेक्स्ट की फ़ाइल का पाथ भी दिया जा सकता है: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने के लिए उपयोगकर्ता नाम वाले फ़ील्ड के रिसॉर्स का नाम. |
testPasswordResource |
ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने के लिए पासवर्ड फ़ील्ड के संसाधन का नाम. |
testNonBlocking |
अगर ऐप्लिकेशन टेस्टिंग एजेंट टेस्ट चलाते समय यह सेट किया जाता है, तो कमांड टेस्ट शुरू कर देगा. इसके बाद, टेस्ट पूरा होने का इंतज़ार करने के बजाय, तुरंत वापस आ जाएगा. टेस्ट के नतीजे देखने के लिए, Firebase कंसोल पर जाएं. अगर यह फ़्लैग सेट नहीं है, तो टेस्ट पूरे होने तक कमांड ब्लॉक रहेगा. साथ ही, अगर कोई टेस्ट फ़ेल होता है, तो फ़ेलियर कोड के साथ बाहर निकल जाएगा. |
resultsBucket
|
Google Cloud Storage (GCS) की कस्टम बकेट, जहां टेस्ट के नतीजे सेव किए जाते हैं. इसे खाली छोड़ने पर, डिफ़ॉल्ट बकेट का इस्तेमाल किया जाता है. बकेट का मालिकाना हक, बिलिंग की सुविधा वाले प्रोजेक्ट के पास होना चाहिए. साथ ही, बकेट तय करने पर, इस्तेमाल किए गए स्टोरेज के लिए बिलिंग शुल्क लागू होते हैं. |
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 या AAB फ़ाइल) को सीधे डाउनलोड और इंस्टॉल करता है. लिंक की समयसीमा एक घंटे के बाद खत्म हो जाती है.
बिल्ड को डिस्ट्रिब्यूट करने के बाद, वह 150 दिनों (पांच महीने) तक Firebase कंसोल के App Distribution डैशबोर्ड में उपलब्ध रहता है. जब बिल्ड की समयसीमा खत्म होने में 30 दिन बचे हों, तो Console और टेस्टर के टेस्ट डिवाइस पर मौजूद बिल्ड की सूची, दोनों में समयसीमा खत्म होने की सूचना दिखती है.
जिन टेस्टर को ऐप्लिकेशन की जांच करने का न्योता नहीं भेजा गया है उन्हें जांच शुरू करने के लिए ईमेल से न्योते भेजे जाते हैं. साथ ही, मौजूदा टेस्टर को ईमेल से सूचनाएं भेजी जाती हैं कि जांच के लिए एक नया बिल्ड तैयार है. टेस्ट ऐप्लिकेशन को इंस्टॉल करने के तरीके के बारे में जानने के लिए, टेस्टर सेट अप करने की गाइड पढ़ें. Firebase कंसोल में, हर टेस्टर की स्थिति पर नज़र रखी जा सकती है. जैसे, उन्होंने न्योता स्वीकार किया है या नहीं और ऐप्लिकेशन डाउनलोड किया है या नहीं.
ऐप्लिकेशन की टेस्टिंग के लिए भेजे गए न्योते को स्वीकार करने के लिए, टेस्टर के पास 30 दिन होते हैं. इसके बाद, न्योते की समयसीमा खत्म हो जाती है. न्योते की समयसीमा खत्म होने से पांच दिन पहले, Firebase कंसोल में रिलीज़ के टेस्टर के बगल में, समयसीमा खत्म होने की सूचना दिखती है. टेस्टर की लाइन में मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, न्योते को फिर से भेजा जा सकता है.
अगले चरण
ऐप्लिकेशन में सुझाव/राय देने की सुविधा लागू करें, ताकि टेस्टर से आपके ऐप्लिकेशन के बारे में सुझाव/राय (स्क्रीनशॉट के साथ) इकट्ठा की जा सके.
जब आपके ऐप्लिकेशन के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध हों, तब टेस्टर को ऐप्लिकेशन में सूचनाएं दिखाने का तरीका जानें.
ऐप्लिकेशन बंडल की रिलीज़ को सिलसिलेवार तरीके से उपलब्ध कराने का तरीका जानने के लिए, Android ऐप्लिकेशन बंडल कोडलैब पर जाएं.
सीआई/सीडी का इस्तेमाल करके, क्यूए टेस्टर को Android ऐप्लिकेशन उपलब्ध कराने के सबसे सही तरीके जानें.