DSYM和二进制需要符号? 还是只是DSYM?

开始使用Crashlytics,并且很好奇为什么只有 DSYM必须上传,而不是完整的.app二进制文件才能匹配。 我的印象是,象征性的你需要一个与DSYM文件匹配的二进制文件。 情况不是这样吗? 基本上试图找出Crashlytics象征的魔术,当我在我的应用程序中做的所有事情都运行了上传DSYM的后构build脚本

迈克从织物和Crashlytics在这里。

一个dSYM文件实际上包含了您的应用程序所需的所有debugging符号,以表示崩溃报告。 这就是为什么我们build议将Debug_Information_Format设置为“dSYM Dwarf”。 我们还生成一个唯一的构buildID,以便即使构build版本和版本号不变,为该构build上传的dSYM对于任何需要符号化的崩溃报告都是准确的。

你也可以从苹果公司获得更多关于这方面的信息,但最重要的部分是:“当编译器将源代码翻译成机器代码时,它也会生成debugging符号,将编译后的二进制中的每条机器指令映射回源代码,根据debugging信息格式(DEBUG_INFORMATION_FORMAT)编译设置,这些debugging符号存储在二进制文件或者一个伴随debugging符号(dSYM)文件中。

如上所述,这些符号只能在dSYM文件中,因此我们build议设置Debug_Information_Format