【问题标题】:How to stop symbolicate adding "<redacted>" pieces to iOS Crash Log如何停止象征性地将“<redacted>”片段添加到 iOS 崩溃日志
【发布时间】:2012-09-30 07:46:35
【问题描述】:

我有来自 App Store 中 iPhone 应用程序的崩溃日志(通过 iTunes Connect 检索),在符号化后有一堆来自 CodeData 和 CoreFoundation 的“”方法名称。

来自 iTunes Connect 的原始崩溃日志文件如下所示:

Last Exception Backtrace:
0   CoreFoundation                  0x34a0929e __exceptionPreprocess
1   libobjc.A.dylib                 0x32d1997a objc_exception_throw
2   CoreData                        0x3631fec2 -[NSSQLCore _obtainOpenChannel]
3   CoreData                        0x363cfd9c newFetchedRowsForFetchPlan_MT
4   CoreData                        0x363b3be6 -[NSSQLCore newFetchedPKsForSourceID:andRelationship:]
5   CoreData                        0x363a6008 -[NSSQLCore newValueForRelationship:forObjectWithID:withContext:error:]
6   CoreData                        0x3635690a -[NSFaultHandler retainedFulfillAggregateFaultForObject:andRelationship:withContext:]
7   CoreData                        0x36326d48 -[_NSFaultingMutableSet willRead]
8   CoreData                        0x3632767c -[_NSFaultingMutableSet allObjects]

在我的 Mac 上符号化后的日志是这样的:

Last Exception Backtrace:
0   CoreFoundation                  0x34a0929e <redacted> + 158
1   libobjc.A.dylib                 0x32d1997a objc_exception_throw + 26
2   CoreData                        0x3631fec2 <redacted> + 230
3   CoreData                        0x363cfd9c <redacted> + 948
4   CoreData                        0x363b3be6 <redacted> + 2590
5   CoreData                        0x363a6008 <redacted> + 528
6   CoreData                        0x3635690a <redacted> + 478
7   CoreData                        0x36326d48 <redacted> + 220
8   CoreData                        0x3632767c <redacted> + 20
9   [myappname]                     [memory addresses here]
...

谁能帮助找出为什么“”被添加到符号化版本中? 我自己的应用程序中的符号可以很好地符号化,正如您在上面看到的基本 libobjc 符号一样。

更新:在 Kerni 回答后切换日志以更清晰

【问题讨论】:

    标签: ios


    【解决方案1】:

    我遇到了同样的问题,并通过删除 ~/Library/Developer/Xcode/iOS DeviceSupport 中的所有 iOS 6.0(包括测试版)数据来删除消息。

    现在,symbolicate 使用存储在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/6.0 (10A403)/
    的符号数据,而不是存储在用户库中的符号数据。

    【讨论】:

    • 是的,确实,我仍然安装了 iOS 6.0 beta 数据和 beta Xcode 版本。我想这就是弄乱我的符号的原因。我会重新安装它并报告。
    • @and3rs - 这很棒。删除 ~/Library/Developer/Xcode/iOS DeviceSupport 目录为我解决了“编辑”问题。
    【解决方案2】:

    据我了解:第一份报告是从 iTunes Connect 下载的,第二份是在您在 Mac 上处理之后。

    &lt;redacted&gt; 被 iOS 用于在设备上编写崩溃报告时解析某些系统库的某些部分的某些系统符号。除了在您的 Mac 上再次对其进行符号化之外,您无法采取任何措施来避免这种情况发生。

    更新:符号化脚本重新处理所有行,并且自从 iOS 6 beta 版本之一以来,Apple 开始报告这些 &lt;redacted&gt; 符号。这也意味着旧版本的 atos 将返回 &lt;redacted&gt; 而不是正确的符号。

    请检查 Xcode 4.5 安装时是否存在 iOS 6 符号,并且当前选择了 Xcode 4.5。您需要确保您的系统使用最新版本的 atos。

    符号化脚本使用xcrun 来查找atos 二进制文件,因此您可以使用以下命令检查它是否找到正确的:

    xcrun -find -sdk iphoneos atos

    这应该指向 Xcode 4.5 应用程序包。

    【讨论】:

    • 其他方式。首先是象征性之后。第二个是 iTunes Connect 版本。 (我会更新问题以使其更清楚)。我现在已经切换了您发布此内容时的日志。
    • 是的,确实,我仍然安装了 iOS 6.0 beta 数据和 beta Xcode 版本。我想这就是弄乱我的符号的原因。我会重新安装它并报告。
    猜你喜欢
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多