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