Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Pemecahan Masalah & FAQ untuk Unity dan Firebase

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Halaman ini menawarkan tips dan pemecahan masalah untuk masalah khusus Unity yang mungkin Anda temui saat menggunakan Firebase.

Ada tantangan lain atau tidak melihat masalah Anda diuraikan di bawah? Pastikan untuk memeriksa FAQ utama Firebase untuk mengetahui lebih banyak tentang FAQ pan-Firebase atau khusus produk.

Kompatibilitas .NET saat menggunakan Unity 2017.x dan yang lebih baru

Firebase mendukung .NET 4.x sebagai opsi build eksperimental di Unity 2017 dan yang lebih baru. Plugin Firebase menggunakan komponen Parse SDK untuk menyediakan beberapa kelas .NET 4.x di versi .NET sebelumnya.

Oleh karena itu, Firebase Unity SDK versi 5.4.0 dan yang lebih baru menyediakan plugin yang kompatibel dengan .NET 3.x atau .NET 4.x di direktori dotnet3 dan dotnet4 dari Firebase Unity SDK.

Jika Anda mengimpor plugin Firebase yang tidak kompatibel dengan versi .NET yang diaktifkan di proyek, Anda akan melihat kesalahan kompilasi dari beberapa jenis di kerangka kerja .NET yang diimplementasikan oleh Parse SDK.

Untuk mengatasi kesalahan kompilasi, jika Anda menggunakan .NET 3.x:

  1. Hapus atau nonaktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Aktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Untuk mengatasi kesalahan kompilasi, jika Anda menggunakan .NET 4.x:

  1. Hapus atau nonaktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Aktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Jika Anda mengimpor plugin Firebase lain:

  • Di proyek Unity Anda, navigasikan ke Aset > Penyelesai Layanan Play > Penangan Versi > Perbarui untuk mengaktifkan DLL yang benar untuk proyek Anda.

Kompilasi Unity 2017.1 IL2CPP dalam proyek .NET 4.x

Firebase mendukung .NET 4.x sebagai opsi build eksperimental di Unity 2017 dan yang lebih baru. Plugin Firebase menggunakan komponen Parse SDK untuk menyediakan beberapa kelas .NET 4.x di versi .NET sebelumnya.

Oleh karena itu, Firebase Unity SDK versi 5.4.0 dan yang lebih baru menyediakan DLL penerusan tipe yang meneruskan tipe Parse (misalnya, implementasi Parse dari System.Threading.Tasks.Task ) ke .NET framework. Sayangnya, IL2CPP (transpiler yang mengonversi C# ke C++) yang dikirimkan di Unity 2017.1.x tidak memproses DLL penerusan jenis dengan benar yang mengakibatkan kesalahan build yang menyerupai berikut ini:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

Saat ini tidak ada solusi yang tersedia untuk kesalahan build .NET 4.x IL2CPP di Unity 2017.1, jadi Anda harus memutakhirkan ke Unity 2017.2 atau lebih baru untuk menggunakan .NET 4.x dalam proyek yang dikompilasi dengan IL2CPP.

Unity 2017.2 jaringan

Firebase Realtime Database membuat koneksi jaringan TLS menggunakan tumpukan jaringan .NET. Fungsionalitas TLS rusak di Unity 2017.2 saat menggunakan .NET 4.6 menyebabkan plugin Realtime Database gagal di editor dan di desktop.

Tidak ada solusi untuk masalah ini, jadi Anda harus menggunakan versi Unity yang berbeda, misalnya versi 2017.1 atau 2017.3.

File konfigurasi Firebase Android tidak ada di Unity 2020

Untuk mendukung versi Unity yang tidak memiliki kemampuan untuk menyesuaikan build Gradle, alat editor Firebase menghasilkan Assets/Plugins/Android/Firebase/res/values/google-services.xml sebagai sumber daya Android untuk dikemas ke dalam Android build, sehingga Firebase SDK dapat menggunakannya untuk menginisialisasi instance FirebaseApp default.

Di Unity 2020, semua resource Android harus ada di direktori dengan akhiran .androidlib . Jika proyek Anda menggunakan Firebase SDK yang menghasilkan direktori Assets/Plugins/Android/Firebase , ganti namanya menjadi Assets/Plugins/Android/Firebase.androidlib . Pastikan itu berisi AndroidManifest.xml , project.properties dan res/values/google-services.xml .

Masalah dengan dex tunggal saat membuat aplikasi Android

Saat mem-build aplikasi Android, Anda mungkin mengalami kegagalan build terkait dengan memiliki satu file dex. Pesan kesalahan terlihat seperti berikut ini, jika proyek Anda dikonfigurasi untuk menggunakan sistem pembangunan Gradle.

Cannot fit requested classes in a single dex file.

File Dalvik Executable ( .dex ) digunakan untuk menyimpan sekumpulan definisi kelas dan data tambahan terkait untuk aplikasi Android ( .apk ). Satu file dex terbatas pada referensi ke 65.536 metode. Build akan gagal jika jumlah total metode dari semua library Android di project Anda melebihi batas ini.

Unity memperkenalkan Minifikasi pada 2017.2, yang menggunakan Proguard (atau alat lain di beberapa versi Unity) untuk menghapus kode yang tidak terpakai, yang dapat mengurangi jumlah total metode yang direferensikan dalam satu file dex. Opsi ini dapat ditemukan di Pengaturan Pemain > Android > Pengaturan Penerbitan > Perkecil . Pilihannya mungkin berbeda di versi Unity yang berbeda, jadi lihat dokumentasi resmi Unity.

Jika jumlah metode yang direferensikan masih melebihi batas, opsi lainnya adalah mengaktifkan multidex . Ada beberapa cara untuk mencapai ini di Unity:

  • Jika Custom Gradle Template di bawah Player Settings diaktifkan, ubah mainTemplate.gradle .
  • Jika Anda menggunakan Android Studio untuk membangun proyek yang diekspor, ubah file build.gradle tingkat modul.

Rincian lebih lanjut dapat ditemukan di panduan pengguna multidex .

Dukungan dan desugaring Java 8 untuk build Android di Unity 2017 dan Unity 2018 (Firebase Unity SDK 8.0.0 dan lebih tinggi)

Pada bulan Mei 2021 (Firebase BoM v28.0.0), Firebase menonaktifkan desugaring untuk semua library Android-nya (lihat catatan rilis ). Saat mem-build aplikasi Android dengan Firebase Unity SDK (8.0.0 dan lebih tinggi), Anda mungkin melihat error build berikut:

> Error while dexing.
 The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle

Perubahan ini memengaruhi build Android di Unity 2017 dan Unity 2018 saja. Versi Unity yang lebih baru menambahkan blok compileOptions secara default di file build gradle. Untuk memperbaiki kesalahan build ini di Unity 2017 dan Unity 2018, lakukan salah satu hal berikut:

  • Tambahkan blok compileOptions ke templat gradle Anda:

    1. Gunakan Gradle sebagai sistem build.
    2. Aktifkan Custom Gradle Template di bawah Player Settings .
    3. Tambahkan baris berikut ke mainTemplate.gradle (atau build.gradle level modul jika mengekspor proyek untuk Android Studio):

      android {
          compileOptions {
              sourceCompatibility 1.8
              targetCompatibility 1.8
          }
      }
      
  • Atau, tingkatkan minSdkVersion untuk proyek Android Anda menjadi 26 atau lebih tinggi.

Lihat juga Pemecahan masalah Android - desugaring kegagalan pembangunan .

Masalah saat membuat untuk iOS dengan Cocoapods

Saat membuat untuk iOS, penginstalan Cocoapod mungkin gagal dengan kesalahan tentang bahasa lokal, atau pengkodean UTF-8. Saat ini ada beberapa cara berbeda untuk mengatasi masalah ini.

  • Dari terminal, jalankan pod install secara langsung, dan buka file xcworkspace yang dihasilkan.

  • Turunkan versi Cocoapods ke 1.10.2. Masalahnya hanya ada di versi 1.11 dan yang lebih baru.

  • Di ~/.bash_profile atau yang setara, tambahkan export LANG=en_US.UTF-8

Cara mengupdate versi Firebase Unity SDK

Proses untuk mengupdate versi Firebase Unity SDK bergantung pada bagaimana versi awalnya diimpor. Berikut adalah dua metode impor alternatif:

  • Mengimpor file .unitypackage di bawah direktori Assets/ proyek Anda
  • Mengimpor menggunakan Unity Package Manager (UPM)
    • Ini adalah cara yang disarankan untuk mengelola paket di Unity 2018.4+.
    • Gunakan metode ini untuk membuat pembaruan versi yang akan datang lebih mudah dan pembersihan direktori Assets/ Anda.

Dalam proyek Unity Anda, Anda hanya boleh menggunakan satu metode impor untuk mengelola semua paket Firebase Anda. Petunjuk di bawah ini dapat digunakan tidak hanya untuk memperbarui versi paket individual, tetapi juga, jika diperlukan, untuk memigrasi manajemen paket ke UPM (metode impor yang disarankan).