इस गाइड में, fastlane का इस्तेमाल करके, टेस्टर को AAB बिल्ड डिस्ट्रिब्यूट करने का तरीका बताया गया है. यह एक ओपन सोर्स प्लैटफ़ॉर्म है, जो iOS और Android ऐप्लिकेशन बनाने और उन्हें रिलीज़ करने की प्रोसेस को ऑटोमेट करता है. इस गाइड में, Fastfile में दिए गए निर्देशों का पालन किया गया है. apps.fastlane और Fastfile को सेट अप करने के बाद, App Distribution को fastlane कॉन्फ़िगरेशन के साथ इंटिग्रेट किया जा सकता है.
App Distribution, Google Play की संगठन में काम करने वालों के साथ ऐप्लिकेशन शेयर करने की सुविधा के साथ इंटिग्रेट होता है. इससे, आपके अपलोड किए गए एएबी को प्रोसेस किया जाता है और ऐसे APK उपलब्ध कराए जाते हैं जो आपके टेस्टर के डिवाइस कॉन्फ़िगरेशन के हिसाब से ऑप्टिमाइज़ किए गए हों. AABs को डिस्ट्रिब्यूट करने पर, ये काम किए जा सकते हैं:
ऑप्टिमाइज़ किए गए ऐसे APKs चलाएं जो आपके टेस्टर के डिवाइसों के लिए ऑप्टिमाइज़ किए गए हों. ये APKs, Google Play उपलब्ध कराता है.
डिवाइस से जुड़ी समस्याओं का पता लगाएं और उन्हें डीबग करें.
ऐप्लिकेशन बंडल की सुविधाओं को टेस्ट करें. जैसे, Play Feature Delivery और Play ऐसेट डिलीवरी.
टेस्टर के लिए, डाउनलोड किए जाने वाले डेटा का साइज़ कम करना.
ज़रूरी अनुमतियां
App Distribution पर AAB अपलोड करने के लिए, आपको अपने Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करना होगा. इन कार्रवाइयों को करने के लिए, आपके पास ज़रूरी लेवल का ऐक्सेस होना चाहिए.
अगर आपके पास Firebase का ज़रूरी ऐक्सेस नहीं है, तो Firebase प्रोजेक्ट के मालिक से कहें कि वह Firebase कंसोल IAM सेटिंग का इस्तेमाल करके, आपको ज़रूरी भूमिका असाइन करे. अगर आपको अपने Firebase प्रोजेक्ट को ऐक्सेस करने के बारे में कुछ पूछना है, तो "Firebase प्रोजेक्ट की अनुमतियों और ऐक्सेस" के बारे में अक्सर पूछे जाने वाले सवाल देखें. इसमें, प्रोजेक्ट के मालिक को ढूंढने या असाइन करने के बारे में भी जानकारी दी गई है.
यहां दी गई टेबल, Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करने और एएबी अपलोड करने पर लागू होती है.
| Firebase कंसोल में कार्रवाई | IAM से जुड़ी ज़रूरी अनुमति | IAM की ऐसी भूमिकाएं जिनमें ज़रूरी अनुमतियां डिफ़ॉल्ट रूप से शामिल होती हैं | ज़रूरी अन्य भूमिकाएं |
|---|---|---|---|
| Firebase ऐप्लिकेशन को Google Play में मौजूद किसी ऐप्लिकेशन से लिंक करना | firebase.playLinks.update
|
इनमें से कोई एक भूमिका: | Google Play डेवलपर खाते का ऐक्सेस एडमिन के तौर पर |
| App Distribution पर एएबी अपलोड करें | firebaseappdistro.releases.update
|
इनमें से कोई एक भूमिका: | –– |
शुरू करने से पहले
अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें. इस वर्कफ़्लो के आखिर में, आपके Firebase प्रोजेक्ट में एक Firebase Android ऐप्लिकेशन होगा.
अगर आपको Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं करना है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. अगर आपको अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो अपने Android प्रोजेक्ट में Firebase जोड़ें में दिए गए सभी चरणों को पूरा करें.
Firebase कंसोल का App Distribution पेज खोलें. जब आपसे कहा जाए, तब अपना Firebase प्रोजेक्ट चुनें. इसके बाद, ऐप्लिकेशन स्विचर का इस्तेमाल करके अपना ऐप्लिकेशन चुनें और शुरू करें पर क्लिक करें.
Google Play से Firebase लिंक बनाने और AABs अपलोड करने के लिए, पक्का करें कि आपका ऐप्लिकेशन इन ज़रूरी शर्तों को पूरा करता हो:
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 सेट अप करना
App Distribution को अपने fastlane कॉन्फ़िगरेशन में जोड़ने के लिए, अपने Android प्रोजेक्ट के रूट से यह कमांड चलाएं:
fastlane add_plugin firebase_app_distribution
अगर कमांड प्रॉम्प्ट में आपको कोई विकल्प दिखता है, तो
Option 3: RubyGems.orgको चुनें.
दूसरा चरण. Firebase की मदद से पुष्टि करना
fastlane प्लगिन का इस्तेमाल करने से पहले, आपको इनमें से किसी एक तरीके से अपने Firebase प्रोजेक्ट की पुष्टि करनी होगी. अगर पुष्टि करने के लिए किसी अन्य तरीके का इस्तेमाल नहीं किया जाता है, तो fastlane प्लगिन डिफ़ॉल्ट रूप से 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 या AAB) के बारे में पता चलता है.
android_artifact_pathयह
apk_pathकी जगह लेता है. हालांकि, अब यह काम नहीं करता. आपको जिस APK या एएबी फ़ाइल को अपलोड करना है उसका ऐब्सलूट पाथ. अगर यह जानकारी नहीं दी जाती है, तो 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 :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 फ़ाइल) को सीधे डाउनलोड और इंस्टॉल करता है. लिंक की समयसीमा एक घंटे के बाद खत्म हो जाती है.
बिल्ड को डिस्ट्रिब्यूट करने के बाद, वह 150 दिनों तक Firebase कंसोल के App Distribution डैशबोर्ड में उपलब्ध रहता है. बिल्ड की समयसीमा खत्म होने से 30 दिन पहले, Console में और टेस्टर के डिवाइस पर मौजूद बिल्ड की सूची में, समयसीमा खत्म होने की सूचना दिखती है.
जिन टेस्टर को पहले ऐप्लिकेशन की टेस्टिंग के लिए न्योता नहीं भेजा गया था उन्हें टेस्टिंग शुरू करने के लिए, ईमेल से न्योते भेजे जाते हैं. मौजूदा टेस्टर को ईमेल से सूचनाएं मिलती हैं कि नया बिल्ड टेस्ट करने के लिए तैयार है. टेस्ट ऐप्लिकेशन इंस्टॉल करने का तरीका जानने के लिए, टेस्टर सेट अप करने की गाइड देखें. Firebase console में, हर टेस्टर के स्टेटस पर नज़र रखी जा सकती है. इससे यह पता लगाया जा सकता है कि उन्होंने न्योता स्वीकार किया है या नहीं और उन्होंने ऐप्लिकेशन डाउनलोड किया है या नहीं.
(ज़रूरी नहीं) 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_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 ऐप्लिकेशन आईडी. ऐप्लिकेशन आईडी, Firebase कंसोल में सामान्य सेटिंग पेज पर देखा जा सकता है. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
एक रीफ़्रेश टोकन, जो Firebase सीएलआई की मदद से सीआई एनवायरमेंट की पुष्टि करने पर प्रिंट होता है. ज़्यादा जानकारी के लिए, सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करना लेख पढ़ें. |
service_credentials_file
|
आपके Google सेवा खाते की json फ़ाइल का पाथ. सेवा खाते के क्रेडेंशियल का इस्तेमाल करके पुष्टि करने का तरीका जानने के लिए, पिछला पैरामीटर देखें. |
debug
|
एक बूलियन फ़्लैग. इसे |
अगले चरण
ऐप्लिकेशन में सुझाव/राय देने की सुविधा लागू करें, ताकि टेस्टर आपके ऐप्लिकेशन के बारे में सुझाव/राय दे सकें. इसमें स्क्रीनशॉट भी शामिल हैं.
जब आपके ऐप्लिकेशन के नए बिल्ड इंस्टॉल करने के लिए उपलब्ध हों, तब टेस्टर को इन-ऐप्लिकेशन सूचनाएं दिखाने का तरीका जानें.
सीआई/सीडी का इस्तेमाल करके, क्यूए टेस्टर को Android ऐप्लिकेशन उपलब्ध कराने के सबसे सही तरीके जानें.