Épargnez-vous des heures de débogage, parce que je viens de perdre deux semaines à chasser les bugs et les plantages mystérieux de l'application. Il s'avère que, si vous ajoutez beaucoup de (voir la réponse pour plus de détails) demandes de notification à l'application UNUserNotificationCenter
cela fera tomber le tremplin brusquement. Je n'ai pas encore trouvé de moyen de contourner ce problème, car le même code fonctionnait bien pour iOS 9 et les versions inférieures. Il n'est pas non plus possible d'ajouter des demandes de notification en bloc comme auparavant. Voici le plantage que je reçois à chaque fois (comme des centaines d'utilisateurs de l'application). Avez-vous une idée de ce que je pourrais faire au lieu de revenir à l'utilisation de l'option UILocalNotification
s ?
Incident Identifier: 17BC9D5B-AF74-4592-8427-038375C27AE7
CrashReporter Key: a819553d1e72ee25a5ced9ddc79dbf00a7d3851f
Hardware Model: iPad5,3
Process: SpringBoard [2371]
Path: /System/Library/CoreServices/SpringBoard.app/SpringBoard
Identifier: com.apple.springboard
Version: 50 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.apple.springboard [71]
Date/Time: 2016-11-16 14:57:04.9159 +0400
Launch Time: 2016-11-16 14:49:20.9981 +0400
OS Version: iPhone OS 10.0 (14A5309d)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 13
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 GraphicsServices 0x0000000182396198 GSEventRunModal + 180
6 UIKit 0x00000001869327c8 -[UIApplication _run] + 664
7 UIKit 0x000000018692d534 UIApplicationMain + 208
8 libdyld.dylib 0x00000001805305b8 start + 4
Thread 1 name: com.apple.uikit.eventfetch-thread
Thread 1:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018142ce3c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x000000018144d92c -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7 UIKit 0x000000018727af2c -[UIEventFetcher threadMain] + 136
8 Foundation 0x00000001815293ac __NSThread__start__ + 1024
9 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
10 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
11 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 2:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018142ce3c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x0000000181481584 -[NSRunLoop(NSRunLoop) run] + 88
7 UIKit 0x0000000186f73298 -[UIStatusBarServerThread main] + 840
8 Foundation 0x00000001815293ac __NSThread__start__ + 1024
9 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
10 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
11 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 3:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018142ce3c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 CoreBrightness 0x0000000190ec5d10 -[BrightnessSystemClientInternal main] + 1392
7 Foundation 0x00000001815293ac __NSThread__start__ + 1024
8 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
9 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
10 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 4:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 SpringBoard 0x00000001001a0b00 0x1000f0000 + 723712
6 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
7 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
8 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 5 name: com.apple.springboard.icongeneration
Thread 5:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 SpringBoard 0x00000001001a0c00 0x1000f0000 + 723968
6 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
7 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
8 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 6 name: com.apple.CoreMotion.MotionThread
Thread 6:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 CoreFoundation 0x00000001809dd094 CFRunLoopRun + 112
6 CoreMotion 0x0000000187762994 0x187702000 + 395668
7 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
8 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
9 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 7 name: SBWiFiManager callback thread
Thread 7:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018142ce3c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x0000000181481584 -[NSRunLoop(NSRunLoop) run] + 88
7 SpringBoard 0x0000000100215e44 0x1000f0000 + 1203780
8 Foundation 0x00000001815293ac __NSThread__start__ + 1024
9 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
10 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
11 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 8:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018142ce3c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 HomeKit 0x00000001913e8974 -[_HMLocationHandler createLocationManager] + 508
7 Foundation 0x00000001815293ac __NSThread__start__ + 1024
8 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
9 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
10 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 9:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018142ce3c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 CoreBrightness 0x0000000190ec5d10 -[BrightnessSystemClientInternal main] + 1392
7 Foundation 0x00000001815293ac __NSThread__start__ + 1024
8 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
9 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
10 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 10 name: CommonUtilities-WiFi-Thread
Thread 10:
0 libsystem_kernel.dylib 0x0000000180624194 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180624004 mach_msg + 72
2 CoreFoundation 0x0000000180a61e8c __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000180a5faa8 __CFRunLoopRun + 1132
4 CoreFoundation 0x000000018098f8d8 CFRunLoopRunSpecific + 444
5 CoreFoundation 0x00000001809dd094 CFRunLoopRun + 112
6 CommonUtilities 0x0000000182d10c20 0x182d0a000 + 27680
7 Foundation 0x00000001815293ac __NSThread__start__ + 1024
8 libsystem_pthread.dylib 0x00000001807079ec _pthread_body + 240
9 libsystem_pthread.dylib 0x00000001807078fc _pthread_body + 0
10 libsystem_pthread.dylib 0x0000000180704ef8 thread_start + 4
Thread 11:
0 libsystem_kernel.dylib 0x0000000180642a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x000000018070549c _pthread_wqthread + 1440
2 libsystem_pthread.dylib 0x0000000180704ef0 start_wqthread + 4
Thread 12:
0 libsystem_kernel.dylib 0x0000000180642a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x000000018070549c _pthread_wqthread + 1440
2 libsystem_pthread.dylib 0x0000000180704ef0 start_wqthread + 4
Thread 13 name: Dispatch queue: com.apple.frontboard.sqlite.database
Thread 13 Crashed:
0 libsystem_kernel.dylib 0x0000000180642014 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001807094f0 pthread_kill + 112
2 libsystem_c.dylib 0x00000001805b64b8 abort + 140
3 libsystem_malloc.dylib 0x0000000180686a38 _nano_vet_and_size_of_live + 0
4 libsystem_malloc.dylib 0x0000000180687db8 nano_free + 220
5 libsqlite3.dylib 0x000000018103a5f8 0x180f95000 + 677368
6 libsqlite3.dylib 0x0000000180fbac9c 0x180f95000 + 154780
7 libsqlite3.dylib 0x0000000180fe6074 0x180f95000 + 331892
8 libsqlite3.dylib 0x0000000180fd70b0 sqlite3_step + 588
9 FrontBoard 0x0000000190312ee4 __79-[_FBSqlitePreparedSimpleStatement executeWithBindings:resultRowHandler:error:]_block_invoke + 424
10 libdispatch.dylib 0x00000001804fd784 _dispatch_client_callout + 16
11 libdispatch.dylib 0x000000018050aca4 _dispatch_barrier_sync_f_invoke + 84
12 FrontBoard 0x000000019031e0d0 -[FBSqliteDatabaseConnection performSyncWithDatabase:] + 80
13 FrontBoard 0x0000000190312cbc -[_FBSqlitePreparedSimpleStatement executeWithBindings:resultRowHandler:error:] + 148
14 FrontBoard 0x000000019035a4d8 -[FBSqliteApplicationDataStoreRepository _dbQueue_executeStatement:bindings:resultRowHandler:error:] + 80
15 FrontBoard 0x000000019035a538 -[FBSqliteApplicationDataStoreRepository _dbQueue_executeStatement:bindings:resultRowHandler:] + 72
16 FrontBoard 0x0000000190359374 -[FBSqliteApplicationDataStoreRepository _dbQueue_objectForKey:forApplication:] + 504
17 FrontBoard 0x0000000190357a34 __81-[FBSqliteApplicationDataStoreRepository objectForKey:forApplication:withResult:]_block_invoke.44 + 40
18 libdispatch.dylib 0x00000001804fd784 _dispatch_client_callout + 16
19 libdispatch.dylib 0x000000018050aca4 _dispatch_barrier_sync_f_invoke + 84
20 FrontBoard 0x0000000190357990 -[FBSqliteApplicationDataStoreRepository objectForKey:forApplication:withResult:] + 92
21 FrontBoard 0x000000019038a5cc -[FBApplicationDataStoreInProcessRepositoryClient objectForKey:forApplication:withResult:checkPrefetch:] + 528
22 FrontBoardServices 0x00000001825c3e3c __40-[FBSApplicationDataStore objectForKey:]_block_invoke + 112
23 libdispatch.dylib 0x00000001804fd784 _dispatch_client_callout + 16
24 libdispatch.dylib 0x0000000180508f80 _dispatch_block_invoke_direct + 376
25 BaseBoard 0x00000001825415a8 -[NSObject(BaseBoard) bs_performSynchronously:timeout:] + 144
26 FrontBoardServices 0x00000001825c3d7c -[FBSApplicationDataStore objectForKey:] + 224
27 FrontBoardServices 0x00000001825c4044 -[FBSApplicationDataStore safeObjectForKey:ofType:] + 32
28 FrontBoardServices 0x00000001825c41d4 -[FBSApplicationDataStore archivedObjectForKey:] + 64
29 FrontBoardServices 0x00000001825c4314 -[FBSApplicationDataStore safeArchivedObjectForKey:ofType:] + 32
30 UserNotificationsServer 0x000000019c52169c -[UNSPendingNotificationRepository _pendingNotificationDictionariesForBundleIdentifier:] + 140
31 UserNotificationsServer 0x000000019c5219d0 -[UNSPendingNotificationRepository setPendingNotificationRecords:forBundleIdentifier:] + 72
32 UserNotificationsServer 0x000000019c5249b4 -[UNSLocalNotificationClient _setPendingNotificationRecords:] + 500
33 UserNotificationsServer 0x000000019c5235c4 -[UNSLocalNotificationClient addPendingNotificationRecords:] + 1124
34 UserNotificationsServer 0x000000019c51d648 -[UNSNotificationSchedulingService _queue_addPendingNotificationRecords:forBundleIdentifier:] + 84
35 UserNotificationsServer 0x000000019c51c6b0 __108-[UNSNotificationSchedulingService addPendingNotificationRecords:forBundleIdentifier:withCompletionHandler:]_block_invoke + 36
36 libdispatch.dylib 0x00000001804fd7c4 _dispatch_call_block_and_release + 24
37 libdispatch.dylib 0x00000001804fd784 _dispatch_client_callout + 16
38 libdispatch.dylib 0x000000018050b880 _dispatch_queue_serial_drain + 928
39 libdispatch.dylib 0x0000000180500f6c _dispatch_queue_invoke + 652
40 libdispatch.dylib 0x000000018050bd7c _dispatch_queue_override_invoke + 360
41 libdispatch.dylib 0x000000018050d718 _dispatch_root_queue_drain + 572
42 libdispatch.dylib 0x000000018050d478 _dispatch_worker_thread3 + 124
43 libsystem_pthread.dylib 0x00000001807053f8 _pthread_wqthread + 1276
44 libsystem_pthread.dylib 0x0000000180704ef0 start_wqthread + 4
UPDATE : Il ne semble pas être basé sur un nombre spécifique de notifications. Il s'est avéré qu'il se déclenchait fréquemment car j'avais environ 30 à 40 notifications enregistrées alors que l'application était en arrière-plan (notification push, rafraîchissement de l'application, mise en arrière-plan de l'application, etc.) - comme l'ajout asynchrone de ces alertes prenait plus de temps que d'habitude, l'application laissait entre-temps tomber l'identifiant de la tâche d'arrière-plan qu'elle avait conservé. J'ai expliqué cela en détail ci-dessous, ainsi qu'une solution de contournement.
Ce bogue a été reconnu par Apple et marqué comme duplicata d'un bogue précédemment signalé. J'espère qu'il sera corrigé car il continue à causer des problèmes dans certains cas limites où l'application se lance en arrière-plan et s'arrête peu après (pendant les rafraîchissements du contenu en arrière-plan).