DSYM and binary required to symbolicate? Or just DSYM?

时间:2016-10-20 19:59:13

标签: ios crashlytics symbolicatecrash dsym

Started using Crashlytics and am curious why only the DSYMs have to be uploaded and not the full .app binary to match. I was under the impression that to symbolicate you needed a binary with matching DSYM file. Is that not the case? Basically trying to figure out the magic of how Crashlytics symbolicates when all I do in my app is run the post-build script that uploads the DSYM

1 个答案:

答案 0 :(得分:3)

Mike来自Fabric和Crashlytics。

dSYM文件实际上包含代表崩溃报告所需的应用程序的所有调试符号。这就是为什么我们建议您将Debug_Information_Format设置为“dwarf with dSYM”。我们还生成一个唯一的构建ID,这样即使构建和版本号没有更改,为该构建上载的dSYM对于需要符号化的任何崩溃报告仍然是准确的。

您还可以阅读有关this from Apple的更多信息,但最重要的部分是:“当编译器将源代码转换为机器代码时,它还会生成调试符号,这些符号会映射已编译二进制文件中的每个机器指令返回到源代码行。根据调试信息格式(DEBUG_INFORMATION_FORMAT)构建设置,这些调试符号存储在二进制文件或随附的调试符号(dSYM)文件中。“

如上所述,符号可以只在dSYM文件中,因此我们建议设置Debug_Information_Format