फ़ास्टलेन का इस्तेमाल करके जांच करने वाले लोगों को Android ऐप्लिकेशन उपलब्ध कराना

इस गाइड में फ़ास्टलेन का इस्तेमाल करके, टेस्टर को एएबी बिल्ड कैसे डिस्ट्रिब्यूट किया जा सकता है. यह एक ओपन सोर्स प्लैटफ़ॉर्म है, जो अपने-आप iOS और Android ऐप्लिकेशन बनाने और रिलीज़ करने की सुविधा देता है. यह Fastfile में बताए गए आसान निर्देशों का पालन करता है. फ़ास्टलेन और Fastfile सेट अप करने के बाद, ऐप्लिकेशन डिस्ट्रिब्यूशन को फ़ास्टलेन कॉन्फ़िगरेशन के साथ इंटिग्रेट किया जा सकता है.

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

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

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

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

  • अपने ऐप्लिकेशन के टेस्टर के लिए, डाउनलोड का साइज़ कम करें.

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

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

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

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

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

वेब कंटेनर इंस्टॉल करने से पहले

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

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

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

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

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

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

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

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

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

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

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

पहला चरण. फ़ास्टलेन सेट अप करें

  1. फ़ास्टलेन इंस्टॉल करें और उसे सेट अप करें.

  2. अपने फ़ास्टलेन कॉन्फ़िगरेशन में App Distribution जोड़ने के लिए, अपने Android प्रोजेक्ट के रूट से यह कमांड चलाएं:

    fastlane add_plugin firebase_app_distribution

    अगर निर्देश आपको कोई विकल्प दिखाता है, तो Option 3: RubyGems.org चुनें.

दूसरा चरण. Firebase की मदद से पुष्टि करें

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

तीसरा चरण. अपनी फ़ास्टफ़ाइल सेट अप करना और अपने ऐप्लिकेशन को लोगों तक पहुंचाना

  1. ./fastlane/Fastfile लेन में, firebase_app_distribution ब्लॉक जोड़ें. डिस्ट्रिब्यूशन को कॉन्फ़िगर करने के लिए, इन पैरामीटर का इस्तेमाल करें:
    firebase_app_डिस्ट्रिब्यूशन पैरामीटर
    app

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

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

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

    service_credentials_file

    आपके Google सेवा खाते की json फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका ऊपर देखें.

    android_artifact_type

    Android फ़ाइल टाइप (APK या एएबी) के बारे में बताता है.

    android_artifact_path

    apk_path (अब सेवा में नहीं है) को बदल देता है. उस APK या एएबी फ़ाइल का ऐब्सलूट पाथ जिसे अपलोड करना है. अगर इसकी जानकारी नहीं दी गई है, तो फ़ास्टलेन से फ़ाइल की जगह की जानकारी का पता चलता है. यह जानकारी, उसी लेन से होती है जिसमें फ़ाइल जनरेट की गई थी.

    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"
    test_devices
    test_devices_file

    नीचे दिए गए डिस्ट्रिब्यूशन टाइप, ऑटोमेटेड टेस्टर बीटा सुविधा का हिस्सा हैं.

    टेस्ट वाले वे डिवाइस जिन पर आपको बिल्ड डिस्ट्रिब्यूट करना है (ऑटोमेटेड टेस्ट देखें).

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

    test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,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 कंसोल पर जाएं.

    debug

    बूलियन फ़्लैग. वर्बोस डीबग आउटपुट प्रिंट करने के लिए, इसे true पर सेट किया जा सकता है.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

बिल्ड टेस्ट करने वालों को उपलब्ध कराने के लिए, अपनी लेन चलाएं:

fastlane <lane>

कार्रवाई की रिटर्न वैल्यू एक हैश है, जो अपलोड की गई रिलीज़ को दिखाता है. यह हैश, lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] का इस्तेमाल करके भी उपलब्ध है. इस हैश में उपलब्ध फ़ील्ड के बारे में ज़्यादा जानकारी के लिए, REST API दस्तावेज़ देखें.

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

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

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

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

(ज़रूरी नहीं) App Distribution में नई रिलीज़ बनाने पर, हर बार बिल्ड नंबर अपने-आप बढ़ने की सुविधा चालू करने के लिए, firebase_app_distribution_get_latest_release ऐक्शन और उदाहरण के लिए, increment_version_code फ़ास्टलेन प्लगिन का इस्तेमाल करें. नीचे दिए गए कोड में, बिल्ड नंबर अपने-आप बढ़ने का तरीका बताया गया है:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

firebase_app_distribution_get_latest_release की कार्रवाई के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन की नई रिलीज़ के बारे में जानकारी पाना लेख पढ़ें.

चौथा चरण (ज़रूरी नहीं). डिस्ट्रिब्यूशन के लिए, टेस्टर को मैनेज करना

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

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

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

Fastfile का इस्तेमाल करें

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

फ़ास्टलेन से जुड़ी कार्रवाइयां करें

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

टेस्टर के बारे में बताने के लिए, --emails के बजाय --file="/path/to/testers.txt का इस्तेमाल भी किया जा सकता है.

firebase_app_distribution_add_testers और firebase_app_distribution_remove_testers टास्क भी इन तर्क को स्वीकार करते हैं:

  • project_name: आपके Firebase प्रोजेक्ट का नंबर.
  • group_alias (ज़रूरी नहीं): अगर बताया गया है, तो टेस्टर को तय किए गए ग्रुप में जोड़ा जाता है या उससे हटाया जाता है.
  • service_credentials_file: आपकी Google सेवा क्रेडेंशियल फ़ाइल का पाथ.
  • firebase_cli_token: Firebase सीएलआई के लिए पुष्टि करने वाला टोकन.

service_credentials_file और firebase_cli_token वही आर्ग्युमेंट हैं जिनका इस्तेमाल अपलोड ऐक्शन के लिए किया जाता है.

पांचवां चरण (ज़रूरी नहीं). अपने ऐप्लिकेशन के नए वर्शन के बारे में जानकारी पाना

App Distribution में, अपने ऐप्लिकेशन की नई रिलीज़ के बारे में जानकारी फ़ेच करने के लिए, firebase_app_distribution_get_latest_release कार्रवाई का इस्तेमाल किया जा सकता है. इसमें ऐप्लिकेशन के वर्शन की जानकारी, प्रॉडक्ट की जानकारी, और उसे बनाने का समय शामिल है. इस्तेमाल के उदाहरणों में, वर्शन को अपने-आप बढ़ाना और पिछली रिलीज़ के रिलीज़ नोट शामिल करना शामिल है.

कार्रवाई की रिटर्न वैल्यू एक हैश है, जो नई रिलीज़ को दिखाता है. यह हैश, lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] का इस्तेमाल करके भी उपलब्ध है. इस हैश में उपलब्ध फ़ील्ड के बारे में ज़्यादा जानकारी के लिए, REST API दस्तावेज़ देखें.

पैरामीटर

firebase_app_ Distribution_get_latest_release पैरामीटर
app

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

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

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

service_credentials_file

आपके Google सेवा खाते की json फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका ऊपर देखें.

debug

बूलियन फ़्लैग. वर्बोस डीबग आउटपुट प्रिंट करने के लिए, इसे true पर सेट किया जा सकता है.

अगले चरण