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