आप ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन का उपयोग करके ऐप डिस्ट्रीब्यूशन को अपने एंड्रॉइड बिल्ड प्रोसेस में एकीकृत कर सकते हैं। प्लगइन आपको अपने परीक्षकों को निर्दिष्ट करने देता है और अपने ऐप की build.gradle
फ़ाइल में नोट्स जारी करता है, जिससे आप अपने ऐप के विभिन्न बिल्ड प्रकारों और वेरिएंट के लिए वितरण को कॉन्फ़िगर कर सकते हैं।
यह गाइड बताती है कि ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन का उपयोग करके परीक्षकों को एंड्रॉइड ऐप बंडल (एएबी) कैसे वितरित करें।
ऐप वितरण Google Play की आंतरिक ऐप साझाकरण सेवा के साथ एकीकृत होता है ताकि आपके द्वारा अपलोड किए जाने वाले AABs को संसाधित किया जा सके और आपके परीक्षकों के डिवाइस कॉन्फ़िगरेशन के लिए अनुकूलित APK की सेवा की जा सके। AAB का वितरण करने से आप निम्न कार्य कर सकते हैं:
अनुकूलित APK चलाएं (Google Play द्वारा प्रस्तुत) जो आपके परीक्षकों के उपकरणों के लिए अनुकूलित हैं।
डिवाइस-विशिष्ट समस्याओं को उजागर करें और डीबग करें।
Play सुविधा वितरण और Play संपत्ति वितरण जैसी ऐप्लिकेशन बंडल सुविधाओं का परीक्षण करें.
अपने परीक्षकों के लिए डाउनलोड का आकार कम करें।
आवश्यक अनुमतियाँ
ऐप वितरण में AABs अपलोड करने के लिए, आपको अपने Firebase ऐप को Google Play में किसी ऐप से लिंक करना होगा। इन कार्रवाइयों को करने के लिए आपके पास आवश्यक स्तर की पहुंच होनी चाहिए.
यदि आपके पास आवश्यक Firebase एक्सेस नहीं है, तो आप Firebase कंसोल IAM सेटिंग के माध्यम से किसी Firebase प्रोजेक्ट स्वामी से आपको उपयुक्त भूमिका असाइन करने के लिए कह सकते हैं। यदि आपके पास अपने फायरबेस प्रोजेक्ट तक पहुँचने के बारे में प्रश्न हैं, जिसमें एक मालिक को ढूंढना या असाइन करना शामिल है, तो "फायरबेस प्रोजेक्ट की अनुमतियाँ और एक्सेस" अक्सर पूछे जाने वाले प्रश्नों की समीक्षा करें।
निम्न तालिका Google Play में एक Firebase ऐप को ऐप से लिंक करने के साथ-साथ AABs अपलोड करने के लिए लागू होती है।
फायरबेस कंसोल में कार्रवाई | आवश्यक आईएएम अनुमति | IAM भूमिका (भूमिकाएँ) जिसमें डिफ़ॉल्ट रूप से आवश्यक अनुमतियाँ शामिल हैं | अतिरिक्त आवश्यक भूमिका |
---|---|---|---|
Google Play में एक Firebase ऐप को ऐप से लिंक करें | firebase.playLinks.update | निम्नलिखित भूमिकाओं में से एक: | व्यवस्थापक के रूप में Google Play डेवलपर खाते तक पहुंच |
ऐप वितरण में एएबी अपलोड करें | firebaseappdistro.releases.update | निम्नलिखित भूमिकाओं में से एक: | —– |
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें । इस कार्यप्रवाह के अंत में, आपके पास अपने Firebase प्रोजेक्ट में एक Firebase Android ऐप होगा।
यदि आप किसी अन्य फायरबेस उत्पाद का उपयोग नहीं कर रहे हैं, तो आपको केवल एक प्रोजेक्ट बनाना होगा और अपना ऐप पंजीकृत करना होगा। यदि आप अतिरिक्त उत्पादों का उपयोग करने का निर्णय लेते हैं, तो अपने Android प्रोजेक्ट में Firebase जोड़ें के सभी चरणों को पूरा करना सुनिश्चित करें।
Google Play के लिए एक Firebase लिंक बनाने और AABs अपलोड करने के लिए, सुनिश्चित करें कि आपका ऐप निम्नलिखित आवश्यकताओं को पूरा करता है:
Google Play में ऐप और Firebase Android ऐप दोनों एक ही पैकेज नाम का उपयोग करके पंजीकृत हैं।
Google Play में ऐप को ऐप डैशबोर्ड पर सेट किया गया है और इसे Google Play ट्रैक्स (आंतरिक परीक्षण, बंद परीक्षण, खुला परीक्षण या उत्पादन) में से एक में वितरित किया गया है।
Google Play में ऐप की समीक्षा पूरी हो गई है और ऐप प्रकाशित हो गया है। यदि ऐप स्थिति कॉलम निम्न स्थितियों में से एक प्रदर्शित करता है तो आपका ऐप प्रकाशित किया जाता है: आंतरिक परीक्षण (ड्राफ्ट आंतरिक परीक्षण नहीं), बंद परीक्षण, खुला परीक्षण या उत्पादन।
अपने Firebase Android ऐप को अपने Google Play डेवलपर खाते से लिंक करें:
फायरबेस कंसोल में, अपनी
प्रोजेक्ट सेटिंग्स पर जाएं, फिर इंटीग्रेशन टैब चुनें।Google Play कार्ड पर, लिंक करें क्लिक करें.
यदि आपके पास पहले से ही Google Play के लिंक हैं, तो इसके बजाय प्रबंधित करें पर क्लिक करें।ऐप वितरण एकीकरण को सक्षम करने के लिए ऑन-स्क्रीन निर्देशों का पालन करें और Google Play से लिंक करने के लिए कौन से Firebase Android ऐप्स का चयन करें।
Google Play से लिंक करने के बारे में और जानें।
चरण 1. अपना Android प्रोजेक्ट सेट करें
अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल (
या<project>/build.gradle
) में, ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन को बिल्डस्क्रिप्ट डिपेंडेंसी के रूप में जोड़ें:<project>/build.gradle.kts ग्रूवी
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath 'com.android.tools.build:gradle:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0' } }
Kotlin
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath("com.android.tools.build:gradle:7.2.0") // Make sure that you have the Google services Gradle plugin dependency classpath("com.google.gms:google-services:4.3.15") // Add the dependency for the App Distribution Gradle plugin classpath("com.google.firebase:firebase-appdistribution-gradle:4.0.0") } }
अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल में (आमतौर पर
या<project>/<app-module>/build.gradle
), ऐप डिस्ट्रीब्यूशन ग्रेडल प्लगइन जोड़ें:<project>/<app-module>/build.gradle.kts ग्रूवी
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' }
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") }
यदि आप कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो निम्नलिखित जावा सिस्टम गुण जोड़ें जो आपके वितरण को फायरबेस पर अपलोड करने के लिए ऐप वितरण को सक्षम करता है:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
चरण 2. फायरबेस के साथ प्रमाणित करें
इससे पहले कि आप ग्रैडल प्लगइन का उपयोग कर सकें, आपको पहले अपने फायरबेस प्रोजेक्ट के साथ निम्नलिखित में से किसी एक तरीके से प्रमाणित करना होगा। यदि कोई अन्य प्रमाणीकरण विधि का उपयोग नहीं किया जाता है, तो डिफ़ॉल्ट रूप से, ग्रैडल प्लगइन फायरबेस सीएलआई से क्रेडेंशियल्स की तलाश करता है।
एक सेवा खाते के साथ प्रमाणीकरण करने से आप अपने निरंतर एकीकरण (CI) सिस्टम के साथ लचीले ढंग से प्लगइन का उपयोग कर सकते हैं। सेवा खाता क्रेडेंशियल प्रदान करने के दो तरीके हैं:
- अपनी सेवा खाता कुंजी फ़ाइल को
build.gradle
पर पास करें। यदि आपके पास पहले से ही आपके निर्माण वातावरण में आपकी सेवा खाता कुंजी फ़ाइल है, तो आपको यह विधि सुविधाजनक लग सकती है। - अपनी सेवा खाता कुंजी फ़ाइल को इंगित करने के लिए परिवेश चर
GOOGLE_APPLICATION_CREDENTIALS
सेट करें. यदि आपके पास पहले से ही किसी अन्य Google सेवा (जैसे, Google क्लाउड) के लिए कॉन्फ़िगर किए गए एप्लिकेशन डिफ़ॉल्ट क्रेडेंशियल्स (ADC) हैं, तो आप इस विधि को पसंद कर सकते हैं।
सेवा खाता क्रेडेंशियल्स का उपयोग करके प्रमाणित करने के लिए:
- Google क्लाउड कंसोल पर, अपनी परियोजना का चयन करें और एक नया सेवा खाता बनाएँ।
- फायरबेस ऐप डिस्ट्रीब्यूशन एडमिन रोल जोड़ें।
- एक निजी json कुंजी बनाएँ और कुंजी को अपने निर्माण वातावरण के लिए सुलभ स्थान पर ले जाएँ। इस फ़ाइल को कहीं सुरक्षित रखना सुनिश्चित करें , क्योंकि यह आपके फायरबेस प्रोजेक्ट में ऐप वितरण के लिए व्यवस्थापकीय पहुँच प्रदान करती है।
- यदि आपने अपना ऐप 20 सितंबर, 2019 के बाद बनाया है तो इस चरण को छोड़ दें: Google APIs कंसोल में, Firebase ऐप वितरण API को सक्षम करें। संकेत दिए जाने पर, अपने Firebase प्रोजेक्ट के समान नाम वाले प्रोजेक्ट का चयन करें।
अपना सेवा खाता क्रेडेंशियल प्रदान करें या उसका पता लगाएं:
- Gradle को अपनी सेवा खाता कुंजी पास करने के लिए, अपनी
build.gradle
फ़ाइल में, गुणserviceCredentialsFile
को निजी कुंजी JSON फ़ाइल पर सेट करें। एडीसी के साथ अपने क्रेडेंशियल्स का पता लगाने के लिए, पर्यावरण चर
GOOGLE_APPLICATION_CREDENTIALS
को निजी कुंजी JSON फ़ाइल के पथ पर सेट करें। उदाहरण के लिए:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
एडीसी के साथ प्रमाणीकरण के बारे में अधिक जानकारी के लिए, अपने आवेदन को क्रेडेंशियल प्रदान करना पढ़ें।
- Gradle को अपनी सेवा खाता कुंजी पास करने के लिए, अपनी
अपने प्रोजेक्ट को प्रमाणित करने के तरीके के बारे में निर्देशों के लिए फायरबेस सीएलआई के साथ लॉग इन करें देखें।
चरण 3. अपने वितरण गुणों को कॉन्फ़िगर करें
आपके मॉड्यूल (ऐप-लेवल) ग्रेडल फ़ाइल (आमतौर पर
या
) में, कम से कम जोड़कर ऐप डिस्ट्रीब्यूशन को कॉन्फ़िगर करें एक firebaseAppDistribution
अनुभाग।
उदाहरण के लिए, release
बिल्ड को परीक्षकों को वितरित करने के लिए, इन निर्देशों का पालन करें ::
ग्रूवी
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { release { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
आप बिल्ड प्रकार और उत्पाद स्वादों के लिए ऐप वितरण को कॉन्फ़िगर कर सकते हैं।
उदाहरण के लिए, "डेमो" और "पूर्ण" उत्पाद स्वादों में debug
और release
बिल्ड वितरित करने के लिए, इन निर्देशों का पालन करें:
ग्रूवी
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" } } } // ... }
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" } } } // ... }
वितरण को कॉन्फ़िगर करने के लिए निम्न पैरामीटर का उपयोग करें:
ऐप वितरण बिल्ड पैरामीटर | |
---|---|
appId | आपके ऐप की फायरबेस ऐप आईडी। केवल तभी आवश्यक है जब आपके पास Google सेवाएं ग्रेडल प्लगइन स्थापित न हो। आप ऐप आईडी को appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | आपके सेवा खाते की निजी कुंजी JSON फ़ाइल का पथ। यदि आप सेवा खाता प्रमाणीकरण का उपयोग करते हैं तो ही आवश्यक है। |
artifactType | आपके ऐप के फ़ाइल प्रकार को निर्दिष्ट करता है। |
artifactPath | आप जिस एपीके या एएबी फ़ाइल को अपलोड करना चाहते हैं, उसका निरपेक्ष पथ। |
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" |
stacktrace | उपयोगकर्ता अपवादों के लिए स्टैकट्रेस प्रिंट करता है। डिबगिंग मुद्दों के दौरान यह सहायक होता है। |
चरण 4. अपने ऐप को परीक्षकों को वितरित करें
अंत में, अपने परीक्षण ऐप को पैकेज करने और परीक्षकों को आमंत्रित करने के लिए, लक्ष्य बनाएं
BUILD-VARIANT
औरappDistributionUpload BUILD-VARIANT
अपने प्रोजेक्ट के ग्रैडल रैपर के साथ, जहां BUILD-VARIANT वैकल्पिक उत्पाद फ्लेवर और बिल्ड प्रकार है जिसे आपने पिछले चरण में कॉन्फ़िगर किया था। उत्पाद स्वादों के बारे में अधिक जानकारी के लिए, बिल्ड वेरिएंट कॉन्फ़िगर करें देखें।उदाहरण के लिए,
release
बिल्ड संस्करण का उपयोग करके अपने ऐप को वितरित करने के लिए, निम्नलिखित कमांड चलाएँ:./gradlew bundleRelease appDistributionUploadRelease
या, यदि आपने अपने Google खाते से प्रमाणित किया है और अपनी ग्रेडल बिल्ड फ़ाइल में प्रमाणिकता प्रदान नहीं की है, तो
FIREBASE_TOKEN
चर शामिल करें:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
आप
--<property-name>=<property-value>
के रूप में कमांड लाइन तर्क पारित करके अपनीbuild.gradle
फ़ाइल में सेट मूल्यों को ओवरराइड भी कर सकते हैं। उदाहरण के लिए:डिबग बिल्ड को ऐप वितरण में अपलोड करने के लिए:
./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
: आपका फायरबेस प्रोजेक्ट नंबर।serviceCredentialsFile
: आपकी Google सेवा क्रेडेंशियल फ़ाइल का पथ। यह वही तर्क है जिसका उपयोग अपलोड क्रिया द्वारा किया जाता है।
रिलीज अपलोड के बाद ग्रेडल प्लगइन निम्नलिखित लिंक को आउटपुट करता है। ये लिंक आपको बायनेरिज़ प्रबंधित करने में मदद करते हैं और यह सुनिश्चित करते हैं कि परीक्षकों और अन्य डेवलपर्स के पास सही रिलीज़ है:
-
firebase_console_uri
- एकल रिलीज़ प्रदर्शित करने वाले Firebase कंसोल का लिंक। आप इस लिंक को अपने संगठन में अन्य डेवलपर्स के साथ साझा कर सकते हैं। -
testing_uri
- टेस्टर अनुभव (एंड्रॉइड नेटिव ऐप) में रिलीज़ का एक लिंक जो परीक्षकों को रिलीज़ नोट्स देखने और ऐप को अपने डिवाइस पर इंस्टॉल करने देता है। लिंक का उपयोग करने के लिए परीक्षक को रिलीज़ तक पहुंच की आवश्यकता होती है। -
binary_download_uri
- एक हस्ताक्षरित लिंक जो सीधे ऐप बाइनरी (एपीके या एएबी फाइल) को डाउनलोड और इंस्टॉल करता है। लिंक एक घंटे के बाद समाप्त हो जाता है।
एक बार जब आप अपना बिल्ड वितरित कर देते हैं, तो यह 150 दिनों (पांच महीने) के लिए फायरबेस कंसोल के ऐप डिस्ट्रीब्यूशन डैशबोर्ड में उपलब्ध हो जाता है। जब बिल्ड समाप्त होने के 30 दिन बाद होता है, तो कंसोल और आपके परीक्षक की टेस्ट डिवाइस पर बिल्ड की सूची दोनों में एक समाप्ति सूचना दिखाई देती है।
जिन परीक्षकों को ऐप का परीक्षण करने के लिए आमंत्रित नहीं किया गया है, उन्हें आरंभ करने के लिए ईमेल आमंत्रण प्राप्त होते हैं, और मौजूदा परीक्षकों को ईमेल सूचनाएँ प्राप्त होती हैं कि एक नया बिल्ड परीक्षण के लिए तैयार है (परीक्षण ऐप को कैसे स्थापित करें, इसके निर्देशों के लिए परीक्षक सेट अप मार्गदर्शिका पढ़ें)। आप फायरबेस कंसोल में प्रत्येक परीक्षक की स्थिति की निगरानी कर सकते हैं-चाहे उन्होंने आमंत्रण स्वीकार किया हो और क्या उन्होंने ऐप डाउनलोड किया हो।
परीक्षकों के पास ऐप की समय सीमा समाप्त होने से पहले उसका परीक्षण करने का आमंत्रण स्वीकार करने के लिए 30 दिन होते हैं। जब आमंत्रण समाप्त होने के 5 दिन बाद होता है, तो एक रिलीज पर परीक्षक के बगल में फायरबेस कंसोल में एक समाप्ति सूचना दिखाई देती है। परीक्षक पंक्ति पर ड्रॉप-डाउन मेनू का उपयोग करके आमंत्रण को फिर से भेजकर इसे नवीनीकृत किया जा सकता है।
अगले कदम
परीक्षकों के लिए आपके ऐप (स्क्रीनशॉट सहित) के बारे में फ़ीडबैक भेजना आसान बनाने के लिए इन-ऐप फ़ीडबैक लागू करें।
अपने ऐप के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध होने पर अपने परीक्षकों को इन-ऐप अलर्ट प्रदर्शित करने का तरीका जानें।
ऐप बंडल रिलीज़ को चरण दर चरण वितरित करने का तरीका जानने के लिए Android ऐप बंडल कोडलैब पर जाएँ।
CI/CD का उपयोग करके QA परीक्षकों को Android ऐप्स वितरित करने के सर्वोत्तम अभ्यास सीखें।