16

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

来自 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]
...

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

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

4

2 回答 2

14

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

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

于 2012-10-12T07:35:57.470 回答
7

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

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

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

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

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

xcrun -find -sdk iphoneos atos

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

于 2012-10-09T22:30:24.197 回答