टेस्टर को बिल्ड डिस्ट्रिब्यूट करने के लिए, fastlane का इस्तेमाल किया जा सकता है. यह एक ओपन सोर्स प्लैटफ़ॉर्म है. यह iOS और Android ऐप्लिकेशन बनाने और रिलीज़ करने की प्रोसेस को अपने-आप पूरा करता है. यह गाइड, Fastfile में दिए गए निर्देशों के मुताबिक है. fastlane और Fastfile को सेट अप करने के बाद, App Distribution को fastlane कॉन्फ़िगरेशन के साथ इंटिग्रेट किया जा सकता है.
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Apple प्रोजेक्ट में Firebase जोड़ें.
अगर आपको Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं करना है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपने ऐप्लिकेशन को रजिस्टर करना होगा. हालांकि, अगर आपको आने वाले समय में अन्य प्रॉडक्ट का इस्तेमाल करना है, तो ऊपर लिंक किए गए पेज पर दिए गए सभी चरणों को पूरा करना न भूलें.
Firebase कंसोल का App Distribution पेज खोलें. जब आपसे पूछा जाए, तब अपना Firebase प्रोजेक्ट चुनें. इसके बाद, ऐप्लिकेशन स्विचर का इस्तेमाल करके अपना ऐप्लिकेशन चुनें और शुरू करें पर क्लिक करें.
पहला चरण. fastlane सेट अप करना
fastlane कॉन्फ़िगरेशन में App Distribution जोड़ने के लिए, अपने iOS प्रोजेक्ट के रूट से यह कमांड चलाएं:
fastlane add_plugin firebase_app_distribution
अगर निर्देश देने पर आपको कोई विकल्प दिखता है, तो
Option 3: RubyGems.orgको चुनें.
दूसरा चरण. Firebase की मदद से पुष्टि करना
fastlane प्लगिन का इस्तेमाल करने से पहले, आपको इनमें से किसी एक तरीके से अपने Firebase प्रोजेक्ट की पुष्टि करनी होगी. डिफ़ॉल्ट रूप से, fastlane प्लगिन Firebase CLI से क्रेडेंशियल ढूंढता है. ऐसा तब होता है, जब पुष्टि करने का कोई दूसरा तरीका इस्तेमाल न किया गया हो.
चरण 3. 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_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
ऐसे टेस्ट डिवाइस जिन पर आपको ऐप्लिकेशन टेस्टिंग एजेंट की जांच करनी है.
टेस्ट डिवाइसों को, डिवाइस की खास जानकारी के तौर पर सेमीकोलन लगाकर अलग की गई सूची में शामिल किया जा सकता है:
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 :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 वेब क्लिप). इससे टेस्टर, रिलीज़ नोट देख सकते हैं और अपने डिवाइस पर ऐप्लिकेशन इंस्टॉल कर सकते हैं. लिंक का इस्तेमाल करने के लिए, टेस्टर के पास रिलीज़ का ऐक्सेस होना चाहिए.
- यह एक ऐसा लिंक होता है जिस पर हस्ताक्षर किया गया हो. इस लिंक पर क्लिक करने से, ऐप्लिकेशन बाइनरी (आईपीए फ़ाइल) सीधे तौर पर डाउनलोड और इंस्टॉल हो जाती है. लिंक की समयसीमा एक घंटे के बाद खत्म हो जाती है.
अपनी बिल्ड को डिस्ट्रिब्यूट करने के बाद, यह Firebase कंसोल के App Distribution डैशबोर्ड में 150 दिनों तक उपलब्ध रहती है. जब बिल्ड की समयसीमा खत्म होने में 30 दिन बाकी होते हैं, तब कंसोल में और टेस्टर के टेस्ट के लिए डिवाइस पर, बिल्ड की सूची में समयसीमा खत्म होने की सूचना दिखती है.
जिन टेस्टर को पहले ऐप्लिकेशन टेस्ट करने का न्योता नहीं मिला था उन्हें शुरू करने के लिए ईमेल से न्योते मिलते हैं. मौजूदा टेस्टर को ईमेल से सूचना मिलती है कि नई बिल्ड को टेस्ट किया जा सकता है. टेस्ट ऐप्लिकेशन इंस्टॉल करने का तरीका जानने के लिए, टेस्टर के तौर पर सेट अप करना लेख पढ़ें. हर टेस्टर की स्थिति को मॉनिटर किया जा सकता है. इससे यह पता चलता है कि उन्होंने न्योता स्वीकार किया है या नहीं. साथ ही, यह भी पता चलता है कि उन्होंने 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, अपलोड करने की कार्रवाई के लिए इस्तेमाल किए गए एक जैसे आर्ग्युमेंट हैं.
पांचवां चरण (ज़रूरी नहीं). अपने ऐप्लिकेशन की नई रिलीज़ के बारे में जानकारी पाना
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 कॉन्फ़िगरेशन फ़ाइल ( 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 डिवाइस रजिस्टर करना लेख पढ़ें.
CI/CD और fastlane का इस्तेमाल करके, QA टेस्टर को Apple ऐप्लिकेशन उपलब्ध कराने के सबसे सही तरीके जानें.