构建设置以生成正确的dSYM

时间:2012-12-01 13:36:03

标签: ios crash

我对dSYM有疑问。我用我的应用程序做了一个实验并添加了以下代码:

if (currentMenuPage_ == MenuPageAttrsVals) {
    return ((ValueAndId *) [currentValues_ objectAtIndex:-1]).name;
}

正如预期的应用程序崩溃并生成了崩溃日志。

然而,Xcode和atos无法告诉我崩溃的确切位置。

2   CoreFoundation                  0x3192c23d -[__NSArrayI objectAtIndex:] + 165
3   MyApp                           0x00053487 0x49000 + 42119
4   MyApp                           0x0005102d 0x49000 + 32813

构建我的应用程序时,是否必须设置一些特殊设置以生成正确的dSYM?

如果我拨打dwarfdump --uuid MyApp.app.dSYM,我会收到一个号码。这个号码应该出现在我的崩溃日志中吗?

1 个答案:

答案 0 :(得分:2)

该号码应显示在Binary Images部分下的第一行。 (它的格式可能不同,例如小写但没有-字符。)

请记住,每次进行构建时,此UUID都会更改,如果您未保存以前的dSYM,则不会对其进行符号化。

如果您没有更改很多(任何)代码,您可以使用最新的dSYM中的新代码替换Binary Images部分中的UUID字符串(保留其中的格式)。

如果符号不起作用且UUID正确,则该文件夹很可能不会被Spotlight编入索引,因此符号化脚本无法找到dSYM。