Xcode 5的管理器有一个视图,可以列出所有的崩溃日志。我们可以拖放这里的崩溃日志。但自从Xcode 6以来,我知道他们已经将设备移出了组织,并为相同的设置了一个新的窗口。但我没有找到一个地方,我查看崩溃日志,我拖拽在Xcode 5后上升到Xcode 6。有人知道答案吗?


当前回答

对崩溃日志进行符号化的最简单方法:

在IPA构建过程中保存组织者的xcarchive文件,以备将来使用。 当崩溃发生时,从受影响的设备上收集崩溃日志。扩展名应该是.crash。如果崩溃日志是.ips格式,只需将其重命名为.crash。 双击存储路径中的xcarchive,使其出现在管理器中(如果尚未出现)。 打开xcode窗口->设备和模拟器->查看设备日志->所有日志->拖放.crash文件。

等待5秒。砰!堆栈跟踪中的应用程序调用将被符号化! 不过,你仍然可以看到很多符号!这些是内部库和框架调用。

这是最简单的一种方法,我已经试过了!

其他回答

我努力有崩溃报告符号化通过atos,但我不愿意,因为这个过程似乎很麻烦,但我发现崩溃报告在Xcode->窗口->组织者->崩溃(在左侧菜单)Xcode会自动下载崩溃日志,并将自动符号化,从那里你可以很容易地找到崩溃的原因。

Xcode 11.2.1,2019 年 12 月

苹果会给你txt格式的崩溃日志,这是无符号的

**

连接设备后

**

下载“。txt”文件,将扩展名改为“。crash” 在Xcode的窗口选项卡中打开设备和模拟器 选择设备,选择设备日志 拖放.crash文件到设备日志窗口

我们可以在那里看到象征性的事故日志

请参阅有关符号化崩溃日志的更多详细信息的链接

好的,我意识到你可以这样做:

在Xcode > Window > Devices中,选择连接的iPhone/iPad/etc左上角。 查看设备日志 所有日志

您可能在那里有很多日志,为了便于稍后找到导入的日志,您可以在此时删除所有日志……除非他们对你来说意味着金钱。或者除非你知道崩溃发生的确切时间点——无论如何都应该写在文件中……我很懒,所以我只是删除所有旧的日志(这实际上花了一段时间)。

3 a。确保日志文件的扩展名为.crash(而不是.txt或.ips)

只需将文件拖放到该列表中。这对我很管用。

您需要访问包含DWARF文件的. dsym包(文件夹),并且应该使用编辑器打开.crash文件。

查看回溯部分,你应该会看到如下内容:

...
13  TheElements                         0x0000000100f62ca0 0x100f5c000 + 27808
14  UIKitCore                       0x00000001843e3044 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 356 (UIApplication.m:2328)
...

Binary Images:
0x100f5c000 - 0x101673fff TheElements arm64 ...
...

注意stacktrace部分的第3列(0x0000000100f62ca0)中的长地址。 注意第4列中的简短地址(0x100f5c000) 注意二进制图像部分的架构(arm64) 执行以下操作:

$ atos -arch <arch> -o TheElements.app.dSYM/Contents/Resources/DWARF/TheElements -l <short_address> <long_address>

你应该得到这样的结果:

-[AtomicElementViewController myTransitionDidStop:finished:context:]

权威来源:https://developer.apple.com/library/content/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-SYMBOLICATE_WITH_ATOS

注意:如果由于任何原因你无法访问. dsym文件,你可以使用Xcode>Product>Archive重新创建.xcarchive,但要确保你构建的是完全相同的代码。然后可以从.xcarchive包中提取符号。

你也可以参考这个,我已经写了手动崩溃重新符号化的步骤。

崩溃Re-Symbolication

步骤1

移动上面所有的文件(MyApp。应用,MyApp-dSYM。dSYM和MyApp-Crash-log.crash)到一个文件夹,有一个方便的名字,你可以很容易地使用终端。

对我来说,桌面是最容易到达的地方;) 所以,我已经把这三个文件移动到桌面的MyApp文件夹。

步骤2

现在轮到Finder了,去到下面的路径,无论哪个适用于你的XCODE版本。

使用此命令查找symbolicatecrash脚本文件, 找到/应用程序/ Xcode。应用程序名称symbolicatcrash

Xcode 7.3和更新版本(Xcode 8,…, Xcode 14,…):/ application /Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

步骤3

将找到的symbolicatecrash脚本文件的目录添加到$PATH env变量中,如下所示d/ xcode - symbolicatcrash,粘贴脚本文件的目录并保存。当打开一个新终端时,您可以在位于/usr/bin中的任何文件夹中调用symbolicatecrash命令。

Or

复制符号崩溃文件从这个位置,并将其粘贴到桌面/MyApp (等等……不要盲目地跟着我,我正在MyApp文件夹中粘贴符号崩溃文件,这是你在第一步中创建的,在你最喜欢的位置,有三个文件。)

步骤4

打开终端,并CD到MyApp文件夹。

cd Desktop/MyApp — Press Enter
export DEVELOPER_DIR=$(xcode-select --print-path)

—按Enter

./symbolicatecrash -v MyApp-Crash-log.crash MyApp.dSYM

—按Enter

就是这样!符号日志在您的终端上… 现在简单地,找出错误并解决它;)