Rozwiązywanie problemów Najczęstsze pytania dotyczące Unity i Firebase

Na tej stronie znajdziesz wskazówki i informacje o rozwiązywaniu problemów z Firebase, które mogą wystąpić w Unity.

Masz inne problemy lub nie widzisz swojego problemu wymienionego poniżej? Zapoznaj się z głównymi pytaniami i odpowiedziami dotyczącymi Firebase lub pytaniami i odpowiedziami dotyczącymi konkretnych usług.

Problem z pojedynczym plikiem dex podczas tworzenia aplikacji na Androida

Podczas tworzenia aplikacji na Androida może wystąpić błąd kompilacji związany z pojedynczym plikiem dex. Jeśli Twój projekt jest skonfigurowany do korzystania z systemu kompilacji Gradle, komunikat o błędzie będzie podobny do tego:

Cannot fit requested classes in a single dex file.

Pliki wykonywalne Dalvik (.dex) służą do przechowywania zestawu definicji klas i powiązanych z nimi danych dodatkowych dla aplikacji na Androida (.apk). Pojedynczy plik dex może odwoływać się do maksymalnie 65 536 metod. Kompilacja nie powiedzie się, jeśli łączna liczba metod ze wszystkich bibliotek Androida w Twoim projekcie przekroczy ten limit.

W Unity 2017.2 wprowadzono minifikację , która używa Proguarda (lub innych narzędzi w niektórych wersjach Unity) do usuwania nieużywanego kodu, co może zmniejszyć łączną liczbę metod, do których odwołuje się pojedynczy plik dex. Tę opcję znajdziesz w sekcji Player Settings (Ustawienia odtwarzacza) > Android > Publishing Settings (Ustawienia publikowania) > Minify (Minifikacja). Opcje mogą się różnić w zależności od wersji Unity, więc zapoznaj się z oficjalną dokumentacją Unity.

Jeśli liczba metod, do których odwołuje się plik, nadal przekracza limit, możesz włączyć multidex. W Unity można to zrobić na kilka sposobów:

  • Jeśli w sekcji Player Settings (Ustawienia odtwarzacza) jest włączona opcja Custom Gradle Template (Niestandardowy szablon Gradle), zmodyfikuj plik mainTemplate.gradle.
  • Jeśli do tworzenia wyeksportowanego projektu używasz Android Studio, zmodyfikuj plik build.gradle na poziomie modułu.

Więcej informacji znajdziesz w przewodniku użytkownika multidex.

Problemy podczas tworzenia aplikacji na Androida z minSdkVersion 23

Podczas tworzenia aplikacji na Androida, jeśli kierujesz reklamy na minSdkVersion 23, może wystąpić błąd na etapie dexingu, zwykle w zadaniu Gradle „:launcher:mergeExtDexDebug”, gdzie pojawi się komunikat „Failed to transform” (Nie udało się przekształcić) jednej z bibliotek Androida. Jest to spowodowane błędem w domyślnym narzędziu dex w pakiecie Android SDK, którego używa większość edytorów Unity. Można to naprawić na kilka sposobów:

  • Ustaw minSdkVersion na 24.
  • Włącz minifikację Androida w sekcji Player Settings (Ustawienia odtwarzacza) > Android > Publishing Settings (Ustawienia publikowania) > Minify (Minifikacja).
  • Określ inną wersję narzędzia dex, dodając ten kod do pliku settingsTemplate.gradle:
buildscript {
  repositories {
    mavenLocal()
    maven { url 'https://maven.google.com'  }
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools:r8:8.3.37'
  }
}

Problemy podczas tworzenia aplikacji na iOS za pomocą Cocoapods

Podczas tworzenia aplikacji na iOS instalacja Cocoapods może się nie powieść z powodu błędu dotyczącego ustawień regionalnych języka lub kodowania UTF-8. Obecnie istnieje kilka sposobów obejścia tego problemu.

  • W terminalu uruchom bezpośrednio polecenie pod install i otwórz utworzony plik xcworkspace.

  • Zmień wersję Cocoapods na 1.10.2. Ten problem występuje tylko w wersji 1.11 i nowszych.

  • W pliku ~/.bash_profile lub jego odpowiedniku dodaj export LANG=en_US.UTF-8.

Jak zaktualizować wersję pakietów Firebase Unity SDK

Proces aktualizacji wersji pakietów Firebase Unity SDK zależy od tego, jak zostały one pierwotnie zaimportowane. Oto 2 alternatywne metody importowania:

  • Importowanie plików .unitypackage w katalogu Assets/ projektu.
  • Importowanie za pomocą Menedżera pakietów Unity (UPM)
    • Jest to zalecany sposób zarządzania pakietami w Unity 2018.4 i nowszych wersjach.
    • Użyj tej metody, aby ułatwić sobie aktualizowanie wersji w przyszłości i uporządkować katalog Assets/.

W projekcie Unity do zarządzania wszystkimi pakietami Firebase należy używać tylko 1 metody importowania. Poniższe instrukcje pozwalają nie tylko zaktualizować wersję poszczególnych pakietów, ale też w razie potrzeby przenieść zarządzanie pakietami do UPM (zalecana metoda importowania).