Zugriff auf iOS und tvOS Logs und Absturzberichte
Mit Unreal Engine erstellte iOS-Anwendungen erstellen Absturz-Logs, die Entwickler zum Debuggen ihrer Projekte und zum Beheben von Code-Probleme verwenden können. Aus Sicherheitsgründen sind die Debug-Symbole jedoch nicht zusammen mit den Absturz-Logs verfügbar. Sie sehen Schlüssel und Nummern, aber um die Namen der Funktionen oder Informationen zu Variablen in einem lesbaren Format anzuzeigen, müssen Sie Ihre Logs mit einer Datenbank von Symbolen für Ihr Projekt abgleichen.
Es gibt mehrere Prozesse zum erneuten Symbolisieren Ihrer Logs und zum Lesen dieser Logs, je nachdem, wie Sie Ihre Debug Builds auf die Geräte übertragen haben. TestFlight ist Apples Anwendung zur Bereitstellung von Test-Builds für eine große Anzahl möglicher Geräte, sowie zur Bereitstellung von Logs dieser Builds für Entwickler. Sie können Logs auch direkt über USB-Debugging erhalten.
Sie benötigen einen Mac und Xcode, um Logs für iOS-Projekte zu lesen. Andere Betriebssysteme und IDEs funktionieren nicht mit den Workflows auf dieser Seite.
1. Direkter Zugriff auf Logs vom Gerät aus
Wenn Sie direkt über USB oder Ethernet debuggen, führen Sie die folgenden Schritte aus, um ein symbolisiertes Absturz-Log anzuzeigen:
Wählen Sie in Xcode im Hauptmenü Fenster > Geräte und Simulatoren aus.
Klicken Sie auf das iPhone, von dem Sie Absturzdaten abrufen möchten, und klicken Sie dann auf Gerät-Logs anzeigen.
Klicken Sie bei gedrückter Strg-Taste auf das Log, das Sie lesen möchten, und klicken Sie dann auf Neu symbolisieren und Log exportieren.
Dadurch wird ein für Menschen lesbares Log mit Debug-Symbolen erstellt.
2. Zugriff auf Logs aus TestFlight
Wenn eine über TestFlight bereitgestellte Anwendung abstürzt, wird eine XCrashPoint-Datei mit Informationen zum Absturz erstellt. Um diese Dateien lesen zu können, benötigen Sie eine .dSYM Datei mit Debug-Symbolen für Ihr Projekt. Anschließend müssen Sie den Absturzbericht extrahieren und neu symbolisieren.
Spezifische Informationen zum Bereitstellen von Anwendungen über TestFlight und zum Zugriff auf Logs finden Sie in der Apple-Dokumentation zu TestFlight. In diesem Abschnitt finden Sie Informationen darüber, wie Sie diese Symbole nach dem Erhalt symbolisieren können.
Generieren einer .dSYM Datei während der Paketierung
Um eine .dSYM-Datei zu generieren, wenn Sie Ihr Projekt paketieren, führen Sie die folgenden Schritte aus:
Öffnen Sie den Unreal Editor.
Öffnen Sie Ihre Projekt-Einstellungen und navigieren Sie dann zu Plattformen > iOS > Build.
Aktivieren Sie dSYM-Datei für Code-Debugging und Profiling generieren.
Paketieren Sie Ihr Projekt.
Die Datei .dSYM für Ihr Projekt wird in Ihrem Projektordner unter /Binaries/iOS angezeigt.
.dSYM-Dateien enthalten einen Zeitstempel, der angibt, wann sie verpackt wurden. Notieren Sie sich diese Informationen, damit Sie .dSYM Dateien dem richtigen Build zuordnen können.
Generieren einer .dSYSM Datei über die Befehlszeile
Um eine .dSYM Datei mit UAT zu generieren, führen Sie das RunUAT-Script in einer Befehlszeile mit dem Befehl GenerateDYSM aus. Geben Sie die folgenden Parameter an:
| Parameter | Optional | Gültige Werte | Beschreibung |
|---|---|---|---|
-Platform=[Zielplattform] | Ja | IOS, TVOS, Mac | Gibt die Zielplattform an. Wenn nicht anders angegeben, wird die aktuelle Plattform verwendet. |
-Target=[Projektname] | Ja | Der Name Ihres Projekts. | Gibt an, welches Projekt Sie verwenden möchten. Wenn nicht anders angegeben, wird das aktuelle Projekt verwendet. |
-Config=[Build Konfiguration] | Ja | Debug, DebugGame, Entwicklung, Test, Auslieferung | Ziel-Build-Konfiguration. Wenn nicht anders angegeben, wird standardmäßig Entwicklung verwendet. |
-Architecture=[Architektur Typ] | Nein | x64, arm64, x64+arm64] | Zielarchitektur des Geräts |
-flat | Ja | Nimmt keine Inputs entgegen. | Wenn angegeben, sind die .dSYMs Flat-Dateien die sich leichter zwischen Computern oder Servern kopieren lassen. |
Zum Beispiel erzeugt der folgende Befehl .dSYM Dateien für iOS-Geräte mit der arm64 Architektur:
```RunUAT.command GenerateDYSM -project=MyProject -platform=Mac -target=EngineTestEditor -config=Test -architecutre=arm64```Extrahieren des Absturzberichts und erneutes Symbolisieren
Um Ihren Absturzbericht abzurufen und ihn neu zu symbolisieren, damit Sie ihn lesen können, führen Sie die folgenden Schritte aus:
Erhalten Sie eine
XCrashPoint-Datei von TestFlight. Sie können dazu den folgenden Befehlszeilen-Input verwenden.C++export PATH="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:$PATH"Klicken Sie bei gedrückter Strg-Taste auf
.XCrashPointund klicken Sie dann auf Extrahieren.crashDatei. Sie können diese Informationen auch mit dem folgenden Befehlszeilen-Input exportieren:C++export PATH="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:$PATH"Öffnen Sie XCode und schauen Sie sich dann das Terminal an. Verwenden Sie es, um zu Ihrer Xcode-Datei
.packagezu navigieren.Verwenden Sie das Werkzeug symbolicatecrash, indem Sie die folgende Befehlszeile ausführen:
C++export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" cp -i /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ././symbolicatecrash unsymbolicated.crash symbols.dSYM > symbolicated.crash
Die obigen Befehle verwenden Standardverzeichnisse. Verwenden Sie die Speicherorte Ihrer .crash und .dSYM Dateien, wenn Sie diese Befehlszeilen ausführen.
Xcode stellt dann ein Absturz-Log mit sichtbaren Funktionsnamen und Variablen bereit.