Pemecahan Masalah & FAQ untuk Unity dan Firebase

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

Ada kesulitan lain atau masalah yang Anda alami tidak dijelaskan di bawah ini? Pastikan Anda membaca FAQ Firebase utama untuk mengetahui lebih lanjut FAQ lintas Firebase atau khusus produk.

Masalah dengan dex tunggal saat mem-build aplikasi Android

Saat mem-build aplikasi Android, Anda mungkin mengalami kegagalan build yang terkait dengan file dex tunggal. Pesan error akan terlihat seperti berikut, jika project Anda dikonfigurasi untuk menggunakan sistem build Gradle.

Cannot fit requested classes in a single dex file.

File Dalvik Executable (.dex) digunakan untuk menyimpan sekumpulan definisi class dan data tambahan yang terkait untuk aplikasi Android (.apk). File dex tunggal dibatasi untuk merujuk ke maksimal 65.536 metode. Build akan gagal jika jumlah total metode dari semua library Android di project Anda melampaui batas ini.

Unity memperkenalkan Minifikasi pada versi 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 dirujuk dalam file dex tunggal. Opsi ini dapat ditemukan di Player Settings > Android > Publishing Settings > Minify. Opsinya mungkin berbeda pada versi Unity yang berbeda. Karena itu, baca dokumentasi resmi Unity.

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

  • Jika Custom Gradle Template dalam Player Settings diaktifkan, ubah mainTemplate.gradle.
  • Jika Anda menggunakan Android Studio untuk mem-build project yang diekspor, ubah file build.gradle level modul.

Detail selengkapnya dapat ditemukan di panduan pengguna multidex.

Masalah saat mem-build untuk Android dengan minSdkVersion 23

Saat mem-build untuk Android, jika Anda menargetkan minSdkVersion 23, build tersebut mungkin gagal pada langkah dexing, biasanya dalam tugas Gradle ':launcher:mergeExtDexDebug', yang akan menampilkan "Gagal mengubah" salah satu library Android. Hal ini disebabkan oleh bug pada alat dex default di Android SDK yang digunakan oleh sebagian besar editor Unity, dan dapat diperbaiki dengan beberapa cara:

  • Setel minSdkVersion menjadi 24.
  • Aktifkan minifikasi Android, di Player Settings > Android > Publishing Settings > Minify
  • Tentukan versi alat dex yang berbeda dengan menambahkannya ke file settingsTemplate.gradle:
buildscript {
  repositories {
    mavenLocal()
    maven { url 'https://maven.google.com'  }
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools:r8:8.3.37'
  }
}

Masalah saat mem-build untuk iOS dengan Cocoapods

Saat mem-build untuk iOS, penginstalan Cocoapod mungkin gagal dengan error tentang lokalitas bahasa, atau encoding UTF-8. Saat ini ada beberapa cara berbeda untuk mengatasi masalah ini.

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

  • Downgrade versi Cocoapods ke 1.10.2. Masalah ini 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 tersebut pertama kali diimpor. Berikut adalah dua metode impor alternatif:

  • Mengimpor file .unitypackage di direktori Assets/ project Anda
  • Mengimpor menggunakan Pengelola Paket Unity (UPM)
    • Ini adalah cara yang direkomendasikan untuk mengelola paket di Unity 2018.4+.
    • Gunakan metode ini untuk memudahkan update versi mendatang dan membuat direktori Assets/ lebih bersih.

Dalam project Unity, Anda hanya boleh menggunakan satu metode impor untuk mengelola semua paket Firebase. Petunjuk di bawah ini dapat digunakan tidak hanya untuk mengupdate versi masing-masing paket, tetapi juga, jika diperlukan, untuk memigrasi pengelolaan paket ke UPM (metode impor yang direkomendasikan).