Приложение для наблюдения за часами использует фоновые обновления задач, а работа во время задачи асинхронна. Иногда (один раз в 15-20 выполнениях фоновых задач) он заканчивается ОС с аргументом 0xc51bad03. Выпуск notes из watchOS3.1 говорят:0xc51bad03 авария на watchOS3.1
Справочная Refresh Нарушения системных ресурсов приведет отчет о сбое приложения. Код исключения содержит контекст о характере нарушения:
- 0xc51bad01 В приложении используется слишком много процессорного времени.
- 0xc51bad02 Приложение заняло слишком много времени на стене.
- 0xc51bad03 Для выполнения задачи приложение может не иметь достаточного времени выполнения.
Что означает это «возможно, не было достаточного количества времени выполнения»? Какая может быть причина? Этот код не был объяснен во время сессий WWDC. Похоже, этот крах не зависит от точного места в моем коде, который выполняется на данный момент.
Краш отчет за исключением не делает причин понятнее:
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0xc51bad03
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x264216d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x2642149c mach_msg + 40
2 CoreFoundation 0x267aed88 __CFRunLoopServiceMachPort + 154
3 CoreFoundation 0x267ad04c __CFRunLoopRun + 1068
4 CoreFoundation 0x26701f74 CFRunLoopRunSpecific + 354
5 Foundation 0x2704307c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 246
6 Foundation 0x2708ff5a -[NSRunLoop(NSRunLoop) run] + 80
7 libxpc.dylib 0x265330de _xpc_objc_main + 600
8 libxpc.dylib 0x265346fe xpc_main + 166
9 Foundation 0x27217fea service_connection_handler + 0
10 PlugInKit 0x303eb1be -[PKService run] + 774
11 WatchKit 0x342efe00 main + 134
12 libdyld.dylib 0x26344566 start + 2
...
https://forums.developer.apple.com/message/207833#207833 – abjurato