इस गाइड में, जांच करने वाले लोगों को AAB बिल्ड डिस्ट्रिब्यूट करने का तरीका बताया गया है. इसके लिए, fastlane का इस्तेमाल किया जाता है. यह एक ओपन सोर्स प्लैटफ़ॉर्म है. यह iOS और Android ऐप्लिकेशन बनाने और उन्हें रिलीज़ करने की प्रोसेस को अपने-आप पूरा करता है. यह Fastfile
में तय किए गए आसान निर्देशों का पालन करता है. fastlane और Fastfile
को सेट अप करने के बाद, App Distribution को fastlane कॉन्फ़िगरेशन के साथ इंटिग्रेट किया जा सकता है.
App Distribution, Google Play की संगठन में काम करने वालों के साथ ऐप्लिकेशन शेयर करने की सुविधा के साथ इंटिग्रेट होता है. इससे, आपके अपलोड किए गए AAB प्रोसेस किए जाते हैं और टेस्टर के डिवाइस कॉन्फ़िगरेशन के हिसाब से ऑप्टिमाइज़ किए गए APK उपलब्ध कराए जाते हैं. AAB फ़ाइलें डिस्ट्रिब्यूट करने पर, ये काम किए जा सकते हैं:
Google Play की ओर से उपलब्ध कराए गए ऑप्टिमाइज़ किए गए APK चलाएं. ये APK, आपके टेस्टर के डिवाइसों के हिसाब से ऑप्टिमाइज़ किए जाते हैं.
डिवाइस से जुड़ी समस्याओं का पता लगाएं और उन्हें डीबग करें.
ऐप्लिकेशन बंडल की सुविधाओं को टेस्ट करें. जैसे, Play Feature Delivery और Play Asset Delivery.
टेस्टर के लिए, डाउनलोड का साइज़ कम करें.
ज़रूरी अनुमतियां
App Distribution पर AAB अपलोड करने के लिए, आपको अपने Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करना होगा. ये कार्रवाइयां करने के लिए, आपके पास ज़रूरी लेवल का ऐक्सेस होना चाहिए.
अगर आपके पास Firebase का ज़रूरी ऐक्सेस नहीं है, तो Firebase प्रोजेक्ट के मालिक से कहें कि वह Firebase कंसोल IAM सेटिंग के ज़रिए, आपको लागू होने वाली भूमिका असाइन करे. अगर आपको अपने Firebase प्रोजेक्ट को ऐक्सेस करने के बारे में कोई सवाल पूछना है, तो "Firebase प्रोजेक्ट की अनुमतियां और ऐक्सेस" के बारे में अक्सर पूछे जाने वाले सवाल पढ़ें. इसमें आपको किसी प्रोजेक्ट के लिए मालिक असाइन करने या उसे ढूंढने के तरीके के बारे में भी जानकारी मिलेगी.
नीचे दी गई टेबल में, Google Play में मौजूद किसी ऐप्लिकेशन को Firebase ऐप्लिकेशन से लिंक करने और AAB अपलोड करने के बारे में बताया गया है.
Firebase कंसोल में कार्रवाई | IAM से जुड़ी ज़रूरी अनुमति | आईएएम की ऐसी भूमिकाएं जिनमें ज़रूरी अनुमतियां डिफ़ॉल्ट रूप से शामिल होती हैं | अन्य ज़रूरी भूमिकाएं |
---|---|---|---|
किसी Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करना | firebase.playLinks.update
|
इनमें से कोई एक भूमिका: | Google Play डेवलपर खाते का एडमिन के तौर पर ऐक्सेस |
App Distribution पर एएबी अपलोड करना | firebaseappdistro.releases.update
|
इनमें से कोई एक भूमिका: | –– |
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें. इस वर्कफ़्लो के आखिर में, आपके पास Firebase प्रोजेक्ट में Firebase Android ऐप्लिकेशन होगा.
अगर आपको Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं करना है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. अगर आपको अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो अपने Android प्रोजेक्ट में Firebase जोड़ना में दिए गए सभी चरणों को पूरा करें.
Google Play से Firebase लिंक करने और AAB अपलोड करने के लिए, पक्का करें कि आपका ऐप्लिकेशन इन ज़रूरी शर्तों को पूरा करता हो:
Google Play और Firebase Android ऐप्लिकेशन, दोनों एक ही पैकेज नाम का इस्तेमाल करके रजिस्टर किए गए हों.
Google Play पर मौजूद ऐप्लिकेशन, ऐप्लिकेशन के डैशबोर्ड पर सेट अप किया गया हो और Google Play के किसी एक ट्रैक (इंटरनल टेस्टिंग, क्लोज़्ड टेस्टिंग, ओपन टेस्टिंग या प्रोडक्शन) पर डिस्ट्रिब्यूट किया गया हो.
Google Play पर ऐप्लिकेशन की समीक्षा पूरी हो गई है और उसे पब्लिश कर दिया गया है. अगर ऐप्लिकेशन का स्टेटस कॉलम में इनमें से कोई एक स्टेटस दिखता है, तो इसका मतलब है कि आपका ऐप्लिकेशन पब्लिश हो गया है: इंटरनल टेस्टिंग (ड्राफ़्ट की इंटरनल टेस्टिंग नहीं), क्लोज़्ड टेस्टिंग, ओपन टेस्टिंग या प्रोडक्शन.
Firebase में बने Android ऐप्लिकेशन को Google Play डेवलपर खाते से लिंक करें:
Firebase कंसोल में,
पर जाएं. इसके बाद, इंटिग्रेशन टैब चुनें. प्रोजेक्ट सेटिंग Google Play कार्ड पर जाकर, जोड़ें पर क्लिक करें.
अगर आपने पहले ही Google Play से लिंक किए हुए हैं, तो इसके बजाय मैनेज करें पर क्लिक करें.App Distribution इंटिग्रेशन चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें. साथ ही, चुनें कि कौनसे Firebase Android ऐप्लिकेशन को Google Play से लिंक करना है.
Google Play से लिंक करने के बारे में ज़्यादा जानें.
पहला चरण. fastlane सेट अप करना
fastlane कॉन्फ़िगरेशन में App Distribution जोड़ने के लिए, अपने Android प्रोजेक्ट के रूट से यह कमांड चलाएं:
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 ऐप्लिकेशन आईडी. आपको ऐप्लिकेशन आईडी, Firebase कंसोल में सामान्य सेटिंग पेज पर मिल सकता है.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
यह एक रीफ़्रेश टोकन है. इसे तब प्रिंट किया जाता है, जब Firebase CLI की मदद से अपने सीआई एनवायरमेंट की पुष्टि की जाती है. ज़्यादा जानकारी के लिए, सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करना लेख पढ़ें.
service_credentials_file
आपके Google सेवा खाते की JSON फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, ऊपर दिया गया लेख पढ़ें.
android_artifact_type
Android फ़ाइल टाइप (APK या AAB) के बारे में बताता है.
android_artifact_path
यह
apk_path
(अब काम नहीं करता) की जगह इस्तेमाल किया जाता है. आपको जिस APK या AAB फ़ाइल को अपलोड करना है उसका ऐब्सलूट पाथ. अगर यह विकल्प नहीं दिया जाता है, तो 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;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(task: "bundle", ...) # 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!", android_artifact_type: "AAB" ) end end
टेस्टर के लिए बिल्ड उपलब्ध कराने के लिए, अपनी लेन चलाएं:
fastlane <lane>
कार्रवाई की रिटर्न वैल्यू, अपलोड की गई रिलीज़ को दिखाने वाला हैश होता है.
यह हैश, lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
का इस्तेमाल करके भी उपलब्ध है.
इस हैश में उपलब्ध फ़ील्ड के बारे में ज़्यादा जानने के लिए, REST API से जुड़ा दस्तावेज़ देखें.
fastlane प्लगिन, रिलीज़ अपलोड करने के बाद ये लिंक दिखाता है. इन लिंक की मदद से, बाइनरी मैनेज की जा सकती हैं. साथ ही, यह पक्का किया जा सकता है कि टेस्टर और अन्य डेवलपर के पास सही रिलीज़ हो:
- Firebase कंसोल का लिंक, जिसमें एक रिलीज़ दिख रही हो. इस लिंक को अपने संगठन के अन्य डेवलपर के साथ शेयर किया जा सकता है.
- टेस्टर के लिए रिलीज़ का लिंक (Android नेटिव ऐप्लिकेशन). इससे टेस्टर, रिलीज़ नोट देख सकते हैं और अपने डिवाइस पर ऐप्लिकेशन इंस्टॉल कर सकते हैं. लिंक का इस्तेमाल करने के लिए, टेस्टर के पास रिलीज़ का ऐक्सेस होना चाहिए.
- यह एक ऐसा लिंक होता है जिस पर क्लिक करने से, ऐप्लिकेशन बाइनरी (APK या AAB फ़ाइल) सीधे तौर पर डाउनलोड और इंस्टॉल हो जाती है. लिंक इस्तेमाल करने की समयसीमा एक घंटे में खत्म हो जाएगी.
बिल्ड को डिस्ट्रिब्यूट करने के बाद, यह App Distribution कंसोल के App Distribution डैशबोर्ड में 150 दिनों तक उपलब्ध रहता है.Firebase जब बिल्ड की समयसीमा खत्म होने में 30 दिन बाकी होते हैं, तब कंसोल में और टेस्टर के टेस्ट डिवाइस पर, बिल्ड की सूची में समयसीमा खत्म होने की सूचना दिखती है.
जिन टेस्टर को पहले ऐप्लिकेशन टेस्ट करने का न्योता नहीं मिला था उन्हें शुरू करने के लिए, ईमेल से न्योते मिलते हैं. मौजूदा टेस्टर को ईमेल से सूचना मिलती है कि नई बिल्ड को टेस्ट किया जा सकता है. टेस्ट ऐप्लिकेशन इंस्टॉल करने का तरीका जानने के लिए, टेस्टर के लिए सेट अप गाइड देखें. हर टेस्टर की स्थिति को मॉनिटर किया जा सकता है. इससे यह पता लगाया जा सकता है कि उन्होंने न्योता स्वीकार किया है या नहीं. साथ ही, यह भी पता लगाया जा सकता है कि उन्होंने Firebase कंसोल में ऐप्लिकेशन डाउनलोड किया है या नहीं.
(ज़रूरी नहीं) 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_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 CLI की मदद से अपने सीआई एनवायरमेंट की पुष्टि की जाती है. ज़्यादा जानकारी के लिए, सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करना लेख पढ़ें. |
service_credentials_file
|
आपके Google सेवा खाते की JSON फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, ऊपर दिया गया लेख पढ़ें. |
debug
|
यह एक बूलियन फ़्लैग है. ज़्यादा जानकारी वाला डीबग आउटपुट प्रिंट करने के लिए, इसे |
अगले चरण
ऐप्लिकेशन में सुझाव/राय देने या शिकायत करने की सुविधा लागू करें, ताकि टेस्टर आपके ऐप्लिकेशन के बारे में आसानी से सुझाव/राय दे सकें या शिकायत कर सकें. इसमें स्क्रीनशॉट भी शामिल हैं.
जब आपके ऐप्लिकेशन के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध हों, तब टेस्टर को ऐप्लिकेशन में दिखने वाली चेतावनियां दिखाने का तरीका जानें.
सीआई/सीडी का इस्तेमाल करके, क्वालिटी अश्योरेंस टेस्टर को Android ऐप्लिकेशन उपलब्ध कराने के सबसे सही तरीके जानें.