इस पेज पर, Unity से जुड़ी उन समस्याओं को हल करने के सुझाव और तरीके दिए गए हैं जो Firebase का इस्तेमाल करते समय आपके सामने आ सकती हैं.
क्या आपको कोई और समस्या आ रही है या आपको यहां अपनी समस्या नहीं दिख रही है? Firebase से जुड़ी ज़्यादातर समस्याओं या प्रॉडक्ट से जुड़ी खास समस्याओं के बारे में जानने के लिए, Firebase के मुख्य अक्सर पूछे जाने वाले सवाल देखें.
Android ऐप्लिकेशन बनाते समय, सिंगल डेक्स से जुड़ी समस्या
Android ऐप्लिकेशन बनाते समय, आपको सिंगल डेक्स फ़ाइल से जुड़ी समस्या आ सकती है. अगर आपका प्रोजेक्ट, Gradle बिल्ड सिस्टम का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, तो गड़बड़ी का मैसेज कुछ इस तरह दिखेगा.
Cannot fit requested classes in a single dex file.
Dalvik Executable (.dex) फ़ाइलों का इस्तेमाल, Android ऐप्लिकेशन (.apk) के लिए क्लास की परिभाषाओं और उनसे जुड़े डेटा को सेव करने के लिए किया जाता है. सिंगल डेक्स फ़ाइल में, 65,536 तरीकों का रेफ़रंस दिया जा सकता है. अगर आपके प्रोजेक्ट में मौजूद सभी Android लाइब्रेरी के तरीकों की कुल संख्या इस सीमा से ज़्यादा है, तो बिल्ड फ़ेल हो जाएगा.
Unity ने 2017.2 में, Minification की सुविधा लॉन्च की थी. यह सुविधा, इस्तेमाल न किए गए कोड को हटाने के लिए Proguard (या Unity के कुछ वर्शन में मौजूद अन्य टूल) का इस्तेमाल करती है. इससे, सिंगल डेक्स फ़ाइल में रेफ़रंस किए गए तरीकों की कुल संख्या कम हो सकती है. यह विकल्प, 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 (इंपोर्ट करने का सुझाया गया तरीका) पर माइग्रेट करने के लिए भी किया जा सकता है.