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


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

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

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

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

पहला चरण. fastlane सेट अप करना

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

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

    fastlane add_plugin firebase_app_distribution

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

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

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

चरण 3. Fastfile सेट अप करना और अपना ऐप्लिकेशन डिस्ट्रिब्यूट करना

  1. ./fastlane/Fastfile लेन में, firebase_app_distribution ब्लॉक जोड़ें. डिस्ट्रिब्यूशन को कॉन्फ़िगर करने के लिए, इन पैरामीटर का इस्तेमाल करें:
    firebase_app_distribution पैरामीटर
    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(...)
        # 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!"
        )
    end
end

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

fastlane <lane>

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

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

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

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

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

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

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 फ़ाइल का इस्तेमाल करके या सीधे तौर पर Fastlane ऐक्शन चलाकर, अपने प्रोजेक्ट या ग्रुप में टेस्टर जोड़े और हटाए जा सकते हैं. सीधे कार्रवाइयां चलाने पर, आपके 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 पर सेट किया जा सकता है.

अगले चरण