为什么来自Testflight的崩溃日志在Xcode中没有符号化?

14

我刚开始在一个预发布的应用程序中收到Testflights的崩溃报告,但由于某种原因,Xcode没有正确地解析日志。

This is what I'm seeing in Xcode

这个构建已经可用(在此电脑上使用Xcode的这个版本进行了构建、存档和上传),那么我错过了什么?为什么这些崩溃日志没有被符号化?

你尝试过从iTunes Connect页面下载dSyms吗? - ystack
我已经在Xcode的构建页面中选择了下载dSyms。 - Christian A. Strømmen
2个回答

8
显然,这是一个 bug,在 Apple 开始接受 bitcode 时开始出现的。当你在 Xcode 组织器中点击“下载 dSYMs…”时,并不会下载所有的 dSYMs。以下是我如何解决的:
  1. 从 iTunes Connect 的构建页面手动下载 dSYMs
  2. 在 Xcode 中右键点击崩溃日志并在 Finder 中打开它
  3. 你会找到 xcrashpoint 文件是一个存档,所以右键并显示包内容
  4. 钻取到你的 .crash 文件
  5. 将 .crash 文件复制到其他目录,比如桌面
  6. 将你下载的 dSYMs 文件夹复制到同一个目录中
  7. 打开 Terminal,cd 到该文件夹
  8. 在终端中,设置开发者路径:

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

  1. 然后使用以下命令符号化文件(替换你的路径和文件名):

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash name_of_crashfile.crash name_of_downloaded_dSYMs_dir/ > output.log

完成了!你就拥有了符号化的崩溃日志。


1
一年过去了,我仍然在使用Xcode 9和Bitcode时遇到同样的问题。感谢@Christian。另外,你也可以将symbolicatecrash可执行文件复制到第5步中的文件夹中,这样你的命令行就更容易记住了 :-) - HuaTham

2
我在Xcode 10中仍然遇到这个问题。一个解决方法是将崩溃日志添加到设备日志中,这样它们就会被符号化。至少根据我的经验是这样的。
步骤1- 在Xcode窗口>设备和模拟器[选择左侧的设备]>查看设备日志。
步骤2- 然后在Xcode>窗口>组织者>崩溃选项卡中右键单击崩溃并单击在查找器中显示。这将显示.xccrashpoint文件。右键单击>显示包内容。深入文件夹直到看到.crash文件。然后将它们拖到我们在步骤1中打开的设备日志列表中。

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