5

自从我在 XCode 中使用 symbolicate 已经有一段时间了,它曾经可以工作。今天当我尝试这个...

  1. 归档我的应用程序。
  2. 从 XCode 在我的设备上安装应用程序。(只需连接设备并在发布模式下运行应用程序)。
  3. 从 Xcode 停止应用程序。
  4. 在我的设备(连接到 Mac)上运行应用程序,这当然崩溃了。
  5. 现在,当我打开管理器并转到设备日志时,它会显示一个新的崩溃日志文件。
  6. 但它无法象征我的应用程序的符号。所有苹果图书馆的东西都象征性很好。

我搜索了整个网络,似乎没有任何工作。

编辑:在构建设置中,如果我禁用“复制期间剥离调试符号”,即使是发布版本,一切正常。但我猜 Xcode 应该能够使用 dSYM 文件进行符号化。我不想分发带有调试符号的应用程序。

提前致谢。

4

4 回答 4

4

本文将帮助找出问题所在:http: //support.hockeyapp.net/kb/how-tos-faq/how-to-solve-symbolication-problems

既然你说你run in release mode,那么设备上运行的版本不是你存档的那个!因此,如果目录中已有可用的发布版本DerivedData,它将采用该版本。否则它将创建一个新版本并安装该版本。

现在有两种可能导致符号化不起作用:

  1. 您稍后将进行另一个版本构建,因此之前的构建和 dSYM 会被覆盖(请参阅上面链接中的说明)
  2. Spotlight 没有找到崩溃报告中写有 UUID 的 dSYM 和应用程序二进制文件(请参阅上面链接中的说明以验证这一点)

更新:关于剥离符号的注意事项:当您不剥离已编辑帖子中提到的符号时,符号化已经在设备上完成。但当然你会错过行号。

于 2013-03-09T11:01:34.900 回答
0

按照上述解决方案中 Kerni 给出的链接,我发现它是 Spotlight,它无法使用崩溃日志文件的 UUID 找到 dSYM 文件。

运行以下命令...

导入。

...在产品文件夹(MyApp1.app 和 myApp.app.dSYM 所在的文件夹)中,问题已解决。

我不确定为什么每次构建应用程序时都必须运行它,我的 mac 出于某种原因没有自动运行它。但它有效。

于 2013-03-09T18:01:01.570 回答
0

我已经在带有空格的目录上安装了 Xcode。我通过删除目录的空格并运行 xcode-select 来修复它。(mdimport 对我不起作用)

    sudo xcode-select -switch <myxcodedir>
于 2013-06-29T02:46:50.210 回答
0

我有同样的问题。

在 Xcode 中的项目 Build Settings 中,在 DEBUG_INFORMATION_FORMAT 下,设置DWARF with dSYM File为 Debug 配置。Xcode 默认为DWARF.

于 2021-02-05T16:02:18.123 回答