Atos无法从归档应用程序的dSYM获取符号

Jas*_*son 34 crash xcode symbolicatecrash ios

我有BugSense的崩溃报告,因此我有关于崩溃的内存位置的信息,但它们没有象征性.此外,Bug Sense不会发送传统的崩溃报告,但仍会给我一个bug跟踪.因此,我尝试使用Atos来获取崩溃的确切位置.我已经在XCode 4中存档了应用程序并使用该版本提交到应用程序商店,因此我有一个dSYM文件.我运行了以下代码:

atos -arch armv7 -o MyApp.app.dSYM 0x001057e9
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到正确的输出,而是收到错误:

atos cannot load symbols for the file MyApp.app.dSYM for architecture armv7
Run Code Online (Sandbox Code Playgroud)

有关为什么会发生这种情况的任何建议?我没有从应用程序中删除调试符号.

Jas*_*son 95

要从归档应用程序的dSYM文件中正确获取符号,并从BugSense崩溃报告(或任何其他崩溃报告)中获取有用信息:

  1. 将堆栈跟踪从BugSense复制到TextEdit或任何其他文本编辑器.确保使用"剪贴板"图标,而不是简单地复制文本.否则,您将无法获得堆栈跟踪的实际内存位置,这些位置是使用堆栈跟踪查找引用所必需的atos.
  2. 打开XCode并转到管理器
  3. 找到您的存档并右键单击它,然后在查找器中打开它.
  4. 通常,导航到存档目录 ~/Library/Developer/XCode/Archives/YYYY-MM-DD/
  5. 进入特定存档,然后进入dSYMs文件夹
  6. 您将看到该文件MyApp.app.dSYM,您可能会认为,这是我应该运行的文件atos!这是不正确的.这实际上是另一个包! cd进入这个包,进入文件夹:MyApp.app.dSYM/Contents/Resources/DWARF你会发现另一个简单调用的文件MyApp.这是实际的dSYM文件.
  7. 运行atos -arch armv7 -o MyApp 0x0000000(或任何内存地址)以查找错误的位置,或只是atos -arch armv7 -o MyApp进入交互模式.

  • 哇,第6步在这里帮了很多忙.谢谢! (23认同)
  • “ -arch armv7”-真的很重要,没有它,我的数据错误 (2认同)
  • 我有一个回溯但没有崩溃日志,这仍然有效吗?似乎只是给我随机的位置.以下是我的回溯示例行:MyApp 0x00054b23 MyApp + 301859 (2认同)