Iphone Xcode 4未能对崩溃日志进行符号化

Iphone Xcode 4未能对崩溃日志进行符号化,iphone,cocoa-touch,xcode,debugging,adhoc,Iphone,Cocoa Touch,Xcode,Debugging,Adhoc,我刚刚将Xcode更新为4.0.1。现在我对从我的测试人员甚至从我的手机收到的崩溃日志的符号表示有问题 当我构建临时发行版时,我使用的是“Arhive”方案,然后创建带有开发人员凭据的*.ipa文件 这就是问题所在吗? 我找不到这些特殊构建的dSym文件。符号化脚本在查找正确的二进制/dSym时遇到问题。它使用聚光灯来做这件事,而且经常会出错。以下是一些可以尝试的事情: 确保你的.app没有 空间在里面 它可能正在查找 您的应用程序已安装在模拟器上 (向后,但有时确实如此 这是给我的)。重置你的

我刚刚将Xcode更新为4.0.1。现在我对从我的测试人员甚至从我的手机收到的崩溃日志的符号表示有问题

当我构建临时发行版时,我使用的是“Arhive”方案,然后创建带有开发人员凭据的*.ipa文件

这就是问题所在吗?
我找不到这些特殊构建的dSym文件。

符号化脚本在查找正确的二进制/dSym时遇到问题。它使用聚光灯来做这件事,而且经常会出错。以下是一些可以尝试的事情:

  • 确保你的.app没有 空间在里面

  • 它可能正在查找 您的应用程序已安装在模拟器上 (向后,但有时确实如此 这是给我的)。重置你的模拟器

  • 清除生成目录


  • 我想我有这个问题,或者类似的问题。 Xcode 4.0没有显示我从测试人员那里得到的崩溃符号。
    我似乎通过打开我创建的xarchive来修复这个问题,并从其中复制出dsym文件(右键单击并“查看软件包内容”),将其放在归档文件夹的旁边。我不能保证这就是解决方案——当时我尝试了许多其他解决方案,但我知道我现在有了这些符号,以前没有。值得一试吗?

    我今天也遇到了同样的问题。根据我在web上的研究,armv6库存在一个导致symbolicate进程失败的问题。我在书里找到了答案

    对于无法访问的用户,您需要从
    /Developer/Platforms/iPhoneOS.platform/Developer/Library/privateframes/DTDeviceKit.framework/Versions/a/Resources/
    创建
    脚本的副本。编辑文件,并将第323行的“die”替换为“print”(这就是它不起作用的原因,脚本在此失败)

    然后根据崩溃日志运行
    crash
    。您将看到第323行中的错误,但它将象征所有的行和变量。对于系统库来说,它仍然失败,但它提供了足够的信息来修复您自己的bug


    希望这能有所帮助。

    继coob的答案之后,我发现将这些目录添加到Spotlight的忽略列表(系统首选项)中→ 聚光灯→ 隐私)有助于:

    • ~/Library/Developer/Xcode/DerivedData/
      (Xcode 4构建人工制品)
    • ~/Library/Application Support/iPhone Simulator/
      (iPhone模拟器的文件系统)
    像这样:

    (有关更多详细信息,请参见。)


    更新:来自以下评论:“这很有效,但也意味着Instruments.app找不到调试符号,因此我必须从隐私列表中删除DerivedData以进行一些分析。”-如果使用Instruments,请记住这一点。

    对我来说,第323行编辑和聚光灯排除都没有修复它。因此,我在
    中找到了问题。只需替换/usr/local/bin/symbolicatecrash,您的iOS崩溃报告将再次开始符号化

    此修补程序可能不适用于Mac应用程序,因为它对.xArchive目录的结构进行了假设,而桌面应用程序似乎不适用该目录

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

    mdimport ~/Library/Developer/Xcode/Archives/
    

    有关疑难解答的详细信息。

    要根据dSYM文件的ID在如下所示的崩溃日志中查找该文件,请执行以下操作:

    二进制图像: 0x100000000-0x100021ff7+com.developer.foobar 1.1(2)/Applications/foobar.app/Contents/MacOS/foobar

    你可以做:

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

    对于使用“DWARF with dSYM”构建的OSX应用程序,您实际上不需要dSYM文件,可以在

    此外,要检查二进制文件的UID,可以执行以下操作

    dwarfdump --uuid /Users/valexa/Desktop/GPSnote.app/GPSnote 
    
    UUID:6194D2B0-4E61-3834-AD15-C279EB1848XX(armv7)

    UUID:D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8(armv7s)

    @coob,谢谢你的回答。我的应用程序名称中没有任何空格。在dSym文件完成归档后,我根本找不到它。如果我在Finder中显示应用程序归档,我只会找到一个.xcodearchive文件。没有dSym或任何其他文件。您使用的是XCode 3还是4?我不熟悉4,当我在XCode 3上“在Finder中显示存档应用程序”时,它会显示一个类似于“1DE8BA58-B733-4FA6-88E0-8F9F71297070.appachive”的目录,该目录位于/Users/al/Library/application Support/Developer/Shared/archived Applications中,其中包含应用程序、plist和dsym。XCode 4将其放入~/Library/Developer/Archives中。然后是按日期列出的目录,然后是.xc归档包。在finder中,控件单击以显示包内容。dSYM位于dSYMs目录中。应用程序位于产品/应用程序中。尽管如此,我不能让XCode 4.0.1代表一个新的崩溃日志。如果你的应用程序中有空间,你会怎么做?e、 g.应用程序已经在应用程序商店中运行,我有一个崩溃报告,但Xcode拒绝将其象征化。@JPK-不,我没有。Symbolicate仍然无法在Xcode 4.5.x中工作(它工作了2周,然后停止工作,此后再也没有工作过)——苹果拒绝正确修复它。他们依靠他们的(坏得很厉害的)“索引整个硬盘”搜索引擎,速度很慢,写得很糟糕。而且他们没有其他选择。啊!我在使用XCode 4.0时遇到了一些问题,因为它的归档方式与XCode 3不同。它创建了一个xarchive,然后我必须创建一个.ipa,并且——就像我过去做的那样——从中取出.app包发送给我的测试人员。我认为xcode可能找不到dsym,因为它是xarchive包本身的内部。我已经向苹果公司提交了一份bug报告,所以我们将看看它是如何发展的。@Jonathan-是的,这绝对是一个临时修复。希望苹果能破解它