इस पेज पर, Unity से जुड़ी उन समस्याओं को हल करने के बारे में सलाह दी गई है जो Firebase का इस्तेमाल करते समय आपके सामने आ सकती हैं.
क्या आपको कोई अन्य समस्या आ रही है या आपको यहां बताई गई समस्या नहीं दिख रही है? Firebase के सभी प्रॉडक्ट या किसी खास प्रॉडक्ट के बारे में अक्सर पूछे जाने वाले सवालों के लिए, Firebase के बारे में अक्सर पूछे जाने वाले सवाल देखें.
Android ऐप्लिकेशन बनाते समय सिंगल डेक्स से जुड़ी समस्या
Android ऐप्लिकेशन बनाते समय, आपको एक ही dex फ़ाइल होने की वजह से, बिल्ड फ़ेल होने की समस्या आ सकती है. अगर आपके प्रोजेक्ट को Gradle बिल्ड सिस्टम का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, तो गड़बड़ी का मैसेज कुछ इस तरह दिखेगा.
Cannot fit requested classes in a single dex file.
Dalvik Executable (.dex) फ़ाइलों का इस्तेमाल, Android ऐप्लिकेशन (.apk) के लिए क्लास की परिभाषाओं और उनसे जुड़े डेटा को सेव करने के लिए किया जाता है. एक dex फ़ाइल में, 65,536 तरीकों का रेफ़रंस दिया जा सकता है. अगर आपके प्रोजेक्ट में मौजूद सभी Android लाइब्रेरी में मौजूद तरीकों की कुल संख्या इस सीमा से ज़्यादा है, तो बिल्ड नहीं हो पाएगा.
Unity ने 2017.2 में Minification की सुविधा लॉन्च की थी. यह सुविधा, Proguard (या Unity के कुछ वर्शन में मौजूद अन्य टूल) का इस्तेमाल करके, इस्तेमाल न हो रहे कोड को हटा देती है. इससे, एक ही dex फ़ाइल में रेफ़र किए गए तरीकों की कुल संख्या कम हो सकती है. यह विकल्प, Player Settings > Android > Publishing Settings > Minify में जाकर देखा जा सकता है. Unity के अलग-अलग वर्शन में, विकल्प अलग-अलग हो सकते हैं. इसलिए, Unity के आधिकारिक दस्तावेज़ देखें.
अगर अब भी रेफ़र किए गए तरीकों की संख्या तय सीमा से ज़्यादा है, तो multidex को चालू करें. Unity में ऐसा करने के कई तरीके हैं:
- अगर
Custom Gradle Templateके नीचेPlayer Settingsचालू है, तोmainTemplate.gradleमें बदलाव करें. - अगर एक्सपोर्ट किए गए प्रोजेक्ट को बनाने के लिए Android Studio का इस्तेमाल किया जाता है, तो मॉड्यूल-लेवल की
build.gradleफ़ाइल में बदलाव करें.
ज़्यादा जानकारी के लिए, मल्टीडेक्स की उपयोगकर्ता गाइड देखें.
minSdkVersion 23 वाले Android ऐप्लिकेशन बनाने से जुड़ी समस्याएं
Android के लिए ऐप्लिकेशन बनाते समय, अगर आपने minSdkVersion 23 को टारगेट किया है, तो हो सकता है कि यह डेक्सिंग के चरण में काम न करे. आम तौर पर, यह Gradle टास्क ':launcher:mergeExtDexDebug' में होता है. इसमें यह बताया जाता है कि Android की किसी एक लाइब्रेरी को "बदला नहीं जा सका". ऐसा Android SDK में मौजूद डिफ़ॉल्ट डेक्स टूल में मौजूद बग की वजह से होता है. ज़्यादातर Unity एडिटर इस टूल का इस्तेमाल करते हैं. इस समस्या को कुछ अलग-अलग तरीकों से ठीक किया जा सकता है:
minSdkVersionको 24 पर सेट करो.- Player Settings > Android > Publishing Settings > Minify में जाकर, Android के लिए कोड छोटा करने की सुविधा चालू करें
- अपनी
settingsTemplate.gradleफ़ाइल में यह जोड़कर, dex टूल का कोई दूसरा वर्शन तय करें:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Cocoapods का इस्तेमाल करके iOS के लिए ऐप्लिकेशन बनाते समय आने वाली समस्याएं
iOS के लिए ऐप्लिकेशन बनाते समय, Cocoapod इंस्टॉल करने में गड़बड़ी हो सकती है. यह गड़बड़ी भाषा की स्थान-भाषा या UTF-8 एन्कोडिंग से जुड़ी हो सकती है. फ़िलहाल, इस समस्या को हल करने के कई तरीके उपलब्ध हैं.
टर्मिनल से सीधे
pod installचलाएं और नतीजे के तौर पर मिली xcworkspace फ़ाइल खोलें.Cocoapods के वर्शन को 1.10.2 पर डाउनग्रेड करें. यह समस्या सिर्फ़ 1.11 और इसके बाद के वर्शन में है.
अपने
~/.bash_profileया उसके बराबर की रकम मेंexport LANG=en_US.UTF-8जोड़ें
Firebase Unity SDK के वर्शन को अपडेट करने का तरीका
Firebase Unity SDK के वर्शन अपडेट करने का तरीका इस बात पर निर्भर करता है कि उन्हें शुरू में कैसे इंपोर्ट किया गया था. इंपोर्ट करने के दो वैकल्पिक तरीके यहां दिए गए हैं:
- आपके प्रोजेक्ट की
Assets/डायरेक्ट्री में.unitypackageफ़ाइलें इंपोर्ट की जा रही हैं - Unity Package Manager (UPM) का इस्तेमाल करके इंपोर्ट करना
- Unity 2018.4+ में पैकेज मैनेज करने का यह सबसे सही तरीका है.
- इस तरीके का इस्तेमाल करके, आने वाले समय में वर्शन को आसानी से अपडेट किया जा सकता है. साथ ही, इससे आपकी
Assets/डायरेक्ट्री भी साफ़ रहेगी.
अपने Unity प्रोजेक्ट में, आपको अपने सभी Firebase पैकेज मैनेज करने के लिए, सिर्फ़ एक इंपोर्ट करने के तरीके का इस्तेमाल करना चाहिए. यहां दिए गए निर्देशों का इस्तेमाल करके, न सिर्फ़ अलग-अलग पैकेज के वर्शन अपडेट किए जा सकते हैं, बल्कि ज़रूरत पड़ने पर पैकेज मैनेजमेंट को UPM पर माइग्रेट भी किया जा सकता है. UPM, इंपोर्ट करने का सुझाया गया तरीका है.