我一直在接收一个测试用户的崩溃日志,用于带有标题的Swift项目:
异常类型:SIGTRAP
这是崩溃日志的相关部分:
Hardware Model: iPad4,2
Process: Jam Session [204]
Path: /var/mobile/Containers/Bundle/Application/FADFF299-ABDC-46AA-8B77-BF4F77301DBF/Jam Session.app/Jam Session
Identifier: it.info.music.jamsession
Version: 1.0 (1.0.8)
Code Type: ARM-64
Parent Process: ??? [1]
Date/Time: 2016-02-26 11:06:46 +0000
OS Version: iPhone OS 9.2.1 (13D15)
Report Version: 104
Exception Type: SIGTRAP
Exception Codes: #0 at 0x10002971c
Crashed Thread: 0
Thread 0 Crashed:
0 Jam Session 0x000000010002971c 0x10000c000 + 120604
1 Jam Session 0x0000000100023ee4 0x10000c000 + 98020
2 UIKit 0x0000000187af931c 0x187794000 + 3560220
3 UIKit 0x0000000187af9484 0x187794000 + 3560580
4 UIKit 0x0000000187ae87e8 0x187794000 + 3491816
5 UIKit 0x0000000187afdfb0 0x187794000 + 3579824
6 UIKit 0x000000018789308c 0x187794000 + 1044620
7 UIKit 0x00000001877a3778 0x187794000 + 63352
8 QuartzCore 0x00000001851b2b2c 0x1851a4000 + 60204
9 QuartzCore 0x00000001851ad738 0x1851a4000 + 38712
10 UIKit 0x00000001877ba454 0x187794000 + 156756
11 UIKit 0x000000018786820c 0x187794000 + 868876
12 UIKit 0x0000000187865be4 0x187794000 + 859108
13 UIKit 0x000000018787e7dc 0x187794000 + 960476
14 UIKit 0x000000018787e4c8 0x187794000 + 959688
15 UIKit 0x000000018787e1d0 0x187794000 + 958928
16 UIKit 0x00000001877e2e90 0x187794000 + 323216
17 UIKit 0x00000001877e110c 0x187794000 + 315660
18 UIKit 0x0000000187871cec 0x187794000 + 908524
19 UIKit 0x00000001878678c0 0x187794000 + 866496
20 UIKit 0x0000000187866a6c 0x187794000 + 862828
21 UIKit 0x0000000187866694 0x187794000 + 861844
22 UIKit 0x00000001878665fc 0x187794000 + 861692
23 UIKit 0x00000001877a3778 0x187794000 + 63352
24 QuartzCore 0x00000001851b2b2c 0x1851a4000 + 60204
25 QuartzCore 0x00000001851ad738 0x1851a4000 + 38712
26 QuartzCore 0x00000001851ad5f8 0x1851a4000 + 38392
27 QuartzCore 0x00000001851acc94 0x1851a4000 + 35988
28 QuartzCore 0x00000001851ac9dc 0x1851a4000 + 35292
29 QuartzCore 0x00000001851a60cc 0x1851a4000 + 8396
30 CoreFoundation 0x0000000182a6c588 0x182990000 + 902536
31 CoreFoundation 0x0000000182a6a32c 0x182990000 + 893740
32 CoreFoundation 0x00000001829996a0 0x182990000 + 38560
33 UIKit 0x0000000187816580 0x187794000 + 533888
34 UIKit 0x0000000187810d90 0x187794000 + 511376
35 Jam Session 0x0000000100016cb8 0x10000c000 + 44216
36 libdyld.dylib 0x000000018253a8b8 0x182538000 + 10424
我个人在用户的iPad上看到了崩溃,奇怪的是在崩溃后应用程序仍然锁定在应用程序的启动画面上,即使单击主页按钮也是如此。
如果我试图象征我自己项目中的任何条目,我得到:
atos cannot load symbols for the file 3rdparty for architecture arm64.
我的应用程序或用户设备中的问题是否可以帮助他修复?
由于
答案 0 :(得分:5)
我最好的猜测在这里。来自Apple文档:
跟踪陷阱[EXC_BREAKPOINT // SIGTRAP]
与异常退出类似,此异常旨在提供 附加调试器有机会在特定的情况下中断进程 指出它的执行。您可以从自己的触发器中触发此异常 代码使用__builtin_trap()函数。如果没有附加调试器, 该流程终止,并生成崩溃报告。
如果是,Swift代码将使用此异常类型终止程序 在运行时检测到意外情况,例如:
- 具有零值的非可选类型
- 强制类型转换失败
查看崩溃线程的Backtrace以确定其中的位置 遇到意外情况。可能有其他信息 也已登录到设备的控制台。
根据我的经验,我发现上述情况属实。当我使用可选项(例如使用as!
进行强制转换或没有正确使用可选绑定)时,我经常遇到异步(网络 - 在我的情况下)操作中的那些问题。
此外,为了进行符号化,您应该使用AppStore版本和.dSYM文件(iTunes Connect提交的存档)。
完整链接 https://developer.apple.com/library/ios/technotes/tn2151/_index.html
答案 1 :(得分:1)
问题是由于tableCell显示内部崩溃造成的。当发生这种情况时,调试器通常非常讨厌。无论如何,我在Xcode中发现了一个选项,我不知道,查看来自其他设备的崩溃位置的中间代码符号。我发现它引用了我的一个类中显示的单元格,因此引导我查看错误。