इस पेज पर, 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 (इंपोर्ट करने का सुझाया गया तरीका) पर माइग्रेट करने के लिए भी किया जा सकता है.