1

我有一个关于 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,我会得到一个号码。这个数字是否应该出现在我的崩溃日志中?

4

1 回答 1

2

该数字应出现在该Binary Images部分下的第一行中。(它的格式可能不同,例如小写和不带-字符)。

请记住,每次构建时,此 UUID 都会发生变化,如果您没有保存之前的 dSYM,它不会对其进行符号化。

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

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

于 2012-12-01T14:30:36.027 回答