Einführung
Im Folgenden finden Sie eine Anleitung zum Debuggen des Kompilierungs- und Build-Prozesses für Unity-Spiele mit dem Firebase SDK für Unity. Darin wird beschrieben, wie Sie viele der häufigsten Probleme untersuchen und beheben können, die beim Konfigurieren und Erstellen Ihres Spiels für eine neue Plattform oder nach einem Update auftreten können. Die Reihenfolge entspricht dem Zeitpunkt, zu dem diese Fehler im Prozess auftreten können. Gehen Sie die Schritte der Reihe nach durch und fahren Sie fort, sobald ein Problem behoben ist.
Weitere Informationen finden Sie in den FAQs zu Firebase für Unity.
Kompilierungsprobleme im Spielmodus
Die erste Art von Build-Problemen kann beim Testen im Editor auftreten, bevor Sie versuchen, einen mobilen Build zu starten. In diesem Abschnitt werden alle Firebase-Fehler beschrieben, die vor und während des Play-Modus auftreten.
Wenn Unity gestartet wird oder Änderungen an Abhängigkeiten, Code oder anderen Assets erkennt, wird versucht, das Projekt neu zu erstellen. Wenn das Projekt zu diesem Zeitpunkt nicht kompiliert werden kann, protokolliert der Editor Kompilierungsfehler in der Konsole. Wenn Sie versuchen, den Wiedergabemodus zu starten, wird auf dem Tab Scene (Szene) in Unity ein Pop-up-Fenster mit der Fehlermeldung All compiler errors have to be fixed before you can enter playmode! angezeigt.
Firebase-bezogene Kompilierungsprobleme beheben
Fehlende Typen, Klassen, Methoden und Mitglieder
Viele Firebase-Probleme treten auf, weil der Editor und der Compiler die erforderlichen Typen, Klassen, Methoden und Mitglieder nicht finden können. Häufige Symptome sind Varianten der folgenden:
The type or namespace name ‘<CLASS OR NAMESPACE NAME>' could not be found. Are you missing a using directive or an assembly reference?
The type or namespace name <TYPE OR NAMESPACE NAME> does not exist in the namespace ‘Firebase<.OPTIONAL NESTED NAMESPACE NAME PATH>' (are you missing an assembly reference?)
‘<CLASS NAME>' does not contain a definition for ‘<MEMBER VARIABLE OR METHOD NAME>'
Schritte zur Fehlerbehebung:
Wenn Sie Firebase-Klassen oder -Methoden im Code verwenden, müssen Sie sie mit den richtigen
using-Anweisungen für die jeweiligen Firebase-Produkte verfügbar machen.Prüfen Sie, ob Sie die entsprechenden Firebase-Pakete importiert haben:
- So importieren Sie die entsprechenden Pakete:
- Firebase Unity SDK als
.unitypackages hinzufügen oder - Sehen Sie sich die Alternativen unter Zusätzliche Unity-Installationsoptionen an und führen Sie eine davon aus.
- Firebase Unity SDK als
- Achten Sie darauf, dass jedes Firebase-Produkt in Ihrem Projekt und EDM4U:
- Sie haben dieselbe Version.
- Sie wurden entweder ausschließlich als
.unitypackages ODER ausschließlich über den Unity Package Manager installiert.
- So importieren Sie die entsprechenden Pakete:
Wenn Sie das Firebase Unity SDK vor Version 10.0.0 als
.unitypackages importiert haben, enthält das ZIP-Archiv des Firebase Unity SDK Pakete für die Unterstützung von .NET 3.x und .NET 4.x. Achten Sie darauf, dass Sie nur die kompatible .NET Framework-Ebene in Ihr Projekt aufgenommen haben:- Die Kompatibilität zwischen den Versionen des Unity-Editors und den .NET Framework-Stufen wird unter Firebase zu einem Unity-Projekt hinzufügen erläutert.
- Wenn Sie Ihre Firebase-Pakete versehentlich auf der falschen .NET Framework-Ebene importiert haben oder von
.unitypackages zu einer der zusätzlichen Unity-Installationsoptionen wechseln müssen, ist es am besten, alle Firebase-Pakete mit den in diesem Migrationsabschnitt beschriebenen Methoden zu entfernen und dann alle Firebase-Pakete noch einmal zu importieren.
Prüfen Sie, ob Ihr Editor das Projekt neu erstellt und ob Ihre Versuche, das Spiel zu spielen, den aktuellen Status Ihres Projekts widerspiegeln:
- Standardmäßig ist der Unity-Editor so eingestellt, dass er neu erstellt wird, wenn Änderungen an Assets oder Konfigurationen erkannt werden.
- Möglicherweise wurde diese Funktion deaktiviert und der Unity-Editor ist auf manuelle Aktualisierung/Neukompilierung eingestellt. Prüfen Sie dies und versuchen Sie, die Seite manuell zu aktualisieren, falls dies der Fall ist.
Laufzeitfehler im Wiedergabemodus
Wenn Ihr Spiel startet, aber während der Ausführung Probleme mit Firebase auftreten, versuchen Sie Folgendes:
Achten Sie darauf, Firebase-Bundles unter „Sicherheit & Datenschutz“ unter macOS zu genehmigen.
Wenn Sie Ihr Spiel im Editor unter macOS starten und ein Dialogfeld mit der Meldung „FirebaseCppApp-<version>.bundle kann nicht geöffnet werden, da der Entwickler nicht verifiziert werden kann.“ angezeigt wird, müssen Sie diese Bundle-Datei im Menü „Sicherheit & Datenschutz“ des Mac genehmigen.
Klicken Sie dazu auf das Apple-Symbol > Systemeinstellungen > Sicherheit und Datenschutz.
Im Sicherheitsmenü finden Sie etwa in der Mitte der Seite einen Abschnitt mit dem Hinweis „Die Verwendung von ‚FirebaseCppApp-<version>.bundle‘ wurde blockiert, da es nicht von einem identifizierten Entwickler stammt.“
Klicken Sie auf den Button Trotzdem zulassen.

Kehren Sie zu Unity zurück und drücken Sie noch einmal auf Play.
Es wird eine Warnung ähnlich der ersten angezeigt:

Klicken Sie auf Öffnen, um fortzufahren. Sie werden nicht noch einmal nach dieser Datei gefragt.
Achten Sie darauf, dass Ihr Projekt gültige Konfigurationsdateien enthält und verwendet.
- Prüfen Sie unter File > Build Settings (Datei > Build-Einstellungen), ob die Build-Einstellungen für das gewünschte Ziel (iOS oder Android) festgelegt sind. Eine ausführlichere Erläuterung finden Sie in der Dokumentation zu den Unity-Build-Einstellungen.
- Laden Sie die Konfigurationsdatei für Ihre App (
google-services.jsonfür Android oderGoogleService-Info.plistfür iOS) und das Build-Ziel aus der Firebase Console unter Projekteinstellungen > Meine Apps herunter: Wenn Sie diese Dateien bereits haben, löschen Sie sie in Ihrem Projekt und ersetzen Sie sie durch die neueste Version. Achten Sie darauf, dass sie genau wie oben angegeben geschrieben sind, ohne „(1)“ oder andere Zahlen an den Dateinamen. - Wenn die Konsole eine Meldung zu Dateien in
Assets/StreamingAssets/enthält, prüfen Sie, ob es keine Konsolenmeldungen gibt, die besagen, dass Unity dort keine Dateien bearbeiten konnte. - Prüfen Sie, ob
Assets/StreamingAssets/google-services-desktop.jsongeneriert wurde und mit der heruntergeladenen Konfigurationsdatei übereinstimmt.- Wenn es nicht automatisch generiert wird und
StreamingAssets/nicht vorhanden ist, erstellen Sie das Verzeichnis manuell im VerzeichnisAssets. - Prüfen Sie, ob Unity jetzt
google-services-desktop.jsongeneriert hat.
- Wenn es nicht automatisch generiert wird und
Achten Sie darauf, dass alle Firebase-Produkte und EDM4U ausschließlich über .unitypackage oder den Unity Package Manager installiert wurden.
- Prüfen Sie sowohl den Ordner
Assets/als auch den Unity Package Manager, um sicherzustellen, dass die Firebase SDKs und EDM4U ausschließlich über eine der beiden Methoden installiert wurden. - Einige von Google entwickelte Plug-ins wie Google Play und Plug-ins von Drittanbietern hängen möglicherweise von EDM4U ab. Diese Plug-ins können EDM4U in ihren
.unitypackages oder Unity Package Manager-Paketen (UPM) enthalten. Achten Sie darauf, dass es nur eine Kopie von EDM4U in Ihrem Projekt gibt. Wenn UPM-Pakete von EDM4U abhängen, sollten Sie nur die UPM-Versionen von EDM4U beibehalten. Diese finden Sie auf der Archivseite für Google APIs for Unity.
Achten Sie darauf, dass alle Firebase-Produkte in Ihrem Projekt dieselbe Version haben.
- Wenn Firebase SDKs über
.unitypackageinstalliert wurden, prüfen Sie, ob alleFirebaseCppApp-Bibliotheken unterAssets/Firebase/Plugins/x86_64/dieselbe Version haben. - Wenn Firebase SDKs über den Unity Package Manager (UPM) installiert wurden, öffnen Sie Windows > Package Manager, suchen Sie nach „Firebase“ und achten Sie darauf, dass alle Firebase-Pakete dieselbe Version haben.
- Wenn Ihr Projekt verschiedene Versionen von Firebase SDKs enthält, empfehlen wir, alle Firebase SDKs vollständig zu entfernen und dann noch einmal zu installieren, diesmal mit denselben Versionen. Am besten entfernen Sie alle Firebase-Pakete mit den Methoden, die in diesem Migrationsabschnitt beschrieben werden.
Build-Fehler bei Resolver und Zielgerät
Wenn Ihr Spiel im Editor funktioniert (für das entsprechende Build-Ziel Ihrer Wahl konfiguriert), prüfen Sie als Nächstes, ob der External Dependency Manager for Unity (EDM4U) richtig konfiguriert ist und funktioniert.
Das EDM4U-GitHub-Repository enthält eine detaillierte Anleitung für diesen Teil des Prozesses, die Sie sich ansehen und befolgen sollten, bevor Sie fortfahren.
„Single Dex“-Probleme und Reduzierung (erforderlich bei Verwendung von Cloud Firestore)
Beim Erstellen einer Android-App kann es zu einem Build-Fehler kommen, wenn nur eine einzelne DEX-Datei vorhanden ist. Die Fehlermeldung sieht etwa so aus (wenn Ihr Projekt für die Verwendung des Gradle-Build-Systems konfiguriert ist):
Cannot fit requested classes in a single dex file.
.dex-Dateien werden verwendet, um eine Reihe von Klassendefinitionen und die zugehörigen Zusatzdaten für Android-Apps zu speichern. Eine einzelne DEX-Datei kann maximal 65.536 Methoden referenzieren. Builds schlagen fehl,wenn die Gesamtzahl der Methoden aus allen Android-Bibliotheken in Ihrem Projekt dieses Limit überschreitet.
Die folgenden beiden Schritte können nacheinander ausgeführt werden. Aktivieren Sie Multidex nur, wenn das Problem durch die Reduzierung nicht behoben wird.
Minimierung aktivieren
Unity hat 2017.2 die Reduzierung eingeführt, um nicht verwendeten Code zu entfernen. Dadurch kann die Gesamtzahl der referenzierten Methoden in einer einzelnen DEX-Datei reduziert werden. * Die Option finden Sie unter Player Settings > Android > Publishing Settings > Minify (Player-Einstellungen > Android > Veröffentlichungseinstellungen > Reduzieren). * Die Optionen können je nach Unity-Version variieren. Weitere Informationen finden Sie in der offiziellen Unity-Dokumentation.
Multidex aktivieren
Wenn die Anzahl der referenzierten Methoden nach der Aktivierung der Reduzierung immer noch das Limit überschreitet, können Sie multidex aktivieren. In Unity gibt es mehrere Möglichkeiten, dies zu erreichen:
- Wenn Custom Gradle Template (Benutzerdefinierte Gradle-Vorlage) unter Player Settings (Playereinstellungen) aktiviert ist, ändern Sie
mainTemplate.gradle. - Wenn Sie das exportierte Projekt mit Android Studio erstellen, ändern Sie die Datei build.gradle auf Modulebene.
Weitere Informationen finden Sie im Multidex-Nutzerhandbuch.
Laufzeitfehler auf Zielgeräten verstehen und beheben
Wenn Ihr Spiel im Editor funktioniert und für Ihr Zielgerät erstellt und darauf installiert werden kann, aber Laufzeitfehler auftreten, sollten Sie die auf dem Gerät generierten Protokolle prüfen und untersuchen.
In diesem Abschnitt wird erläutert, wie Sie Ihre Logs auf mögliche Fehler untersuchen können. Außerdem wird ein Fehler beschrieben, der nur zur Laufzeit auf dem Gerät oder im Simulator auftritt.
Android
Simulator
- Prüfen Sie die Logs, die in der Konsole des Emulators angezeigt werden, oder rufen Sie das Fenster Logcat auf.
Gerät
Machen Sie sich mit adb und adb logcat und deren Verwendung vertraut.
- Sie können die verschiedenen Tools Ihrer Befehlszeilenumgebung verwenden, um die Ausgabe zu filtern. Alternativ können Sie sich auch die Optionen von logcat ansehen.
Eine einfache Möglichkeit, eine ADB-Sitzung mit einem sauberen Zustand zu starten, ist:
adb logcat -c && adb logcat <OPTIONS>Dabei sind
OPTIONSdie Flags, die Sie an die Befehlszeile übergeben, um die Ausgabe zu filtern.
Logcat über Android Studio verwenden
Wenn Sie Logcat über Android Studio verwenden, stehen Ihnen zusätzliche Suchtools zur Verfügung, mit denen Sie produktive Suchanfragen einfacher erstellen können.
iOS
Logs prüfen
Wenn Sie ein physisches Gerät verwenden, verbinden Sie es mit Ihrem Computer. Prüfen Sie lldb in Xcode.
Swift-Probleme
Wenn Sie Fehlerlogs erhalten, in denen Swift erwähnt wird, lesen Sie den Abschnitt External Dependency Manager for Unity.
Weitere Schritte
Wenn bei Ihrem Spiel weiterhin Probleme beim Kompilieren, Erstellen oder Ausführen im Zusammenhang mit Firebase auftreten, rufen Sie die Seite mit Problemen im Firebase SDK für Unity auf und melden Sie gegebenenfalls ein neues Problem. Weitere Optionen finden Sie auf der Firebase-Supportseite.