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

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

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

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

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

    fastlane add_plugin firebase_app_distribution

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

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

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

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

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

    सिर्फ़ तब ज़रूरी है, जब आपके ऐप्लिकेशन में Firebase कॉन्फ़िगरेशन फ़ाइल (GoogleService-Info.plist) न हो: आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी. ऐप्लिकेशन आईडी, Firebase कंसोल में, सामान्य सेटिंग वाले पेज पर देखा जा सकता है.

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    आर्काइव किए गए प्रॉडक्ट के पाथ के हिसाब से, आपकी GoogleService-Info.plist फ़ाइल का पाथ. डिफ़ॉल्ट रूप से, इसे GoogleService-Info.plist पर सेट किया जाता है.

    अगर app पैरामीटर की जानकारी नहीं दी जाती है, तो इस फ़ाइल का इस्तेमाल करके, आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी मिलता है.

    firebase_cli_token

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

    service_credentials_file

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

    ipa_path

    apk_path (अब इस्तेमाल में नहीं है) की जगह इस्तेमाल किया जाता है. अपलोड की जाने वाली IPA फ़ाइल का ऐब्सलूट पाथ. अगर इसकी जानकारी नहीं दी जाती है, तो 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

    वे टेस्ट डिवाइस जिन पर आपको App Testing एजेंट के टेस्ट चलाने हैं.

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

    test_devices: "model=shiba,version=34,locale=en,orientation=portrait"

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

    test_devices_file: "/path/to/test-devices.txt"
    test_username

    App Testing एजेंट के टेस्ट के दौरान, अपने-आप लॉगिन करने के लिए इस्तेमाल किया जाने वाला उपयोगकर्ता नाम.

    test_password
    test_password_file

    App Testing एजेंट के टेस्ट के दौरान, अपने-आप लॉगिन करने के लिए इस्तेमाल किया जाने वाला पासवर्ड.

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

    test_password_file: "/path/to/test-password.txt"
    test_username_resource

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

    test_password_resource

    App Testing एजेंट के टेस्ट के दौरान, अपने-आप लॉगिन करने के लिए इस्तेमाल किए जाने वाले पासवर्ड वाले फ़ील्ड का संसाधन नाम.

    test_non_blocking

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

    debug

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

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

platform :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        release = firebase_app_distribution(
            app: "1:123456789:ios: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 कंसोल का एक लिंक. इसमें एक रिलीज़ दिखती है. इस लिंक को अपने संगठन के अन्य डेवलपर के साथ शेयर किया जा सकता है.
  • टेस्टर के अनुभव (iOS वेब क्लिप) में रिलीज़ का एक लिंक. इसकी मदद से, टेस्टर रिलीज़ नोट देख सकते हैं और अपने डिवाइस पर ऐप्लिकेशन इंस्टॉल कर सकते हैं. लिंक का इस्तेमाल करने के लिए, टेस्टर के पास रिलीज़ का ऐक्सेस होना चाहिए.
  • एक साइन किया गया लिंक. इससे ऐप्लिकेशन की बाइनरी (IPA फ़ाइल) सीधे डाउनलोड और इंस्टॉल हो जाती है. यह लिंक एक घंटे बाद काम नहीं करता.

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

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

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

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: &<quot;your Firebase a>pp ID"
  )
  increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end

fastlane प्लग-इन की इस सुविधा के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन की नई रिलीज़ के बारे में जानकारी पाना लेख पढ़ें.

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

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:&quot;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, अपलोड ऐक्शन के लिए इस्तेमाल किए जाने वाले एक ही आर्ग्युमेंट हैं.

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

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 कॉन्फ़िगरेशन फ़ाइल (GoogleService-Info.plist) न हो: आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी. ऐप्लिकेशन आईडी, Firebase कंसोल में, सामान्य सेटिंग वाले पेज पर देखा जा सकता है.

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

आर्काइव किए गए प्रॉडक्ट के पाथ के हिसाब से, आपकी GoogleService-Info.plist फ़ाइल का पाथ. डिफ़ॉल्ट रूप से, इसे GoogleService-Info.plist पर सेट किया जाता है.

अगर app पैरामीटर की जानकारी नहीं दी जाती है, तो इस फ़ाइल का इस्तेमाल करके, आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी मिलता है.

firebase_cli_token

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

service_credentials_file

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

service_credentials_json_data

Google सेवा खाते की json फ़ाइल का कॉन्टेंट. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, पहले दिया गया दस्तावेज़ देखें.

debug

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

अगले चरण