我刚把我的Xcode更新到了X.Y.Z版本。现在,我在从我的测试人员和手机收到的崩溃日志的符号化方面遇到了问题。
当我构建AdHoc分发时,我使用"存档"方案,然后使用我的开发者凭据签名创建*.ipa文件。
这是问题所在吗? 而且我找不到这些AdHoc构建的dSym文件。
我刚把我的Xcode更新到了X.Y.Z版本。现在,我在从我的测试人员和手机收到的崩溃日志的符号化方面遇到了问题。
当我构建AdHoc分发时,我使用"存档"方案,然后使用我的开发者凭据签名创建*.ipa文件。
这是问题所在吗? 而且我找不到这些AdHoc构建的dSym文件。
对于我而言,无论是第323行的编辑还是在Spotlight排除该问题都没有解决。因此,我追踪了symbolicatecrash
中的问题,并在github上发布了一个修补版本。只需替换/usr/local/bin/symbolicatecrash,您的iOS崩溃报告就可以重新进行符号化。
这个修补程序可能不适用于Mac应用程序,因为它对.xcarchive目录的结构做出了假设,这些假设似乎不适用于桌面应用程序。
编辑:如果Spotlight没有索引您的归档文件,您仍然可能会遇到问题。您可以在终端中运行以下命令来强制进行索引:
mdimport ~/Library/Developer/Xcode/Archives/
在这里可以获取更多有关故障排除的信息,点击这里。
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/
)。 - peppy除了coob的答案,我发现将以下目录添加到Spotlight的忽略列表(系统偏好设置→ Spotlight → 隐私)有帮助:
~/Library/Developer/Xcode/DerivedData/
(Xcode 4构建产物)~/Library/Application Support/iPhone Simulator/
(iPhone模拟器的文件系统)像这样:
(有关详细信息,请参见此博客文章。)
更新:根据joerick的评论:“这可以解决问题,但它也意味着Instruments.app找不到调试符号,因此我必须从隐私列表中删除DerivedData才能进行一些分析。”-如果您使用Instruments,请记住这一点。
确保您的 .app 文件名中没有空格。
它可能会找到模拟器中安装的应用程序版本(反向查找),重置您的模拟器即可解决。
清除构建目录。
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/
创建一个symbolicatecrash
脚本的副本。编辑文件并将第323行上的“die”替换为“print”(这就是它不起作用的原因,脚本在此处失败)。symbolicatecrash
来对您的崩溃日志进行符号化。您将看到来自第323行的错误,但然后它将符号化所有您自己的行和变量。它仍然无法处理系统库,但足以提供足够的信息来修复您自己的错误。根据崩溃日志中的ID查找dSYM文件,如下所示:
二进制图像: 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”构建的OSX应用程序,您实际上不需要dSYM文件,可以使用https://developer.apple.com/library/content/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-SYMBOLICATE_WITH_ATOS中的手动方法。
另外,要检查二进制文件的UID,您可以执行类似以下的操作
dwarfdump --uuid /Users/valexa/Desktop/GPSnote.app/GPSnote
UUID: 6194D2B0-4E61-3834-AD15-C279EB1848XX(armv7)
UUID: D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8(armv7s)
我认为我遇到了这个问题或类似的问题。 Xcode 4.0没有显示我从测试人员那里得到的崩溃符号。 我似乎通过打开我创建的xarchive文件,并从其中复制出dsym文件(右键单击并“查看包内容”),将其放在存档文件夹中,解决了这个问题。我不能保证这是解决方案-当时我尝试了许多其他解决方案,但我知道现在我有了符号,以前没有。值得一试吗?