Choose your operating system:
Windows
macOS
Linux
访问iOS和tvOS日志和崩溃报告
使用虚幻引擎构建的iOS应用程序会生成崩溃日志,可供开发人员调试项目和修复代码问题。但是,出于安全原因,调试符号不可用于崩溃日志本身。你将看到键和编号,但要以人工可读格式看到函数名称或有关变量的信息,你需要将日志匹配到你的项目的符号数据库。
有几个过程可用于重新符号化你的日志并进行读取,具体取决于你是如何将调试版本交付到设备的。 TestFlight 是Apple的应用程序,用于将测试版本交付到大量可能设备,它将这些版本中的日志提供给开发人员。你还可以直接通过USB调试获取日志。
你需要Mac和Xcode,才能读取iOS项目的日志。其他操作系统和IDE不适用于此页面上的工作流程。
1.直接从设备访问日志
如果你是通过USB或以太网直接调试,请执行以下步骤来查看符号化崩溃日志:
-
在Xcode中,从主菜单选择 窗口(Window) > 设备和模拟器(Devices and Simulators) 。
-
点击你要从中获取崩溃数据的iPhone,然后点击 查看设备日志(View Device Logs) 。
-
按住Control键的同时点击你想读取的日志,然后点击 重新符号化并导出日志(Re-Symbolicate and export Log) 。
这将提供带有调试符号的人工可读格式日志。
2.从TestFlight访问日志
应用程序通过TestFlight崩溃交付时,它会生成包含崩溃信息的
XCrashPoint
文件。要读取这些文件,你需要有
.dSYM
文件,其中包含你的项目的调试符号,然后你需要提取崩溃报告并将其重新符号化。
有关通过TestFlight部署应用程序并访问日志的具体信息,请参阅 Apple关于TestFlight的文档 。本小节将提供有关如何在获取这些日志后将其符号化的信息。
生成.dSYM文件
要生成
.dSYM
文件,请执行以下步骤:
-
打开 虚幻编辑器(Unreal Editor) 。
-
打开 项目设置(Project Settings) ,然后找到 平台(Platforms) > iOS > 构建(Build) 。
-
启用 生成dSYM文件以用于代码调试和分析(Generate dSYM file for code debugging and profiling) 。
-
打包项目。
项目的
.dSYM
文件将出现在项目文件夹中的
/Binaries/iOS
下。
.dSYM
文件有一个时间戳,显示打包的时间。请记录此信息,以便可以将
.dSYM
文件匹配到正确的版本。
提取崩溃报告并重新符号化
要获取崩溃报告并将其重新符号化,以便你可以进行读取,请执行以下步骤:
-
从TestFlight获取
XCrashPoint
文件。你可以使用以下命令行输入来执行此操作。export PATH="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:$PATH"
-
按住Control键的同时点击
.XCrashPoint
文件,然后点击 提取.crash
文件(Extract.crash
file) 。你还可以使用以下命令行输入来导出此信息:export PATH="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:$PATH"
-
打开XCode,然后查看 终端(terminal) 。使用它找到你的Xcode
.package
。 -
运行以下命令行来使用symbolicatecrash工具:
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
上述说明使用默认目录。运行这些命令行时,请使用你的
.crash
和
.dSYM
文件的位置。
然后,Xcode将提供显示了函数名称和变量的崩溃日志。