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/
文件系统)
喜欢这个:
(有关更多详细信息 ,请参阅此博客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来做到这一点,并经常竖起大拇指。 这里有几件事要尝试:
-
确保你的.app文件没有空格。
-
它可能是在模拟器上find你的应用程序的版本(倒退,但它有时候会这样做)。 重置你的模拟器。
-
清除你的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)