fastlane एक ओपन सोर्स प्लैटफ़ॉर्म है. इसकी मदद से, iOS और Android ऐप्लिकेशन बनाने और उन्हें रिलीज़ करने की प्रोसेस को ऑटोमेट किया जा सकता है. इसका इस्तेमाल करके, टेस्टर को बिल्ड डिस्ट्रिब्यूट किए जा सकते हैं. यह Fastfile में तय किए गए आसान निर्देशों का पालन करता है.
fastlane और Fastfile सेट अप करने के बाद, App Distribution को अपने fastlane
कॉन्फ़िगरेशन के साथ इंटिग्रेट किया जा सकता है.
पहला चरण. fastlane सेट अप करना
अपने fastlane कॉन्फ़िगरेशन में App Distribution जोड़ने के लिए, अपने iOS प्रोजेक्ट की रूट डायरेक्ट्री से यह निर्देश चलाएं:
fastlane add_plugin firebase_app_distribution
अगर निर्देश आपको कोई विकल्प दिखाता है, तो
Option 3: RubyGems.orgचुनें.
दूसरा चरण. Firebase से पुष्टि करना
fastlane प्लग-इन का इस्तेमाल करने से पहले, आपको इनमें से किसी एक तरीके से अपने Firebase प्रोजेक्ट की पुष्टि करनी होगी. डिफ़ॉल्ट रूप से, fastlane प्लग-इन , Firebase सीएलआई से क्रेडेंशियल ढूंढता है. ऐसा तब होता है, जब पुष्टि करने का कोई दूसरा तरीका इस्तेमाल नहीं किया जाता.
तीसरा चरण. अपना Fastfile सेट अप करना और ऐप्लिकेशन डिस्ट्रिब्यूट करना
- किसी
./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_fileGoogle सेवा खाते की json फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, ऊपर दिया गया सेक्शन देखें.
ipa_pathapk_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_usernametest_password
test_password_fileApp Testing एजेंट के टेस्ट के दौरान, अपने-आप लॉगिन करने के लिए इस्तेमाल किया जाने वाला पासवर्ड.
इसके अलावा, सादे टेक्स्ट वाली उस फ़ाइल का पाथ तय किया जा सकता है जिसमें पासवर्ड मौजूद हो:
test_password_file: "/path/to/test-password.txt"
test_username_resourceApp Testing एजेंट के टेस्ट के दौरान, अपने-आप लॉगिन करने के लिए इस्तेमाल किए जाने वाले उपयोगकर्ता नाम वाले फ़ील्ड का संसाधन नाम.
test_password_resourceApp Testing एजेंट के टेस्ट के दौरान, अपने-आप लॉगिन करने के लिए इस्तेमाल किए जाने वाले पासवर्ड वाले फ़ील्ड का संसाधन नाम.
test_non_blockingअगर App Testing agent के टेस्ट चलाते समय इसे सेट किया जाता है, तो निर्देश टेस्ट शुरू करेगा और उनके पूरा होने का इंतज़ार करने के बजाय, तुरंत वापस आ जाएगा. टेस्ट के नतीजे देखने के लिए, 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: "<your Firebase app 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_testersfastlane ऐक्शन चलाना
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 कॉन्फ़िगरेशन फ़ाइल ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
आर्काइव किए गए प्रॉडक्ट के पाथ के हिसाब से, आपकी
अगर |
firebase_cli_token
|
एक रीफ़्रेश टोकन, जो Firebase सीएलआई की मदद से, अपने सीआई एनवायरमेंट की पुष्टि करने पर दिखता है. ज़्यादा जानकारी के लिए, सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करना लेख पढ़ें. |
service_credentials_file
|
Google सेवा खाते की json फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, पहले दिया गया दस्तावेज़ देखें. |
service_credentials_json_data
|
Google सेवा खाते की json फ़ाइल का कॉन्टेंट. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, पहले दिया गया दस्तावेज़ देखें. |
debug
|
एक बूलियन फ़्लैग. ज़्यादा जानकारी वाला डीबग आउटपुट दिखाने के लिए, इसे |
अगले चरण
ज़्यादा डिवाइसों को मैन्युअल तरीके से या प्रोग्राम के ज़रिए रजिस्टर करने के लिए, iOS के अन्य डिवाइस रजिस्टर करना लेख पढ़ें.
सीआई/सीडी और fastlane का इस्तेमाल करके, क्वालिटी अश्योरेंस (क्यूए) टेस्टर को Apple के ऐप्लिकेशन डिस्ट्रिब्यूट करने के सबसे सही तरीके जानें.