我想尝试和象征我的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
它只输出与崩溃报告开始时相同的文本,没有符号。
我做错什么了吗?
当前回答
在Xcode 4.2.1中,打开管理器,然后进入库/设备日志,将.crash文件拖到崩溃日志列表中。它将在几秒钟后为您显示。
注意,你必须使用与原始版本存档相同的Xcode实例(即,你的版本的存档必须存在于Organizer中)。
其他回答
这是另一个问题,我有符号化崩溃-它不会与应用程序有空间在他们的捆绑(即。“测试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\"";
在Xcode 4.2.1中,打开管理器,然后进入库/设备日志,将.crash文件拖到崩溃日志列表中。它将在几秒钟后为您显示。
注意,你必须使用与原始版本存档相同的Xcode实例(即,你的版本的存档必须存在于Organizer中)。
在最新版本的Xcode(3.2.2)中,你可以拖拽任何崩溃报告到Xcode管理器的设备日志部分,它们会自动为你标记。我认为如果你使用Build & Archive(也是Xcode 3.2.2的一部分)构建那个版本的应用程序,这是最好的工作方式
我不得不对symbolicatecrash脚本进行大量的修改,以使其正常运行。
据我所知,symbolicatcrash现在要求.app和.dsym在同一个目录下。它将使用.dsym来定位.app,但不会使用dsym来查找符号。
在尝试这些补丁之前,你应该复制你的符号化崩溃,这将使它看起来在dsym:
getSymbolPathFor_dsymUuid函数的第212行左右
212 my @executablePath = grep { -e && ! -d } glob("$dsymdir" . "/Contents/Resources/DWARF/" . $executable);
matchesUUID函数的第265行左右
265 return 1;
我有点不爽的事实,这里似乎没有什么“只是工作”,所以我做了一些调查,结果是:
设置:接收报告的QuincyKit后端。没有任何象征意义,因为我甚至不知道他们在建议我怎么做才能让它起作用。
解决办法:从服务器在线下载崩溃报告。它们被称为“crash”,默认情况下进入~/Downloads/文件夹。考虑到这一点,这个脚本将“做正确的事情”,崩溃报告将进入Xcode(组织者,设备日志),符号化将完成。
脚本:
#!/bin/bash
# Copy crash reports so that they appear in device logs in Organizer in Xcode
if [ ! -e ~/Downloads/crash ]; then
echo "Download a crash report and save it as $HOME/Downloads/crash before running this script."
exit 1
fi
cd ~/Library/Logs/CrashReporter/MobileDevice/
mkdir -p actx # add crash report to xcode abbreviated
cd actx
datestr=`date "+%Y-%m-%d-%H%M%S"`
mv ~/Downloads/crash "actx-app_"$datestr"_actx.crash"
如果你使用QuincyKit/PLCR,你可以通过做两件事来自动化Xcode Organizer中的拖放操作。
首先,您必须编辑远程脚本admin/actionapi.php ~第202行。它似乎没有得到正确的时间戳,所以文件以Xcode无法识别的名称“crash”结束(它想要一些。crash):
header('Content-Disposition: attachment; filename="crash'.$timestamp.'.crash"');
其次,在iOS端在QuincyKit BWCrashReportTextFormatter。m ~第176行,将@"[TODO]"改为@"TODO"以避开坏字符。