【问题标题】:Can't symbolicate macOS crash log / no dSYM file when building构建时无法表示 macOS 崩溃日志/没有 dSYM 文件
【发布时间】:2021-06-13 02:07:12
【问题描述】:

我通过将 Mac Catalyst 应用程序的 beta 版本分发给具有开发者 ID 的 beta 测试人员来发送它们,并且 beta 测试人员正在通过电子邮件将崩溃日志发回给我。我可以将 iOS 崩溃日志拖到 Xcode 的 View Device Logs 窗口中以对其进行符号化,但是当我尝试使用 macOS 崩溃日志时,该窗口不会突出显示并且不会接收到拖动的文件。

在从命令行执行tutorial to symbolicate manually 时,我意识到我的构建档案中没有 dSYM 文件。如果我在 Xcode 管理器中单击构建,选择 Show In Finder,然后导航到存档的 dSYMs 文件夹,它是空的。

实际上,我的应用程序的最新版本使用AppKit bundle 来支持多窗口,并且这些版本在 dSYMs 文件夹中确实有一个 AppKitBridge.bundle.dSYM 文件。我不认为这会阻止为主应用程序创建 dSYM 文件,因为我可以查看旧版本的存档,并且它也不是为那些生成的。

根据 Apple 的 Xcode documentation,我需要使用 dSYM 文件将调试信息格式构建设置设置为 DWARF,我会这样做:

这听起来像是 Xcode 不允许我将日志拖入的原因吗?如果是,我还需要什么来生成 dSYM 文件?

【问题讨论】:

    标签: xcode macos mac-catalyst symbolicatecrash


    【解决方案1】:

    根据上面屏幕截图中显示的设置,iOS 和 macOS 版本似乎都在使用具有 dSYM 文件值的 DWARF。但为了确保起见,我为 macOS 平台添加了单独的值,如下所示:

    这似乎没有必要,但对于更了解项目和目标的人来说,这可能是有意义的。无论如何,现在 Xcode 在构建 macOS 版本时会生成一个 dSYM 文件。

    但是,从新版本生成的崩溃日志仍然不会放入“查看设备日志”窗口进行符号化。我尝试从命令行使用symbolicatelog 并收到错误“不支持的崩溃日志版本:12”。这甚至发生在与我的计算机相同的 macOS 版本上生成的崩溃日志中,所以我不知道为什么我的本地 symbolicatelog 工具无法处理它。我最终使用this SO answer 中所述的atos 工具来一次表示一行日志。这很乏味,但很有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-16
      • 2018-01-22
      • 2012-08-06
      • 2011-06-25
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多