Firebase सीएलआई का इस्तेमाल करके, जांच करने वाले लोगों को Android ऐप्लिकेशन उपलब्ध कराएं


इस गाइड में, Firebase सीएलआई का इस्तेमाल करके, टेस्टर के साथ Android ऐप्लिकेशन बंडल (AAB) शेयर करने का तरीका बताया गया है. सीएलआई टूल की मदद से, किसी बिल्ड के लिए टेस्टर और रिलीज़ नोट तय किए जा सकते हैं. इसके बाद, बिल्ड को उसी हिसाब से डिस्ट्रिब्यूट किया जाता है.

App Distribution, Google Play की संगठन में काम करने वालों के साथ ऐप्लिकेशन शेयर करने की सुविधा के साथ इंटिग्रेट होता है. इससे, आपके अपलोड किए गए एएबी को प्रोसेस किया जाता है और ऐसे APK उपलब्ध कराए जाते हैं जो आपके टेस्टर के डिवाइस कॉन्फ़िगरेशन के हिसाब से ऑप्टिमाइज़ किए गए हों. AABs को डिस्ट्रिब्यूट करने पर, ये काम किए जा सकते हैं:

  • ऑप्टिमाइज़ किए गए ऐसे APKs चलाएं जो आपके टेस्टर के डिवाइसों के लिए ऑप्टिमाइज़ किए गए हों. ये APKs, Google Play उपलब्ध कराता है.

  • डिवाइस से जुड़ी समस्याओं का पता लगाएं और उन्हें डीबग करें.

  • ऐप्लिकेशन बंडल की सुविधाओं को टेस्ट करें. जैसे, Play Feature Delivery और Play ऐसेट डिलीवरी.

  • टेस्टर के लिए, डाउनलोड किए जाने वाले डेटा का साइज़ कम करना.

ज़रूरी अनुमतियां

App Distribution पर AAB अपलोड करने के लिए, आपको अपने Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करना होगा. इन कार्रवाइयों को करने के लिए, आपके पास ज़रूरी लेवल का ऐक्सेस होना चाहिए.

अगर आपके पास Firebase का ज़रूरी ऐक्सेस नहीं है, तो Firebase प्रोजेक्ट के मालिक से कहें कि वह Firebase कंसोल IAM सेटिंग का इस्तेमाल करके, आपको ज़रूरी भूमिका असाइन करे. अगर आपको अपने Firebase प्रोजेक्ट को ऐक्सेस करने के बारे में कुछ पूछना है, तो "Firebase प्रोजेक्ट की अनुमतियों और ऐक्सेस" के बारे में अक्सर पूछे जाने वाले सवाल देखें. इसमें, प्रोजेक्ट के मालिक को ढूंढने या असाइन करने के बारे में भी जानकारी दी गई है.

यहां दी गई टेबल, Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करने और एएबी अपलोड करने पर लागू होती है.

Firebase कंसोल में कार्रवाई IAM से जुड़ी ज़रूरी अनुमति IAM की ऐसी भूमिकाएं जिनमें ज़रूरी अनुमतियां डिफ़ॉल्ट रूप से शामिल होती हैं ज़रूरी अन्य भूमिकाएं
Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करना firebase.playLinks.update इनमें से कोई एक भूमिका: Google Play डेवलपर खाते का ऐक्सेस एडमिन के तौर पर
App Distribution पर एएबी अपलोड करें firebaseappdistro.releases.update इनमें से कोई एक भूमिका: ––

शुरू करने से पहले

  1. अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें. इस वर्कफ़्लो के आखिर में, आपके Firebase प्रोजेक्ट में एक Firebase Android ऐप्लिकेशन होगा.

    अगर आपको Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं करना है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. अगर आपको अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो अपने Android प्रोजेक्ट में Firebase जोड़ें में दिए गए सभी चरणों को पूरा करें.

  2. Firebase कंसोल का App Distribution पेज खोलें. जब आपसे कहा जाए, तब अपना Firebase प्रोजेक्ट चुनें. इसके बाद, ऐप्लिकेशन स्विचर का इस्तेमाल करके अपना ऐप्लिकेशन चुनें और शुरू करें पर क्लिक करें.

  3. Google Play से Firebase लिंक बनाने और AABs अपलोड करने के लिए, पक्का करें कि आपका ऐप्लिकेशन इन ज़रूरी शर्तों को पूरा करता हो:

    • Google Play में मौजूद ऐप्लिकेशन और Firebase Android ऐप्लिकेशन, दोनों को पैकेज के एक ही नाम का इस्तेमाल करके रजिस्टर किया गया हो.

    • Google Play पर मौजूद ऐप्लिकेशन को ऐप्लिकेशन के डैशबोर्ड पर सेट अप किया गया हो और Google Play के किसी एक ट्रैक (इंटरनल टेस्टिंग, क्लोज़्ड टेस्टिंग, ओपन टेस्टिंग या प्रोडक्शन) पर डिस्ट्रिब्यूट किया गया हो.

    • Google Play पर ऐप्लिकेशन की समीक्षा पूरी हो गई है और ऐप्लिकेशन पब्लिश हो गया है. अगर ऐप्लिकेशन की स्थिति कॉलम में इनमें से कोई एक स्थिति दिखती है, तो इसका मतलब है कि आपका ऐप्लिकेशन पब्लिश हो गया है: इंटरनल टेस्टिंग (ड्राफ़्ट की इंटरनल टेस्टिंग नहीं), क्लोज़्ड टेस्टिंग, ओपन टेस्टिंग या प्रोडक्शन.

  4. Firebase में बने Android ऐप्लिकेशन को अपने Google Play डेवलपर खाते से लिंक करना:

    1. Firebase कंसोल में, प्रोजेक्ट सेटिंग पर जाएं. इसके बाद, इंटिग्रेशन टैब को चुनें.

    2. Google Play कार्ड पर जाकर, जोड़ें पर क्लिक करें.
      अगर आपने पहले से ही Google Play से लिंक किया हुआ है, तो मैनेज करें पर क्लिक करें.

    3. App Distribution इंटिग्रेशन को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें. इसके बाद, चुनें कि आपको Firebase के किन Android ऐप्लिकेशन को Google Play से लिंक करना है.

    Google Play से लिंक करने के बारे में ज़्यादा जानें.

पहला चरण. अपना ऐप्लिकेशन बनाएं

जब आप टेस्टर को अपने ऐप्लिकेशन का रिलीज़ से पहले वाला वर्शन उपलब्ध कराने के लिए तैयार हों, तो अपना एएबी बनाएं. इसके लिए, Android Studio के दस्तावेज़ पर जाएं.

दूसरा चरण. टेस्टर के साथ अपना ऐप्लिकेशन शेयर करना

टेस्टर के साथ अपना ऐप्लिकेशन शेयर करने के लिए, Firebase सीएलआई का इस्तेमाल करके अपने ऐप्लिकेशन की फ़ाइल अपलोड करें:

  1. Firebase सीएलआई का नया वर्शन इंस्टॉल या अपडेट करें. हमारा सुझाव है कि आप अपने ओएस के हिसाब से सीएलआई के लिए स्टैंडअलोन बाइनरी डाउनलोड करें. साइन इन करना न भूलें. साथ ही, यह जांच लें कि आपके पास अपने प्रोजेक्ट का ऐक्सेस है या नहीं.
  2. अपना ऐप्लिकेशन अपलोड करने और उसे टेस्टर के साथ शेयर करने के लिए, appdistribution:distribute कमांड चलाएं. डिस्ट्रिब्यूशन को कॉन्फ़िगर करने के लिए, इन पैरामीटर का इस्तेमाल करें:

    appdistribution:distribute options
    --app

    ज़रूरी है: आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी. ऐप्लिकेशन आईडी, Firebase कंसोल में सामान्य सेटिंग पेज पर देखा जा सकता है.

    --app 1:1234567890:android:0a1b2c3d4e5f67890
    --token

    एक रीफ़्रेश टोकन, जो Firebase सीएलआई की मदद से आपके सीआई एनवायरमेंट की पुष्टि करने पर प्रिंट होता है. ज़्यादा जानकारी के लिए, सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करना लेख पढ़ें.

    --token "$FIREBASE_TOKEN"
    --release-notes
    --release-notes-file

    इस बिल्ड के लिए रिलीज़ नोट.

    आपके पास सीधे तौर पर रिलीज़ नोट देने का विकल्प है:

    --release-notes "Text of release notes"

    इसके अलावा, सादे टेक्स्ट वाली फ़ाइल का पाथ बताएं:

    --release-notes-file "/path/to/release-notes.txt"
    --testers
    --testers-file

    उन टेस्टर के ईमेल पते जिन्हें आपको न्योता भेजना है.

    टेस्टर के तौर पर, कॉमा लगाकर अलग किए गए ईमेल पतों की सूची दी जा सकती है:

    --testers "ali@example.com, bri@example.com, cal@example.com"

    इसके अलावा, सादे टेक्स्ट वाली किसी ऐसी फ़ाइल का पाथ भी दिया जा सकता है जिसमें कॉमा लगाकर अलग की गई लिस्ट में ईमेल पते हों:

    --testers-file "/path/to/testers.txt"
    --groups
    --groups-file

    टेस्टर के वे ग्रुप जिन्हें आपको न्योता भेजना है. इसके लिए, टेस्टर मैनेज करें देखें. ग्रुप की जानकारी देने के लिए, ग्रुप के अन्य ईमेल पतों का इस्तेमाल किया जाता है. इन्हें Firebase कंसोल में देखा जा सकता है.

    ग्रुप को कॉमा लगाकर अलग की गई सूची के तौर पर दिखाया जा सकता है:

    --groups "qa-team, trusted-testers"

    इसके अलावा, कॉमा लगाकर अलग की गई ग्रुप के नामों की सूची वाली सादे टेक्स्ट की फ़ाइल का पाथ भी दिया जा सकता है:

    --groups-file "/path/to/groups.txt"
    --debug

    एक फ़्लैग, जिसे ज़्यादा शब्दों वाले लॉग आउटपुट को प्रिंट करने के लिए शामिल किया जा सकता है.

    --test-devices
    --test-devices-file

    वे टेस्ट डिवाइस जिन पर आपको ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट चलाने हैं.

    टेस्ट डिवाइसों की जानकारी को सेमीकोलन से अलग की गई सूची के तौर पर दिया जा सकता है:

    --test-devices: "model=shiba,version=34,locale=en,orientation=portrait"

    इसके अलावा, सादे टेक्स्ट वाली फ़ाइल का पाथ भी दिया जा सकता है. इसमें टेस्ट डिवाइसों की सूची होती है, जिसमें डिवाइसों के नाम सेमीकोलन से अलग किए गए होते हैं:

    --test-devices-file: "/path/to/test-devices.txt"
    --test-username

    ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने के लिए उपयोगकर्ता नाम.

    --test-password
    --test-password-file

    ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने की सुविधा के लिए इस्तेमाल किया जाने वाला पासवर्ड.

    इसके अलावा, पासवर्ड वाली सादे टेक्स्ट की फ़ाइल का पाथ भी दिया जा सकता है:

    --test-password-file: "/path/to/test-password.txt"
    --test-username-resource

    उपयोगकर्ता नाम वाले फ़ील्ड के लिए संसाधन का नाम, ताकि ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट के दौरान अपने-आप लॉगिन होने की सुविधा का इस्तेमाल किया जा सके.

    --test-password-resource

    ऐप्लिकेशन टेस्टिंग एजेंट की मदद से टेस्ट करने के दौरान, अपने-आप लॉगिन होने के लिए पासवर्ड फ़ील्ड के रिसॉर्स का नाम.

    --test-non-blocking

    अगर ऐप्लिकेशन टेस्टिंग एजेंट टेस्ट चलाते समय इसे सेट किया जाता है, तो कमांड टेस्ट शुरू कर देगा. इसके बाद, टेस्ट पूरा होने का इंतज़ार करने के बजाय, तुरंत वापस आ जाएगा. टेस्ट के नतीजे देखने के लिए, Firebase कंसोल पर जाएं. अगर यह फ़्लैग सेट नहीं है, तो टेस्ट पूरे होने तक कमांड ब्लॉक रहेगा. साथ ही, अगर कोई टेस्ट फ़ेल होता है, तो फ़ेलियर कोड के साथ बाहर निकल जाएगा.

    --results-bucket

    Google Cloud Storage (GCS) की कस्टम बकेट, जहां टेस्ट के नतीजे सेव किए जाते हैं. इस फ़ील्ड को खाली छोड़ने पर, डिफ़ॉल्ट बकेट का इस्तेमाल किया जाता है. बकेट का मालिकाना हक, बिलिंग की सुविधा वाले प्रोजेक्ट के पास होना चाहिए. साथ ही, बकेट की जानकारी देने पर, इस्तेमाल किए गए स्टोरेज के लिए बिलिंग शुल्क देना होगा.

    उदाहरण के लिए:

    firebase appdistribution:distribute test.aab  \
        --app 1:1234567890:android:0a1b2c3d4e5f67890  \
        --release-notes "Bug fixes and improvements" --testers-file testers.txt

    रिलीज़ अपलोड होने के बाद, Firebase CLI ये लिंक दिखाता है. इन लिंक की मदद से, बाइनरी को मैनेज किया जा सकता है. साथ ही, यह पक्का किया जा सकता है कि टेस्टर और अन्य डेवलपर के पास सही रिलीज़ हो:

    • firebase_console_uri - Firebase कंसोल का लिंक, जो एक रिलीज़ दिखाता है. इस लिंक को अपने संगठन के अन्य डेवलपर के साथ शेयर किया जा सकता है.
    • testing_uri - टेस्टर के अनुभव (पहले से मौजूद Android ऐप्लिकेशन) में रिलीज़ का लिंक. इससे टेस्टर, रिलीज़ नोट देख सकते हैं और अपने डिवाइस पर ऐप्लिकेशन इंस्टॉल कर सकते हैं. लिंक का इस्तेमाल करने के लिए, टेस्टर के पास रिलीज़ का ऐक्सेस होना चाहिए.
    • binary_download_uri - साइन किया गया एक लिंक, जो ऐप्लिकेशन बाइनरी (APK या AAB फ़ाइल) को सीधे डाउनलोड और इंस्टॉल करता है. लिंक की समयसीमा एक घंटे बाद खत्म हो जाती है.

    टेस्टर और ग्रुप मैनेज करना

    रिलीज़ को डिस्ट्रिब्यूट करने के अलावा, appdistribution:testers:add और appdistribution:testers:remove का इस्तेमाल करके, नए टेस्टर को न्योता भेजा जा सकता है या अपने Firebase प्रोजेक्ट से मौजूदा टेस्टर को हटाया जा सकता है.

    अपने Firebase प्रोजेक्ट में टेस्टर को जोड़ने के बाद, उन्हें अलग-अलग रिलीज़ में जोड़ा जा सकता है. टेस्टर को हटाने के बाद, वह आपके प्रोजेक्ट की रिलीज़ को ऐक्सेस नहीं कर पाएगा. ध्यान दें कि हाल ही में हटाए गए टेस्टर के पास, कुछ समय के लिए आपकी रिलीज़ का ऐक्सेस अब भी हो सकता है.

    उदाहरण के लिए:

    firebase appdistribution:testers:add anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove anothertester@email.com moretesters@email.com

    टेस्टर के ईमेल पतों को स्पेस से अलग किया जाना चाहिए. --file /path/to/testers.txt का इस्तेमाल करके, टेस्टर की जानकारी भी दी जा सकती है.

    अगर आपके पास बड़ी संख्या में टेस्टर हैं, तो आपको ग्रुप का इस्तेमाल करना चाहिए: अपने Firebase प्रोजेक्ट में ग्रुप बनाने या मिटाने के लिए, appdistribution:group:create और appdistribution:group:delete का इस्तेमाल किया जा सकता है.

    --group-alias का इस्तेमाल करके, appdistribution:testers:add और appdistribution:testers:remove निर्देशों के लिए कोई ग्रुप तय करें.

    उदाहरण के लिए:

    firebase appdistribution:group:create "QA team" qa-team
    
    firebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:group:delete qa-team

बिल्ड को डिस्ट्रिब्यूट करने के बाद, वह Firebase console के App Distribution डैशबोर्ड पर 150 दिनों (पांच महीने) तक उपलब्ध रहता है. जब बिल्ड की समयसीमा खत्म होने में 30 दिन बचे हों, तो Console और टेस्टर के टेस्ट डिवाइस पर मौजूद बिल्ड की सूची, दोनों में समयसीमा खत्म होने की सूचना दिखती है.

जिन टेस्टर को ऐप्लिकेशन की टेस्टिंग के लिए न्योता नहीं भेजा गया है उन्हें टेस्टिंग शुरू करने के लिए ईमेल से न्योते भेजे जाते हैं. साथ ही, मौजूदा टेस्टर को ईमेल से सूचनाएं भेजी जाती हैं कि टेस्टिंग के लिए एक नया बिल्ड तैयार है. टेस्ट ऐप्लिकेशन इंस्टॉल करने के तरीके के बारे में जानने के लिए, टेस्टर सेट अप करने की गाइड पढ़ें. Firebase कंसोल में, हर टेस्टर की स्थिति पर नज़र रखी जा सकती है. जैसे, उन्होंने न्योता स्वीकार किया है या नहीं और ऐप्लिकेशन डाउनलोड किया है या नहीं.

टेस्टर के पास, ऐप्लिकेशन को टेस्ट करने का न्योता स्वीकार करने के लिए 30 दिन होते हैं. इसके बाद, न्योते की समयसीमा खत्म हो जाती है. न्योते की समयसीमा खत्म होने से पांच दिन पहले, Firebase कंसोल में टेस्टर के नाम के बगल में, समयसीमा खत्म होने की सूचना दिखती है. टेस्टर की लाइन में मौजूद ड्रॉप-डाउन मेन्यू का इस्तेमाल करके, न्योते को फिर से भेजा जा सकता है.

अगले चरण