【问题标题】:symbolicatecrash象征性崩溃
【发布时间】:2009-03-25 10:38:08
【问题描述】:

我使用以下脚本来象征我从用户那里得到的崩溃报告:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash myapp_iPod-Touch.crash myapp.app.dSYM > test.txt

它匹配所有框架调用,但没有匹配我的代码。我怎样才能使它匹配我的代码?请给我一些想法!

【问题讨论】:

    标签: iphone


    【解决方案1】:

    作为Craig Hockenberry points out,您为此使用的 dSYM 文件必须与您编译用户正在运行的应用程序版本时生成的完全相同。如果您没有保存该文件,您将无法在您自己的应用程序中解析符号。您不能使用最新版本生成的任何 dSYM 文件来针对您提交的较旧版本的应用程序运行。

    【讨论】:

    • 但是:我应该能够同步回我的源代码控制系统中的标记签入,重新构建它,并使用 那些 dSYMS , 对? symbolicatecrash ATM 的麻烦无穷无尽。
    • 这假定从您第一次编译应用程序到现在,您系统上的所有内容都是相同的。如果您升级了 Xcode 或 iPhone SDK,您现在生成的二进制文件可能与您提交应用程序时生成的二进制文件不同。
    • 嗯,您需要将 dSYM 置于版本控制之下。
    【解决方案2】:

    更新 在大约 2012 年的 XCode 4 中,符号化在 XCode Organizer 中效果很好,即使如果 dSYM 在其路径中有空格(我认为)。

    附言将您的 dSYM 置于版本控制之下

    更新 从 XCode 3.2.5(2010 年 11 月)开始,在管理器窗口的设备日志中完成的符号化似乎工作得很好。

    首先,symbolicatecrash 是垃圾*,但是 在深入研究并修复它之前,请确保您的 .app 包 与您的 .dSYM 位于同一目录中。

    应用文件名或标识符中是否包含点或破折号? 如果是这样,您应该申请Alan Quatermain fix。它旨在用于在 2.x 环境中读取 3.0 崩溃转储,但它也可以正确处理应用程序名称和 ID 中的点和破折号。呃。正则表达式很难。

    之后,您将不得不破解 perl。 尝试 ./symbolicatecrash -Av mycrash.crash > /dev/null 看看哪里出了问题。

    对于我的问题,我不得不注释掉 quoteMeta($dsymdir); 和印章($可执行);线。然后我有一些模糊的工作。

    这是一个运输产品。欢迎来到未来。

    从 *SDK 2.2.1 开始,谁知道呢,也许在 3.0 GM 中它很强大。它可能发生。

    【讨论】:

      【解决方案3】:

      iPhone SDK 2.2.1 附带的 symbolicatecrash 实用程序中也存在一个已知问题,如果这是您当前使用的 SDK。你需要从http://developer.apple.com/iphone/library/technotes/tn2008/tn2151.html下载新的二进制文件

      希望这能帮助您解决问题。

      【讨论】:

        【解决方案4】:

        有一个新的Symbolicator 脚本已经发布,可能会有所帮助

        【讨论】:

        • 不过,它还不适用于 iPhone 崩溃日志。我不是 iPhone 开发人员,所以我很难做到这一点(尤其是没有 iPhone 应用程序 dSYM 包进行测试)。欢迎使用补丁。
        【解决方案5】:

        (Xcode 4.2) symbolicatecrash 是一个 perl 脚本,它使用 Spotlight 来定位属于崩溃应用程序的 dSYM 文件。如果您使用 -v(详细)选项运行 symbolicatecrash,您将看到类似以下内容:在 Spotlight 中搜索 UUID 为 ... 的 dsym 运行 mdfind "com_apple_... == ..."

        因此,请确保 Spotlight 正常工作,并且使用 mdutil 命令为您的资料所在的卷启用 Spotlight 的索引: mdutil -s -a 如果您的归档应用所在的卷没有被索引,请确保打开索引。 (作为 root/sudo: mdutil -i on /Volumes/...)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-15
          • 1970-01-01
          • 1970-01-01
          • 2020-08-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多