आप ऐप डिस्ट्रीब्यूशन ग्रेडल प्लगइन का उपयोग करके ऐप डिस्ट्रीब्यूशन को अपने एंड्रॉइड बिल्ड प्रक्रिया में एकीकृत कर सकते हैं। प्लगइन आपको अपने परीक्षकों को निर्दिष्ट करने और अपने ऐप की ग्रैडल फ़ाइल में नोट्स जारी करने की सुविधा देता है, जिससे आप अपने ऐप के विभिन्न बिल्ड प्रकारों और वेरिएंट के लिए वितरण कॉन्फ़िगर कर सकते हैं।
यह मार्गदर्शिका बताती है कि ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन का उपयोग करके परीक्षकों को एंड्रॉइड ऐप बंडल (एएबी) कैसे वितरित किया जाए।
ऐप वितरण आपके द्वारा अपलोड किए गए एएबी को संसाधित करने और आपके परीक्षकों के डिवाइस कॉन्फ़िगरेशन के लिए अनुकूलित एपीके पेश करने के लिए Google Play की आंतरिक ऐप साझाकरण सेवा के साथ एकीकृत होता है। एएबी वितरित करने से आप निम्नलिखित कार्य कर सकते हैं:
अनुकूलित एपीके चलाएं (Google Play द्वारा प्रस्तुत) जो आपके परीक्षकों के उपकरणों के लिए अनुकूलित हैं।
डिवाइस-विशिष्ट समस्याओं को उजागर और डीबग करें।
प्ले फ़ीचर डिलीवरी और प्ले एसेट डिलीवरी जैसी ऐप बंडल सुविधाओं का परीक्षण करें।
अपने परीक्षकों के लिए डाउनलोड का आकार कम करें।
आवश्यक अनुमतियाँ
ऐप वितरण में एएबी अपलोड करने के लिए, आपको अपने फायरबेस ऐप को Google Play में किसी ऐप से लिंक करना होगा। इन कार्यों को करने के लिए आपके पास आवश्यक स्तर की पहुंच होनी चाहिए।
यदि आपके पास आवश्यक फ़ायरबेस एक्सेस नहीं है, तो आप फ़ायरबेस प्रोजेक्ट स्वामी से फ़ायरबेस कंसोल IAM सेटिंग्स के माध्यम से आपको लागू भूमिका निर्दिष्ट करने के लिए कह सकते हैं। यदि आपके पास मालिक को ढूंढने या नियुक्त करने सहित अपने फायरबेस प्रोजेक्ट तक पहुंचने के बारे में प्रश्न हैं, तो "फ़ायरबेस प्रोजेक्ट्स की अनुमतियां और पहुंच" अक्सर पूछे जाने वाले प्रश्न देखें।
निम्न तालिका फायरबेस ऐप को Google Play में किसी ऐप से लिंक करने के साथ-साथ एएबी अपलोड करने पर भी लागू होती है।
फायरबेस कंसोल में कार्रवाई | IAM की अनुमति आवश्यक है | IAM भूमिकाएँ जिनमें डिफ़ॉल्ट रूप से आवश्यक अनुमतियाँ शामिल हैं | अतिरिक्त आवश्यक भूमिकाएँ |
---|---|---|---|
फ़ायरबेस ऐप को Google Play में किसी ऐप से लिंक करें | firebase.playLinks.update | निम्नलिखित भूमिकाओं में से एक: | व्यवस्थापक के रूप में Google Play डेवलपर खाते तक पहुंच |
ऐप वितरण पर एएबी अपलोड करें | firebaseappdistro.releases.update | निम्नलिखित भूमिकाओं में से एक: | –– |
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने एंड्रॉइड प्रोजेक्ट में फायरबेस जोड़ें । इस वर्कफ़्लो के अंत में, आपके पास अपने फ़ायरबेस प्रोजेक्ट में एक फ़ायरबेस एंड्रॉइड ऐप होगा।
यदि आप किसी अन्य फायरबेस उत्पाद का उपयोग नहीं कर रहे हैं, तो आपको केवल एक प्रोजेक्ट बनाना होगा और अपना ऐप पंजीकृत करना होगा। यदि आप अतिरिक्त उत्पादों का उपयोग करने का निर्णय लेते हैं, तो अपने एंड्रॉइड प्रोजेक्ट में फायरबेस जोड़ें के सभी चरणों को पूरा करना सुनिश्चित करें।
Google Play पर Firebase लिंक बनाने और AABs अपलोड करने के लिए, सुनिश्चित करें कि आपका ऐप निम्नलिखित आवश्यकताओं को पूरा करता है:
Google Play में ऐप और Firebase Android ऐप दोनों एक ही पैकेज नाम का उपयोग करके पंजीकृत हैं।
Google Play में ऐप को ऐप डैशबोर्ड पर सेट किया गया है और इसे Google Play ट्रैक (आंतरिक परीक्षण, बंद परीक्षण, ओपन परीक्षण, या उत्पादन) में से एक में वितरित किया गया है।
Google Play में ऐप की समीक्षा पूरी हो गई है और ऐप प्रकाशित हो गया है। यदि ऐप स्थिति कॉलम निम्नलिखित स्थितियों में से एक प्रदर्शित करता है तो आपका ऐप प्रकाशित किया जाता है: आंतरिक परीक्षण (ड्राफ्ट आंतरिक परीक्षण नहीं), बंद परीक्षण, खुला परीक्षण, या उत्पादन।
अपने फायरबेस एंड्रॉइड ऐप को अपने Google Play डेवलपर खाते से लिंक करें:
फायरबेस कंसोल में, अपनी
प्रोजेक्ट सेटिंग्स पर जाएं, फिर इंटीग्रेशन टैब चुनें।Google Play कार्ड पर, लिंक पर क्लिक करें।
यदि आपके पास पहले से ही Google Play के लिंक हैं, तो इसके बजाय प्रबंधित करें पर क्लिक करें।ऐप वितरण एकीकरण को सक्षम करने के लिए ऑन-स्क्रीन निर्देशों का पालन करें और चुनें कि कौन से फायरबेस एंड्रॉइड ऐप को Google Play से लिंक करना है।
Google Play से लिंक करने के बारे में और जानें.
चरण 1. अपना Android प्रोजेक्ट सेट करें
अपने रूट-लेवल (प्रोजेक्ट-लेवल) ग्रैडल फ़ाइल (
<project>/build.gradle.kts
या<project>/build.gradle
) में, ऐप डिस्ट्रीब्यूशन ग्रैडल प्लगइन को एक निर्भरता के रूप में जोड़ें:Kotlin
plugins { // ... id("com.android.application") version "7.2.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.3.15" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "4.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.2.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.3.15' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '4.0.0' apply false }
अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.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' }
यदि आप कॉर्पोरेट प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो निम्नलिखित जावा सिस्टम प्रॉपर्टी जोड़ें जो ऐप डिस्ट्रीब्यूशन को आपके वितरण को फ़ायरबेस पर अपलोड करने में सक्षम बनाता है:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
चरण 2. फायरबेस से प्रमाणित करें
इससे पहले कि आप ग्रैडल प्लगइन का उपयोग कर सकें, आपको पहले अपने फायरबेस प्रोजेक्ट को निम्नलिखित में से किसी एक तरीके से प्रमाणित करना होगा। डिफ़ॉल्ट रूप से, यदि कोई अन्य प्रमाणीकरण विधि का उपयोग नहीं किया जाता है, तो ग्रैडल प्लगइन फायरबेस सीएलआई से क्रेडेंशियल ढूंढता है।
सेवा खाते से प्रमाणीकरण करने से आप अपने सतत एकीकरण (सीआई) सिस्टम के साथ प्लगइन का लचीले ढंग से उपयोग कर सकते हैं। सेवा खाता क्रेडेंशियल प्रदान करने के दो तरीके हैं:
- अपनी सेवा खाता कुंजी फ़ाइल को
build.gradle
पर पास करें। यदि आपके पास पहले से ही आपके बिल्ड वातावरण में आपकी सेवा खाता कुंजी फ़ाइल है तो आपको यह विधि सुविधाजनक लग सकती है। - अपनी सेवा खाता कुंजी फ़ाइल को इंगित करने के लिए पर्यावरण चर
GOOGLE_APPLICATION_CREDENTIALS
सेट करें। यदि आपके पास पहले से ही किसी अन्य Google सेवा (जैसे, Google क्लाउड) के लिए एप्लिकेशन डिफॉल्ट क्रेडेंशियल (ADC) कॉन्फ़िगर है, तो आप इस पद्धति को प्राथमिकता दे सकते हैं।
सेवा खाता क्रेडेंशियल का उपयोग करके प्रमाणित करने के लिए:
- Google क्लाउड कंसोल पर, अपना प्रोजेक्ट चुनें और एक नया सेवा खाता बनाएं।
- फायरबेस ऐप डिस्ट्रीब्यूशन एडमिन भूमिका जोड़ें।
- एक निजी json कुंजी बनाएं और कुंजी को अपने निर्माण परिवेश के लिए पहुंच योग्य स्थान पर ले जाएं। इस फ़ाइल को कहीं सुरक्षित रखना सुनिश्चित करें , क्योंकि यह आपके फायरबेस प्रोजेक्ट में ऐप वितरण तक व्यवस्थापक पहुंच प्रदान करता है।
- यदि आपने 20 सितंबर, 2019 के बाद अपना ऐप बनाया है तो इस चरण को छोड़ दें: Google एपीआई कंसोल में, फायरबेस ऐप वितरण एपीआई को सक्षम करें। संकेत मिलने पर, अपने फायरबेस प्रोजेक्ट के समान नाम वाला प्रोजेक्ट चुनें।
अपने सेवा खाते के क्रेडेंशियल प्रदान करें या पता लगाएं:
- ग्रैडल को अपनी सेवा खाता कुंजी पास करने के लिए, अपनी
build.gradle
फ़ाइल में, संपत्तिserviceCredentialsFile
को निजी कुंजी JSON फ़ाइल पर सेट करें। ADC के साथ अपने क्रेडेंशियल्स का पता लगाने के लिए, निजी कुंजी JSON फ़ाइल के पथ पर पर्यावरण चर
GOOGLE_APPLICATION_CREDENTIALS
सेट करें। उदाहरण के लिए:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
एडीसी के साथ प्रमाणीकरण के बारे में अधिक जानकारी के लिए, अपने आवेदन में क्रेडेंशियल प्रदान करना पढ़ें।
- ग्रैडल को अपनी सेवा खाता कुंजी पास करने के लिए, अपनी
अपने प्रोजेक्ट को प्रमाणित करने के निर्देशों के लिए फायरबेस सीएलआई के साथ लॉग इन करें देखें।
चरण 3. अपने वितरण गुणों को कॉन्फ़िगर करें
आपके मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर <project>/<app-module>/build.gradle.kts
या <project>/<app-module>/build.gradle
), कम से कम जोड़कर ऐप वितरण को कॉन्फ़िगर करें एक firebaseAppDistribution
अनुभाग।
उदाहरण के लिए, परीक्षकों को release
बिल्ड वितरित करने के लिए, इन निर्देशों का पालन करें::
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
आप बिल्ड प्रकार और उत्पाद स्वाद के लिए ऐप वितरण को कॉन्फ़िगर कर सकते हैं।
उदाहरण के लिए, "डेमो" और "पूर्ण" उत्पाद फ्लेवर में 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" } } } // ... }
वितरण को कॉन्फ़िगर करने के लिए निम्नलिखित पैरामीटर का उपयोग करें:
ऐप वितरण बिल्ड पैरामीटर | |
---|---|
appId | आपके ऐप की फायरबेस ऐप आईडी। केवल तभी आवश्यक है जब आपके पास Google Services Gradle प्लगइन स्थापित नहीं है। आप ऐप आईडी को 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"
अतिरिक्त परीक्षकों को आमंत्रित करने या मौजूदा परीक्षकों को अपने फायरबेस प्रोजेक्ट से हटाने के लिए:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
एक बार आपके फायरबेस प्रोजेक्ट में एक परीक्षक जुड़ जाने के बाद, आप उन्हें अलग-अलग रिलीज़ में जोड़ सकते हैं। जिन परीक्षकों को हटा दिया गया है, उनके पास अब आपके प्रोजेक्ट में रिलीज़ तक पहुंच नहीं होगी, लेकिन फिर भी वे कुछ समय के लिए आपकी रिलीज़ तक पहुंच बनाए रख सकते हैं।
आप
--emails
के बजाय--file="/path/to/testers.txt"
का उपयोग करके भी परीक्षक निर्दिष्ट कर सकते हैं।appDistributionAddTesters
औरappDistributionRemoveTesters
कार्य भी निम्नलिखित तर्क स्वीकार करते हैं:projectNumber
: आपका फायरबेस प्रोजेक्ट नंबर।serviceCredentialsFile
: आपकी Google सेवा क्रेडेंशियल फ़ाइल का पथ। यह वही तर्क है जिसका उपयोग अपलोड कार्रवाई द्वारा किया जाता है।
ग्रैडल प्लगइन रिलीज़ अपलोड के बाद निम्नलिखित लिंक आउटपुट करता है। ये लिंक आपको बायनेरिज़ प्रबंधित करने में मदद करते हैं और यह सुनिश्चित करते हैं कि परीक्षकों और अन्य डेवलपर्स के पास सही रिलीज़ है:
-
firebase_console_uri
- एकल रिलीज प्रदर्शित करने वाले फायरबेस कंसोल का एक लिंक। आप इस लिंक को अपने संगठन के अन्य डेवलपर्स के साथ साझा कर सकते हैं। -
testing_uri
- परीक्षक अनुभव (एंड्रॉइड मूल ऐप) में रिलीज़ का एक लिंक जो परीक्षकों को रिलीज़ नोट्स देखने और ऐप को उनके डिवाइस पर इंस्टॉल करने देता है। लिंक का उपयोग करने के लिए परीक्षक को रिलीज़ तक पहुंच की आवश्यकता होती है। -
binary_download_uri
- एक हस्ताक्षरित लिंक जो सीधे ऐप बाइनरी (एपीके या एएबी फ़ाइल) को डाउनलोड और इंस्टॉल करता है। लिंक एक घंटे के बाद समाप्त हो जाता है.
एक बार जब आप अपना बिल्ड वितरित कर देते हैं, तो यह 150 दिनों (पांच महीने) के लिए फायरबेस कंसोल के ऐप डिस्ट्रीब्यूशन डैशबोर्ड में उपलब्ध हो जाता है। जब बिल्ड की समाप्ति तिथि 30 दिन रह जाती है, तो कंसोल और आपके परीक्षक की उनके परीक्षण डिवाइस पर बिल्ड की सूची में एक समाप्ति सूचना दिखाई देती है।
जिन परीक्षकों को ऐप का परीक्षण करने के लिए आमंत्रित नहीं किया गया है, उन्हें आरंभ करने के लिए ईमेल आमंत्रण प्राप्त होते हैं, और मौजूदा परीक्षकों को ईमेल सूचनाएं प्राप्त होती हैं कि एक नया निर्माण परीक्षण के लिए तैयार है (परीक्षण ऐप इंस्टॉल करने के निर्देशों के लिए परीक्षक सेट अप गाइड पढ़ें)। आप फायरबेस कंसोल में प्रत्येक परीक्षक की स्थिति की निगरानी कर सकते हैं - कि क्या उन्होंने निमंत्रण स्वीकार किया है और क्या उन्होंने ऐप डाउनलोड किया है।
ऐप की समय सीमा समाप्त होने से पहले उसका परीक्षण करने के लिए परीक्षकों के पास निमंत्रण स्वीकार करने के लिए 30 दिन का समय होता है। जब किसी आमंत्रण की समाप्ति से 5 दिन शेष होते हैं, तो रिलीज़ पर परीक्षक के बगल में फायरबेस कंसोल में एक समाप्ति सूचना दिखाई देती है। किसी आमंत्रण को परीक्षक पंक्ति पर ड्रॉप-डाउन मेनू का उपयोग करके पुनः भेजकर नवीनीकृत किया जा सकता है।
अगले कदम
परीक्षकों के लिए आपके ऐप के बारे में फीडबैक (स्क्रीनशॉट सहित) भेजना आसान बनाने के लिए इन-ऐप फीडबैक लागू करें।
जानें कि जब आपके ऐप के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध हों तो अपने परीक्षकों को इन-ऐप अलर्ट कैसे प्रदर्शित करें।
ऐप बंडल रिलीज़ को चरण दर चरण वितरित करने का तरीका जानने के लिए एंड्रॉइड ऐप बंडल कोडलैब पर जाएं।
सीआई/सीडी का उपयोग करके क्यूए परीक्षकों को एंड्रॉइड ऐप्स वितरित करने की सर्वोत्तम प्रक्रियाएं जानें।