Xcode 4没有符号化崩溃日志

我刚刚更新我的Xcode到4.0.1。 现在我遇到了从我的testing仪,甚至从我的手机收到的崩溃日志的象征性问题。

当我构buildAdHoc发行版时,我使用“Arhive”scheme,然后创build* .ipa文件,并使用我的开发人员凭据进行演唱。

这是问题吗? 而我找不到这些AdHoc版本的dSym文件。

除了coob的回答,我发现将这些目录添加到Spotlight的忽略列表(系统偏好设置→Spotlight→隐私)有助于:

  • ~/Library/Developer/Xcode/DerivedData/ (Xcode 4 build artefact)
  • ~/Library/Application Support/iPhone Simulator/~/Library/Application Support/iPhone Simulator/文件系统)

喜欢这个:

Spotlight设置来取消无用的.app文件

(有关更多详细信息 ,请参阅此博客post 。)

更新 :从joerick的评论:“这工作,但也意味着Instruments.app无法finddebugging符号,所以我不得不从隐私列表中删除DerivedData做一些分析。 – 记住这一点,如果你使用仪器。

对于我来说,323行编辑和Spotlight排除都没有修正它。 于是我在symbolicatecrash追踪了这些问题,并在github上发布了一个补丁版本 。 只需replace/ usr / local / bin / symbolicatecrash,你的iOS崩溃报告将再次开始符号化。

此修补程序可能不适用于Mac应用程序,因为它会假定.xcarchive目录的结构似乎不适用于桌面应用程序。

编辑 :如果Spotlight没有索引您的档案,您可能仍然有问题。 您可以通过在terminal中运行以下命令来获取强制索引:

 mdimport ~/Library/Developer/Xcode/Archives/ 

更多信息在这里排除故障。

符号化脚本有一个问题find正确的二进制/ dSYM。 它使用Spotlight来做到这一点,并经常竖起大拇指。 这里有几件事要尝试:

  1. 确保你的.app文件没有空格。

  2. 它可能是在模拟器上find你的应用程序的版本(倒退,但它有时候会这样做)。 重置你的模拟器。

  3. 清除你的build立目录。

今天我有同样的问题。 从我在网上的研究来看,armv6库会导致符号化进程失败。 我在这里的开发论坛find了答案。

对于没有访问权限的用户,您需要从/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/创build一个symbolicatecrash脚本的/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/ 。 编辑文件并用“打印”replace第323行的“die”(这是为什么它不工作,脚本在这里失败)。

然后对你的崩溃日志运行symbolicatecrash 。 你会看到第323行的错误,但是它会代表所有行和variables。 它仍然失败的系统库,但它提供了足够的信息来修复自己的错误。

希望这可以帮助。

我想我有这个问题,或类似的东西。 Xcode 4.0没有显示我从testing者那里得到的崩溃的符号。 我似乎通过打开我创build的xarchive来解决这个问题,并从其中拷贝出dsym文件(右键单击和“查看软件包内容”),将它放在归档文件夹中。 我不能保证这是解决scheme – 当时我正在尝试其他一些解决scheme,但是我知道我现在有这些符号,以前没有。 值得尝试?

要在崩溃日志中find一个基于它的ID的dSYM文件,如下所示:

Binary Images:0x100000000 – 0x100021ff7 + com.developer.foobar 1.1(2)<D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8> /Applications/FooBar.app/Contents/MacOS/FooBar

你可以做:

mdfind com_apple_xcode_dsym_uuids == D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8

对于使用“带有dSYM的DWARF”构build的OSX应用程序,实际上并不需要dSYM文件,可以使用http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html上的手动方法;

另外为了检查一个二进制文件的UID,你可以做类似的事情

 dwarfdump --uuid /Users/valexa/Desktop/GPSnote.app/GPSnote 

UUID:6194D2B0-4E61-3834-AD15-C279EB1848XX(armv7)
UUID:D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8(armv7s)