如何停止在iOS Crash Log中添加“<redacted>”的符号

我从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] ... 

任何人都可以帮助find为什么“<redacted>”被添加到符号化的版本? 从我自己的应用程序中的符号是象征性的好,就像你可以看到上面的基本libobjc符号。

更新 :在Kerni的答案后,切换日志更清晰

我有同样的问题,通过删除~/Library/Developer/Xcode/iOS DeviceSupport中的所有iOS 6.0(包括beta)数据来摆脱消息。

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

据我所知,第一个报告是从iTunes Connect下载的,第二个报告是在Mac上处理完成的。

当在设备上写入崩溃报告时,iOS正在使用<redacted>来parsing某些系统库某些部分的系统符号。 没有什么可以做的,除非在Mac上再次标记符号,否则不会发生这种情况。

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

请检查是否安装了带有iOS 6符号的Xcode 4.5以及当前是否select了Xcode 4.5。 您需要确保您的系统使用最新版本的atos。

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

xcrun -find -sdk iphoneos atos

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