102*_*4jp 8 macos xcode cocoa symbolicatecrash
我正在尝试通过电子邮件标记我从用户收到的崩溃日志.
我在Xcode.app中使用了传统的symbolicatecrash命令,但symbolicatecrash命令失败并返回以下消息.
$/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash MY_APP.crash MY_APP.app.dSYM > readable.crash
Unsupported crash log version: 12 at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 614.
Run Code Online (Sandbox Code Playgroud)
正如它所说,我想表示的崩溃日志的报告版本是12.
Date/Time: 2016-10-15 15:40:42.625 +0900
OS Version: Mac OS X 10.12 (16A323)
Report Version: 12
Run Code Online (Sandbox Code Playgroud)
我的应用程序是macOS(以前的OS X,不适用于iOS)的纯Cocoa应用程序,它是在macOS Sierra上使用Xcode 8.0构建的,在Mac App Store上分发并用Swift编写.
同时,Xcode 8.0的组织者成功地表示通过MAS接收的相同应用程序版本的崩溃日志.所以我想,dSYM文件至少是正确的.但是出了点问题.
有谁知道我如何象征纯文本崩溃日志,其报告版本是12?
最后,我找到了如何用macOS app来表示我的崩溃日志!
我遵循了下面的要点中的指令,并获得了人类可读的线条.
因此,简而言之,例如对于这一行:
0 com.MY_DOMAIN.MY_APP 0x000000010febce85 0x10fdc1000 + 1031813
Run Code Online (Sandbox Code Playgroud)
在终端中运行以下行:
atos -o MY_APP.app/Contents/MacOS/MY_APP -arch x86_64 -l 0x10fdc1000 0x000000010febce85
Run Code Online (Sandbox Code Playgroud)
然后你会得到可读的行:
Document.init() -> Document (in MY_APP) (DefaultKey.swift:85)
Run Code Online (Sandbox Code Playgroud)
使用此命令来符号化整个文件。将 MyApp 和 MyCrashFile 替换为适当的值和内存地址 (0x102e27000),如下行:
Thread 0 Crashed:
0 com.bundle.identifier 0x0000000102f0bfb5 0x102e27000 + 937909
变成:
xcrun atos -o MyApp.app/Contents/MacOS/MyApp -arch x86_64 -l 0x102e27000 -f MyCrashFile.crash > c.sym.txt && open c.sym.txt
Run Code Online (Sandbox Code Playgroud)
使用 Xcode 10.3 在 Mojave 上进行测试
| 归档时间: |
|
| 查看次数: |
4622 次 |
| 最近记录: |