इस पेज पर, Unity से जुड़ी समस्याओं को हल करने के लिए सलाह दी गई है. साथ ही, समस्याओं को हल करने का तरीका बताया गया है. ये समस्याएं, Firebase का इस्तेमाल करते समय हो सकती हैं.
क्या आपको कोई और समस्या आ रही है या आपको यहां अपनी समस्या नहीं दिख रही है? Firebase के सभी प्रॉडक्ट या किसी खास प्रॉडक्ट के बारे में अक्सर पूछे जाने वाले सवालों के लिए, Firebase के बारे में अक्सर पूछे जाने वाले सवाल देखें.
Android ऐप्लिकेशन बनाते समय सिंगल डेक्स से जुड़ी समस्या
Android ऐप्लिकेशन बनाते समय, आपको एक ही डेक्स फ़ाइल से जुड़ी गड़बड़ी दिख सकती है. अगर आपके प्रोजेक्ट को 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फ़ाइल में बदलाव करें.
ज़्यादा जानकारी के लिए, मल्टीडेक्स के लिए उपयोगकर्ता गाइड देखें.
minSdkVersion 23 वाले Android के लिए बिल्ड करते समय आने वाली समस्याएं
Android के लिए ऐप्लिकेशन बनाते समय, अगर minSdkVersion 23 को टारगेट किया जाता है, तो dexing के चरण में समस्या आ सकती है. आम तौर पर, यह समस्या Gradle टास्क ':launcher:mergeExtDexDebug' में आती है. इसमें यह मैसेज दिखता है कि Android की किसी एक लाइब्रेरी को "बदला नहीं जा सका". ऐसा Android SDK में मौजूद डिफ़ॉल्ट डेक्स टूल में मौजूद गड़बड़ी की वजह से होता है. ज़्यादातर 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 यूनिटी SDK टूल के वर्शन अपडेट करने का तरीका, इस बात पर निर्भर करता है कि उन्हें शुरू में कैसे इंपोर्ट किया गया था. इंपोर्ट करने के दो वैकल्पिक तरीके यहां दिए गए हैं:
- अपने प्रोजेक्ट की
Assets/डायरेक्ट्री में.unitypackageफ़ाइलें इंपोर्ट करना - Unity Package Manager
(UPM) का इस्तेमाल करके इंपोर्ट करना
- Unity 2018.4+ में पैकेज मैनेज करने का यह सुझाव दिया जाता है.
- इस तरीके का इस्तेमाल करके, आने वाले समय में वर्शन को आसानी से अपडेट किया जा सकता है. साथ ही, आपकी
Assets/डायरेक्ट्री को ज़्यादा व्यवस्थित किया जा सकता है.
अपने यूनिटी प्रोजेक्ट में, आपको अपने सभी Firebase पैकेज मैनेज करने के लिए, सिर्फ़ एक इंपोर्ट करने का तरीका इस्तेमाल करना चाहिए. नीचे दिए गए निर्देशों का इस्तेमाल करके, न सिर्फ़ अलग-अलग पैकेज के वर्शन अपडेट किए जा सकते हैं, बल्कि ज़रूरत पड़ने पर पैकेज मैनेजमेंट को UPM पर माइग्रेट भी किया जा सकता है. UPM, इंपोर्ट करने का सुझाया गया तरीका है.