ios - 仅适用于特别构建和较旧的设备,保存时核心数据崩溃

标签 ios core-data swift3

我在我们的应用程序中使用 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

最佳答案

那个崩溃日志中没有太多有用的细节。然而,鉴于这只是旧设备上的问题,我将调查两个方面。您需要一台遭受此次崩溃的测试设备。

  1. 内存。较旧的设备较少,如果您积累了大量未保存的更改,您可能会用完。具有更多内存的设备不太可能出现问题。您可以使用 Xcode 的内存监控快速检查这一点——如果您在保存时看到内存峰值,您就知道您需要通过 Instruments 更仔细地查看。

  2. 速度,如果您在主线程上节省时间。如果你阻塞主线程的时间太长,iOS 可能会认为你的应用程序已经停止响应并杀死它。同样,较慢的设备可能有问题,而较新的设备则正常。请记住,通过 Xcode 调试时可能不会发生这种崩溃,因为它会影响 iOS 决定终止应用程序的时间。

这些中的每一个都可能伴随设备控制台中的有用消息,这些消息可能只是告诉您问题出在哪里。您可以使用 Xcode 或使用 free iOS Console app 来获取它们.

关于ios - 仅适用于特别构建和较旧的设备,保存时核心数据崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938040/

相关文章:

ios - 带有标题 View 的 UITableView 不滚动到顶部

iphone - 核心数据和 BOOL 设置

ios - Swift - 如何检查现有的 Core Data Store iOS

iOS/JSON : Store float value in object variable

ios - 使用按钮创建/追加数组

ios - 我真的需要单例上的共享实例吗?

ios - 使用框架!在 Podfile 中导致 'React/RCTBridgeDelegate.h' 未找到

ios - 适用于iOS的Firebase Crashlytics:关闭不是符号问题

ios - 如果 UITableView 没有数据,如何添加 UIImage 和 UILabel

ios - Swift3:无法删除部分中的行