每当我的应用程序发生崩溃时,崩溃日志都会以组织者内部的符号形式显示。现在的问题是所有指向iOS类的内存地址都被标记得很好,但我的应用程序类的内存地址没有被象征化。我需要设置哪个XCode项目属性才能启用它们。
这些是当前的构建设置,可以启用iOS类的符号化。我正在使用XCode 4.3.2。
答案 0 :(得分:1)
Strip Debug Symbols During Copy
:非调试配置版本应为YES
,因为它会将您的应用二进制文件炸掉30-50%
Debug Information Format
:所有配置都应为DWARF with dSYM File
,以便能够用任何二进制符号表示符号。
现在我猜你是在调试版本上尝试这个,这些版本不是Xcode中build命令的最新结果。您必须记住,每次运行构建命令时,都会生成一个新的可执行文件和一个新的dSYM软件包,而前一个软件包将被覆盖! (除非您使用存档功能)
符号化脚本从应用的崩溃报告中解析UUID,并通过聚光灯搜索相应的.app AND .app.dSYM捆绑包。因此,如果聚光灯未对目标路径建立索引,或者二进制文件被另一个构建运行替换,则它将无法对应用程序符号进行符号化。
答案 1 :(得分:1)
你关掉了聚光灯吗? symbolicatecrash使用聚光灯来查找二进制文件和dsym文件,因此如果您关闭了聚光灯,那么它将无法找到它们。无论如何,这里是如何将十六进制堆栈跟踪地址转换为行号:
[1]找到.dSym文件,方法是转到XCode-> Organizer,点击档案,然后右键点击档案,然后进入这个目录(你只需将文件夹拖到一个shell窗口中)。 / p>
[2] cd进入dSYMs目录。
[3]运行dwarfdump命令将十六进制地址转换为代码中的行号:
dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table'
答案 2 :(得分:0)
尝试将部署后处理设置为NO。
DEPLOYMENT_POSTPROCESSING。激活此设置表示应删除二进制文件,文件模式,所有者和组 信息应设置为标准值。
答案 3 :(得分:0)
似乎xcode使用最后归档的build .dsym文件来表示您的日志(即使在调试中),因此尝试归档您的应用。
归档您的应用后重新标记崩溃报告。
它对我有用。