2016-12-02 61 views
0

我一直在我们的应用程序中使用CoreData一段时间,直到我将最新版本分发给其他团队成员,成员无法在手机上加载应用程序(4s),它刚刚崩溃。我追查下来,发现在ManagedObjectContext上调用了save()的问题,我仍然不知道为什么;当我直接构建任何设备时,它可以很好地工作,但是4s和5(5s工作)在安装时会崩溃。保存专用版本和旧版设备的核心数据崩溃

所有测试过的设备都是在没有安装应用程序的情况下启动的,因此它似乎不是迁移问题(为了以防万一,我设置了轻量级迁移)。

这里是崩溃日志,任何帮助将是惊人的。

Incident Identifier: 3E7C526F-7210-4F88-B298-C83D665C066B 
CrashReporter Key: 78c1b7a7751600091f9b4b7909eec333e0f5779a 
Hardware Model:  iPhone5,2 
Process:    APP [401] 
Path:    /private/var/containers/Bundle/Application/004CE56E-AFF8-4BF0-8861-E7617F4635B6/APP.app/APP 
Identifier:   com.app.APP 
Version:    1.7 (1.8) 
Code Type:   ARM (Native) 
Role:    Foreground 
Parent Process:  launchd [1] 
Coalition:   com.app. [551] 


Date/Time:   2016-12-02 17:27:32.1384 +0000 
Launch Time:   2016-12-02 17:27:28.0000 +0000 
OS Version:   iPhone OS 10.1.1 (14B100) 
Report Version:  104 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Subtype: KERN_PROTECTION_FAILURE at 0x006e6000 
Triggered by Thread: 0 

Filtered syslog: 
None found 

Thread 0 name: Dispatch queue: SQLQueue 0x1466e820 for APP.sqlite 
Thread 0 Crashed: 
0 libsystem_platform.dylib  0x1b0b01ba 0x1b0af000 + 4538 
1 libswiftCore.dylib    0x0109d3c4 0xf36000 + 1471428 
2 libswiftCore.dylib    0x0105ea58 0xf36000 + 1215064 
3 libswiftCore.dylib    0x00fbd67c 0xf36000 + 554620 
4 libswiftCore.dylib    0x00fcc3bc 0xf36000 + 615356 
5 libswiftCore.dylib    0x00fcc208 0xf36000 + 614920 
6 libswiftCore.dylib    0x00fcd540 0xf36000 + 619840 
7 CoreFoundation     0x1b7a888e 0x1b759000 + 325774 
8 Foundation      0x1c0efee2 0x1c08b000 + 413410 
9 Foundation      0x1c0ef0b0 0x1c08b000 + 409776 
10 Foundation      0x1c0f029c 0x1c08b000 + 414364 
11 Foundation      0x1c0ef0b0 0x1c08b000 + 409776 
12 Foundation      0x1c0f54ee 0x1c08b000 + 435438 
13 CoreData      0x1d7b7bfe 0x1d7a2000 + 89086 
14 CoreData      0x1d7edaa4 0x1d7a2000 + 309924 
15 CoreData      0x1d983498 0x1d7a2000 + 1971352 
16 CoreData      0x1d984d46 0x1d7a2000 + 1977670 
17 CoreData      0x1d979c34 0x1d7a2000 + 1932340 
18 CoreData      0x1d886984 0x1d7a2000 + 936324 
19 libdispatch.dylib    0x1af01082 0x1af00000 + 4226 
20 libdispatch.dylib    0x1af0d3a2 0x1af00000 + 54178 
21 CoreData      0x1d8867bc 0x1d7a2000 + 935868 
22 CoreData      0x1d9545aa 0x1d7a2000 + 1779114 
23 CoreData      0x1d8b6fbe 0x1d7a2000 + 1134526 
24 CoreData      0x1d8b0a5a 0x1d7a2000 + 1108570 
25 CoreData      0x1d7be12c 0x1d7a2000 + 114988 
26 CoreData      0x1d89334e 0x1d7a2000 + 987982 
27 CoreData      0x1d88b806 0x1d7a2000 + 956422 
28 CoreData      0x1d7bdc4e 0x1d7a2000 + 113742 
29 CoreData      0x1d7dd3f8 0x1d7a2000 + 242680 
30 APP        0x000bdbbc 0x70000 + 318396 
31 APP        0x000bee4c 0x70000 + 323148 
32 APP        0x000bea9c 0x70000 + 322204 
33 APP        0x00146c90 0x70000 + 879760 
34 APP        0x001458dc 0x70000 + 874716 
35 APP        0x00146bb0 0x70000 + 879536 
36 libdispatch.dylib    0x1af01096 0x1af00000 + 4246 
37 libdispatch.dylib    0x1af01082 0x1af00000 + 4226 
38 libdispatch.dylib    0x1af055fc 0x1af00000 + 22012 
39 CoreFoundation     0x1b816a16 0x1b759000 + 776726 
40 CoreFoundation     0x1b814cfe 0x1b759000 + 769278 
41 CoreFoundation     0x1b764072 0x1b759000 + 45170 
42 CoreFoundation     0x1b763e80 0x1b759000 + 44672 
43 GraphicsServices    0x1cf10bfc 0x1cf07000 + 39932 
44 UIKit       0x2091e82e 0x208a4000 + 501806 
45 UIKit       0x20918f60 0x208a4000 + 479072 
46 APP       0x00095388 0x70000 + 152456 
47 libdyld.dylib     0x1af2e50a 0x1af2b000 + 13578 

Thread 1: 
0 libsystem_pthread.dylib   0x1b0b6484 0x1b0b5000 + 5252 

Thread 2: 
0 libsystem_pthread.dylib   0x1b0b6484 0x1b0b5000 + 5252 

Thread 3: 
0 libsystem_pthread.dylib   0x1b0b6484 0x1b0b5000 + 5252 

Thread 4: 
0 libsystem_kernel.dylib   0x1b004744 0x1afed000 + 96068 
1 libsystem_pthread.dylib   0x1b0b69a0 0x1b0b5000 + 6560 
2 libsystem_pthread.dylib   0x1b0b648c 0x1b0b5000 + 5260 

Thread 5 name: com.apple.uikit.eventfetch-thread 
Thread 5: 
0 libsystem_kernel.dylib   0x1afee83c 0x1afed000 + 6204 
1 libsystem_kernel.dylib   0x1afee62e 0x1afed000 + 5678 
2 CoreFoundation     0x1b816868 0x1b759000 + 776296 
3 CoreFoundation     0x1b814b66 0x1b759000 + 768870 
4 CoreFoundation     0x1b764072 0x1b759000 + 45170 
5 CoreFoundation     0x1b763e80 0x1b759000 + 44672 
6 Foundation      0x1c0960da 0x1c08b000 + 45274 
7 Foundation      0x1c0b4df0 0x1c08b000 + 171504 
8 UIKit       0x21226cb2 0x208a4000 + 9972914 
9 Foundation      0x1c17f0d0 0x1c08b000 + 999632 
10 libsystem_pthread.dylib   0x1b0b8a16 0x1b0b5000 + 14870 
11 libsystem_pthread.dylib   0x1b0b893c 0x1b0b5000 + 14652 
12 libsystem_pthread.dylib   0x1b0b6498 0x1b0b5000 + 5272 

Thread 6 name: com.apple.NSURLConnectionLoader 
Thread 6: 
0 libsystem_kernel.dylib   0x1afee83c 0x1afed000 + 6204 
1 libsystem_kernel.dylib   0x1afee62e 0x1afed000 + 5678 
2 CoreFoundation     0x1b816868 0x1b759000 + 776296 
3 CoreFoundation     0x1b814b66 0x1b759000 + 768870 
4 CoreFoundation     0x1b764072 0x1b759000 + 45170 
5 CoreFoundation     0x1b763e80 0x1b759000 + 44672 
6 CFNetwork      0x1be2edb8 0x1bd83000 + 703928 
7 Foundation      0x1c17f0d0 0x1c08b000 + 999632 
8 libsystem_pthread.dylib   0x1b0b8a16 0x1b0b5000 + 14870 
9 libsystem_pthread.dylib   0x1b0b893c 0x1b0b5000 + 14652 
10 libsystem_pthread.dylib   0x1b0b6498 0x1b0b5000 + 5272 

Thread 7 name: com.twitter.crashlytics.ios.MachExceptionServer 
Thread 7: 
0 libsystem_kernel.dylib   0x1afee83c 0x1afed000 + 6204 
1 libsystem_kernel.dylib   0x1afee62e 0x1afed000 + 5678 
2 APP        0x00408b9a 0x70000 + 3771290 
3 libsystem_pthread.dylib   0x1b0b8a16 0x1b0b5000 + 14870 
4 libsystem_pthread.dylib   0x1b0b893c 0x1b0b5000 + 14652 
5 libsystem_pthread.dylib   0x1b0b6498 0x1b0b5000 + 5272 

Thread 8: 
0 libsystem_kernel.dylib   0x1b004744 0x1afed000 + 96068 
1 libsystem_pthread.dylib   0x1b0b69a0 0x1b0b5000 + 6560 
2 libsystem_pthread.dylib   0x1b0b648c 0x1b0b5000 + 5260 

Thread 9: 
0 libsystem_kernel.dylib   0x1b004744 0x1afed000 + 96068 
1 libsystem_pthread.dylib   0x1b0b69a0 0x1b0b5000 + 6560 
2 libsystem_pthread.dylib   0x1b0b648c 0x1b0b5000 + 5260 

Thread 10 name: Dispatch queue: com.apple.network.connections 
Thread 10: 
0 libcorecrypto.dylib    0x1aecdbe8 0x1aea7000 + 158696 
1 libsystem_coretls.dylib   0x1afc7622 0x1afb9000 + 58914 
2 libsystem_coretls.dylib   0x1afc5a14 0x1afb9000 + 51732 
3 libsystem_coretls.dylib   0x1afc619a 0x1afb9000 + 53658 
4 libnetwork.dylib    0x26824048 0x267dd000 + 290888 
5 libnetwork.dylib    0x26826138 0x267dd000 + 299320 
6 libnetwork.dylib    0x26802992 0x267dd000 + 154002 
7 libdispatch.dylib    0x1af0cb9a 0x1af00000 + 52122 
8 libdispatch.dylib    0x1af17a84 0x1af00000 + 96900 
9 libdispatch.dylib    0x1af02cb4 0x1af00000 + 11444 
10 libdispatch.dylib    0x1af0dd2c 0x1af00000 + 56620 
11 libdispatch.dylib    0x1af04378 0x1af00000 + 17272 
12 libdispatch.dylib    0x1af0eb9c 0x1af00000 + 60316 
13 libdispatch.dylib    0x1af1488e 0x1af00000 + 84110 
14 libsystem_pthread.dylib   0x1b0b67f0 0x1b0b5000 + 6128 
15 libsystem_pthread.dylib   0x1b0b648c 0x1b0b5000 + 5260 

Thread 11: 
0 libsystem_pthread.dylib   0x1b0b6484 0x1b0b5000 + 5252 

Thread 12: 
0 libsystem_kernel.dylib   0x1b004744 0x1afed000 + 96068 
1 libsystem_pthread.dylib   0x1b0b69a0 0x1b0b5000 + 6560 
2 libsystem_pthread.dylib   0x1b0b648c 0x1b0b5000 + 5260 

Thread 0 crashed with ARM Thread State (32-bit): 
    r0: 0x006e6000 r1: 0x006e6000  r2: 0x0029267c  r3: 0x00000000 
    r4: 0x00000000 r5: 0x00000000  r6: 0x14586ae0  r7: 0x007e3350 
    r8: 0x007e33c8 r9: 0x004bc340  r10: 0x007e33d4  r11: 0x0118efdc 
    ip: 0x00000000 sp: 0x007e3350  lr: 0x0109d3c4  pc: 0x1b0b01ba 
    cpsr: 0x20000030 
+0

我很好奇,如果你知道崩溃的线程名称的意义?为什么是“Dispatch Queue:SQLQueue”而不是主队列,但它似乎包含了完整的应用程序启动栈?我实际上有一个类似的堆栈跟踪。 – jeffmax

回答

1

那个崩溃日志中没有太多有用的细节。不过,鉴于这只是旧设备的问题,我会研究两个方面。您将需要一台经受此次碰撞的测试设备。

  1. 记忆。旧设备的使用量较少,如果您积累了大量未保存的更改,则可能会耗尽。内存更多的设备不太可能出现问题。您可以使用Xcode的内存监控快速检查 - 如果您在保存时看到内存峰值,则需要通过仪器更仔细地查看。

  2. 速度,如果你保存在主线程。如果您阻止主线程时间过长,iOS可能会判定您的应用已停止响应并将其终止。同样,较慢的设备可能有问题,而较新的设备可以。请记住,通过Xcode进行调试时,这种崩溃可能不会发生,因为它可能会影响iOS决定终止应用程序的时间。

这些中的每一个都可能伴随着设备控制台中的有用消息,这些消息可能只是告诉你问题是什么。您可以使用Xcode或使用free iOS Console app

+0

谢谢汤姆,我尝试了你建议的工具,并设法获得更多的洞察力,但在这一点上仍然没有接近解决方案。 –