我对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
,我会收到一个号码。这个号码应该出现在我的崩溃日志中吗?
答案 0 :(得分:2)
该号码应显示在Binary Images
部分下的第一行。 (它的格式可能不同,例如小写但没有-
字符。)
请记住,每次进行构建时,此UUID都会更改,如果您未保存以前的dSYM,则不会对其进行符号化。
如果您没有更改很多(任何)代码,您可以使用最新的dSYM中的新代码替换Binary Images
部分中的UUID字符串(保留其中的格式)。
如果符号不起作用且UUID正确,则该文件夹很可能不会被Spotlight编入索引,因此符号化脚本无法找到dSYM。