我想尝试和象征我的iPhone应用程序的崩溃报告。
我从iTunes Connect上找到了崩溃报告。我有提交给App Store的应用程序二进制文件,我有作为构建的一部分生成的dSYM文件。
我将所有这些文件放在一个目录中,该目录以spotlight为索引。
现在该做什么?
我试着引用:
symbolicatecrash crashreport.crash myApp.app.dSYM
它只输出与崩溃报告开始时相同的文本,没有符号。
我做错什么了吗?
我想尝试和象征我的iPhone应用程序的崩溃报告。
我从iTunes Connect上找到了崩溃报告。我有提交给App Store的应用程序二进制文件,我有作为构建的一部分生成的dSYM文件。
我将所有这些文件放在一个目录中,该目录以spotlight为索引。
现在该做什么?
我试着引用:
symbolicatecrash crashreport.crash myApp.app.dSYM
它只输出与崩溃报告开始时相同的文本,没有符号。
我做错什么了吗?
当前回答
在我的例子中,我直接将崩溃报告从Mail拖到Organizer。出于某种原因,这阻止了坠机报告被符号化(我很想知道为什么)。
首先将崩溃报告复制到桌面,然后将它们从桌面拖动到管理器,这样它们就被正确地符号化了。
我知道,这是非常具体的案例。但以防万一,还是分享一下吧。
其他回答
在运行symbolicate crash之前,我还将dsym、应用程序包和崩溃日志放在同一个目录中
然后我使用.profile中定义的这个函数来简化运行symbolicatcrash:
function desym
{
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -A -v $1 | more
}
上面的论点可能对你有帮助。
您可以检查,以确保spotlight“看到”您的dysm文件通过运行命令:
mdfind 'com_apple_xcode_dsym_uuids = *'
在目录中查找您拥有的dsym。
注意:在最新的Xcode中,不再有Developer目录。你可以在这里找到这个实用程序:
/应用程序/ xcode /内容/ SharedFrameworks / DTDeviceKitBase.framework /更离子/ /资源/ symbolicatecrash
这是另一个问题,我有符号化崩溃-它不会与应用程序有空间在他们的捆绑(即。“测试App.app”)。注意,我不认为你在提交时可以在他们的名字中有空格,所以你应该删除这些,但如果你已经有需要分析的崩溃,就像这样修补符号崩溃(4.3 GM):
240c240
< my $cmd = "mdfind \"kMDItemContentType == com.apple.application-bundle && kMDItemFSName == $exec_name.app\"";
---
> my $cmd = "mdfind \"kMDItemContentType == com.apple.application-bundle && kMDItemFSName == '$exec_name.app'\"";
251c251
< my $cmd = "find \"$archive_path/Products\" -name $exec_name.app";
---
> my $cmd = "find \"$archive_path/Products\" -name \"$exec_name.app\"";
我喜欢使用Textwrangler来精确定位原始应用程序上传二进制拒绝中的错误。(崩溃数据将在你的itunesConnect账户中找到。)使用上面萨钦的方法,我复制了原文。崩溃到TextWrangler,然后复制符号崩溃文件,我已经创建到另一个TextWrangler文件。比较这两个文件可以发现不同之处。符号崩溃文件将有差异,指出文件和行数的问题。
在最新版本的Xcode(3.2.2)中,你可以拖拽任何崩溃报告到Xcode管理器的设备日志部分,它们会自动为你标记。我认为如果你使用Build & Archive(也是Xcode 3.2.2的一部分)构建那个版本的应用程序,这是最好的工作方式
atos已弃用,因此如果您正在运行OSX 10.9或更高版本,您可能需要运行
xcrun atos
警告:/usr/bin/atos正在移动,将从未来的操作系统中删除 X版本。现在可以在Xcode开发工具中使用 通过:xcrun atos调用