如何使用Xcode 8对崩溃日志进行符号化?

10
我应该从我的设备中获取符号化。我按照http://jmillerdev.net/symbolicating-ios-crash-files-xamarin-ios的指示进行操作。
我为Xcode 8创建了alias

alias symbolicate="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v"

我更新了开发者目录:

export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

然后执行符号化:

symbolicate -o "symbolicatedCrash.txt" "MyAppName 2-12-14, 9-44 PM.crash" "MyAppName.app"

但是出现了错误:

Symbolicating myInventories170313.crash ... while reading myInventories170313.crash, No such file or directory : at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 899.

Terminal

尝试给出“myInventories170313.crash”的完整路径。 - Phillip Mills
3个回答

37

尝试按照以下步骤操作:

1)创建一个新文件夹,比如叫“Universe”,用于保存相关文件。

2)使用Finder中的“前往文件夹”功能。输入路径/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/

找到"symbolicatecrash"文件,手动复制并粘贴该文件到你的“Universe”文件夹。

3)将你的应用程序崩溃日志和归档文件放到文件夹中(归档文件将包含所有dysm文件。或者你也可以放置所有的dYsm文件)。

4)进入“Universe”文件夹目录,然后执行以下命令:

export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

5)对你的崩溃日志运行符号化命令。

./symbolicatecrash myCrash.crash > SymbolicatedM.crash

完成!你已经获得了被符号化的崩溃日志。

PS:以上设置的优点是这是一次性设置,并且可重复使用。只需更换你的崩溃文件和dysm文件,然后每次想要符号化新的崩溃时重复步骤5即可。再见复杂命令!


2
需要注意的是,您需要传递与崩溃日志来自相同提交生成的dsym。您可以使用标志“--dsym=/path/to/dsym”来执行此操作。 - Chris

10
  • 尝试连接设备。
  • 然后选择 Xcode-> 设备 -> 查看日志。
  • 将崩溃日志拖入左侧窗格,您可以右键单击崩溃日志以重新符号化。

1
你试过了吗?我确定它能工作,你能再检查一下吗? - Neha Vipin
是的,你忘了提到要将 dysym 日志添加到 Xcode 中。然而,我只能实现部分符号化。 - htafoya
2
我刚刚连接了设备并获取了设备日志,从窗口重新符号化。不需要其他文件,也不需要其他步骤。 - Neha Vipin
这只是部分符号化它。对我来说,它仅在1个线程上运行。 - Hedylove
“重新符号化右键单击” 对我来说真的很有帮助!! - eharo2
显示剩余2条评论

5
我们在这里遇到了同样的问题,我们结合了Vkharb和Enrico的回答解决了这个问题。
  • 在同一个文件夹中,我们正确地包含了我们的dsym文件(符号)和正确重命名的崩溃报告为whatever.crash
  • 然后,打开终端并键入以下命令:
  1. alias symbolicate="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v"

  2. export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

  3. symbolicate whatever.crash > SymbolicatedM.crash

你应该会看到进度条,并最终完成一个报告。


谢谢,但是symbolicated.crash实际上并没有被符号化,它看起来和未符号化的一样。有什么想法吗? - Rajan M
1
已经很晚了,但是由于某种原因,我不得不在Xcode的组织器中使用“下载调试符号”按钮来对应构建。在此之前,只有标准库被符号化,之后 - 我自己的应用程序也被符号化了。@RajanM希望这可以帮助到您。 - Fyodor Volchyok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接