跳转至

故障排查

关于崩溃日志分析

在开发时的 DebugRelease 模式下,Crash 时捕获的线程回溯是被符号化的。而发布包没带符号表,异常线程的关键回溯会显示镜像名字,不会转化为有效的代码符号,获取到的 crash log 中的相关信息通常是 16 进制内存地址,无法直接定位崩溃代码,因此需要将 16 进制内存地址解析为对应的类及方法。

编译或打包后如何找到 dSYM 文件

  • 在 Xcode 中,dSYM 文件通常与编译后的 .app 文件一起生成,并位于同一目录下
  • 如果对项目进行了归档,可以在 Xcode 的 Window 菜单中选择 Organizer,然后选择对应的归档文件。右键点击归档文件,选择 Show in Finder,在 Finder 中找到对应的 .xcarchive 文件。右键点击 .xcarchive 文件,选择 Show Package Contents,然后进入 dSYMs 文件夹,即可找到对应的 dSYM 文件

Xcode 编译后没有生成 dSYM 文件

Xcode Release 编译默认会生成 dSYM 文件,而 Debug 编译默认不会生成,对应的 Xcode 配置如下:

Build Settings -> Code Generation -> Generate Debug Symbols -> Yes

Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File

Include of non-modular header inside framework module

因为 SDK 的 .h 文件中引入了依赖库的 .h 文件,所以需要设置:

Target -> Build Settings -> CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULESYES

文档评价

文档内容是否对您有帮助? ×