我无法使用XCode 4.6符号化测试人员和用户的OS X(而非iOS)崩溃日志。崩溃日志无法拖到组织者中,组织者不会显示~/Library/logs/DiagnosticReports/中的任何崩溃日志,尽管有些日志在该目录中。
Didier Malenfant评论了以前的线程XCode没有导入操作系统X崩溃日志
底线很简单。截至目前(Xcode 4.6),OS X崩溃日志无法导入到Xcode中。只有iOS版。
这是目前的情况吗?如果没有有效的方法来集成崩溃报告,很难想象组织能够支持新的OSX软件。
如果您有堆栈跟踪;例如:
0 com.your_app 0x00000001016191e0 0x1015fb000 + 123360
1 com.your_app 0x000000010161509d 0x1015fb000 + 106653
2 com.your_app 0x00000001016147b9 0x1015fb000 + 104377
3 com.your_app 0x000000010161df81 0x1015fb000 + 143233`
尝试以下操作:
atos -o YOUR_APP.app.dSYM/Contents/Resources/DWARF/YOUR_APP -l 0x1015fb000 0x00000001016191e0 0x000000010161509d 0x00000001016147b9 0x000000010161df81`
您可以使用GDB进行符号化,将您的发布版本和.dSYM文件放在同一目录中开放式终端
$ cd directory
$ gdb MyApp.app
(gdb) info line *0x00085f3c
或者你可以按照特洛伊木马的建议使用atos
$cd directory
$atos -o MyApp.app/Contents/MacOS/MyApp
info 0x00085f3c
或
$ cd directory
$ lldb MyApp.app
(lldb) image lookup -v --address 0x1ec4
我们的应用程序也遇到了同样的问题,我正在用atos
逐行手动符号化崩溃报告。
我现在调整了苹果的象征性脚本,使其能够与Mac应用程序和PLCrashReporter的崩溃报告配合使用。
https://github.com/lksnmnn/Symbolicate-CrashReports
如何使用:
确保您的计算机上有以下所有文件:
- 崩溃报告:report.crash
- 应用程序的dSYM文件:MyApp.dSYM
- 应用程序的可执行文件/应用程序文件夹:MyApp.app
- 改进的符号化脚本:符号化崩溃
现在进入命令行(终端)并执行以下操作:
# set the developer directory
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
# Now run the script
/Path/To/symbolicatecrash /Path/To/report.crash > /Path/To/readable_report.crash
# Use -v for verbose logging.
该脚本将找到您的dSYM和可执行文件,并尽可能多地进行符号化。现在,您将在声明的输出文件readable_report.class中找到您的符号化报告
构建设置:
为了获得正确的报告和符号,请将您的构建设置设置为:
Strip Debug Symbols During Copy: Yes
Strip Style: All Symbols
Strip Linked Product: Yes
在我有dsym和崩溃报告文件的情况下,我使用了MacSymbolicator和Xsymplicate。他们做这项工作只是为了满足简单的需求,尽管Xcode内置的崩溃报告支持也变得更好了,至少对于在应用商店销售的应用程序来说是这样。