Dépannage et questions fréquentes pour Unity et Firebase

Cette page propose des conseils et des solutions de dépannage pour les problèmes spécifiques à Unity que vous pouvez rencontrer lors de l'utilisation de Firebase.

Vous rencontrez d'autres difficultés ou vous ne trouvez pas votre problème ci-dessous ? Consultez les questions fréquentes principales sur Firebase pour obtenir d'autres questions fréquentes sur Firebase ou spécifiques à un produit.

Problème lié à un seul dex lors de la compilation d'une application Android

Lors de la compilation d'une application Android, vous pouvez rencontrer une erreur de compilation liée à la présence d'un seul fichier DEX. Le message d'erreur ressemble à celui-ci si votre projet est configuré pour utiliser le système de compilation Gradle.

Cannot fit requested classes in a single dex file.

Les fichiers Dalvik Executable (.dex) permettent de stocker un ensemble de définitions de classe et les données associées pour les applications Android (.apk). Un seul fichier DEX est limité à la référence de 65 536 méthodes. La compilation échouera si le nombre total de méthodes de toutes les bibliothèques Android de votre projet dépasse cette limite.

Unity a introduit la minification en 2017.2. Elle utilise Proguard (ou d'autres outils dans certaines versions d'Unity) pour supprimer le code inutilisé, ce qui peut réduire le nombre total de méthodes référencées dans un seul fichier DEX. Vous trouverez cette option dans Player Settings > Android > Publishing Settings > Minify (Paramètres du lecteur > Android > Paramètres de publication > Minification). Les options peuvent varier selon les versions d'Unity. Reportez-vous donc à la documentation officielle d'Unity.

Si le nombre de méthodes référencées dépasse toujours la limite, vous pouvez également activer multidex. Pour ce faire, plusieurs méthodes s'offrent à vous dans Unity :

  • Si Custom Gradle Template sous Player Settings est activé, modifiez mainTemplate.gradle.
  • Si vous utilisez Android Studio pour compiler le projet exporté, modifiez le fichier build.gradle au niveau du module.

Pour en savoir plus, consultez le guide de l'utilisateur multidex.

Problèmes lors de la compilation pour Android avec la version minimale de SDK 23

Lors de la compilation pour Android, si vous ciblez minSdkVersion 23, la compilation peut échouer à l 'étape de conversion au format .dex, généralement dans la tâche Gradle':launcher:mergeExtDexDebug', où il est indiqué que la transformation de l'une des bibliothèques Android a échoué. Cela est dû à un bug dans l'outil dex par défaut du SDK Android utilisé par la plupart des éditeurs Unity. Il peut être corrigé de plusieurs manières :

  • Définissez minSdkVersion sur 24.
  • Activez la minification Android dans Player Settings > Android > Publishing Settings > Minify (Paramètres du lecteur > Android > Paramètres de publication > Minification).
  • Spécifiez une autre version de l'outil dex en ajoutant ce code à votre fichier settingsTemplate.gradle :
buildscript {
  repositories {
    mavenLocal()
    maven { url 'https://maven.google.com'  }
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools:r8:8.3.37'
  }
}

Problèmes lors de la compilation pour iOS avec Cocoapods

Lors de la compilation pour iOS, l'installation de Cocoapod peut échouer avec une erreur concernant les paramètres régionaux de la langue ou l'encodage UTF-8. Il existe actuellement plusieurs façons de contourner ce problème.

  • Dans le terminal, exécutez directement pod install, puis ouvrez le fichier xcworkspace généré.

  • Revenez à la version 1.10.2 de CocoaPods. Ce problème n'existe que dans les versions 1.11 et ultérieures.

  • Dans votre ~/.bash_profile ou équivalent, ajoutez export LANG=en_US.UTF-8.

Mettre à jour la version des SDK Unity Firebase

La procédure de mise à jour des versions des SDK Unity Firebase dépend de la manière dont ils ont été importés initialement. Voici les deux autres méthodes d'importation :

  • Importer des fichiers .unitypackage dans le répertoire Assets/ de votre projet
  • Importer à l'aide du gestionnaire de paquets Unity (UPM)
    • Il s'agit de la méthode recommandée pour gérer les packages dans Unity 2018.4 et versions ultérieures.
    • Utilisez cette méthode pour faciliter les futures mises à jour de version et nettoyer votre répertoire Assets/.

Dans votre projet Unity, vous ne devez utiliser qu'une seule méthode d'importation pour gérer tous vos packages Firebase. Les instructions ci-dessous peuvent être utilisées non seulement pour mettre à jour la version de packages individuels, mais aussi, si nécessaire, pour migrer la gestion des packages vers UPM (méthode d'importation recommandée).