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


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

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

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

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

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

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

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

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

    fastlane add_plugin firebase_app_distribution

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

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

fastlane प्लगिन का इस्तेमाल करने से पहले, आपको इनमें से किसी एक तरीके से अपने Firebase प्रोजेक्ट की पुष्टि करनी होगी. अगर पुष्टि करने के लिए किसी अन्य तरीके का इस्तेमाल नहीं किया जाता है, तो fastlane प्लगिन डिफ़ॉल्ट रूप से 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 या AAB) के बारे में पता चलता है.

    android_artifact_path

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

    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"

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

    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 दिन पहले, Console में और टेस्टर के टेस्ट डिवाइस पर मौजूद बिल्ड की सूची में, समयसीमा खत्म होने की सूचना दिखती है.

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

(ज़रूरी नहीं) App Distribution में हर बार नई रिलीज़ बनाने पर, बिल्ड नंबर को अपने-आप बढ़ाने के लिए, 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 ऐक्शन चलाना

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_number: आपके Firebase प्रोजेक्ट का नंबर.
  • group_alias (ज़रूरी नहीं): अगर यह पैरामीटर दिया गया है, तो टेस्टर को बताए गए ग्रुप में जोड़ा जाता है या उससे हटाया जाता है.
  • service_credentials_file: Google सेवा के क्रेडेंशियल वाली फ़ाइल का पाथ.
  • firebase_cli_token: Firebase सीएलआई के लिए ऑथेंटिकेशन टोकन.

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

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

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

कार्रवाई की रिटर्न वैल्यू, एक हैश होती है जो सबसे नई रिलीज़ को दिखाती है. यह हैश, 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 पर सेट किया जा सकता है, ताकि ज़्यादा शब्दों में डीबग आउटपुट प्रिंट किया जा सके.

अगले चरण