इस पेज पर, Unity से जुड़ी उन समस्याओं को हल करने के सुझाव और तरीके दिए गए हैं जो Firebase का इस्तेमाल करते समय आपके सामने आ सकती हैं.
क्या आपको कोई और समस्या आ रही है या आपको यहां अपनी समस्या नहीं दिख रही है? Firebase से जुड़ी ज़्यादातर समस्याओं या प्रॉडक्ट से जुड़ी खास समस्याओं के बारे में जानने के लिए, Firebase से जुड़े अक्सर पूछे जाने वाले सवाल देखें.
Android ऐप्लिकेशन बनाते समय, सिंगल dex से जुड़ी समस्या
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 में, इसे चालू करने के कई तरीके हैं:
- अगर
Player Settingsमें,Custom Gradle Templateचालू है, तोmainTemplate.gradleमें बदलाव करें. - अगर एक्सपोर्ट किए गए प्रोजेक्ट को बनाने के लिए Android Studio का इस्तेमाल किया जाता है, तो मॉड्यूल-लेवल की
build.gradleफ़ाइल में बदलाव करें.
ज़्यादा जानकारी के लिए, multidex के इस्तेमाल से जुड़ी गाइड देखें.
minSdkVersion 23 के साथ Android के लिए ऐप्लिकेशन बनाते समय आने वाली समस्याएं
Android के लिए ऐप्लिकेशन बनाते समय, अगर आपने minSdkVersion 23 को टारगेट किया है, तो dexing के चरण में गड़बड़ी हो सकती है. आम तौर पर, यह गड़बड़ी Gradle टास्क ':launcher:mergeExtDexDebug' में होती है. इसमें, Android लाइब्रेरी में से किसी एक को "बदला नहीं जा सका" मैसेज दिखता है. ऐसा Android SDK टूल में मौजूद डिफ़ॉल्ट dex टूल में मौजूद गड़बड़ी की वजह से होता है. ज़्यादातर Unity एडिटर, इस टूल का इस्तेमाल करते हैं. इस गड़बड़ी को कुछ अलग-अलग तरीकों से ठीक किया जा सकता है:
minSdkVersionको 24 पर सेट करें.- Player Settings > Android > Publishing Settings > Minify में जाकर, Android minification को चालू करें
- अपनी
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 (इंपोर्ट करने का सुझाया गया तरीका) पर माइग्रेट करने के लिए भी किया जा सकता है.