проблема зацикливания при ведении журнала Crashlytics?

Мое приложение Swift убивает iOS (0x8badf00d), и похоже, что виновата Crashlytics. Вот раздел отчета о сбое - я предполагаю, что это Crashlytics из-за префиксов CLS в коде.

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Termination Description: SPRINGBOARD, scene-create watchdog transgression: com.rsginc.rmove exhausted CPU time allowance of 4.70 seconds | ProcessVisibility: Background | ProcessState: Running | WatchdogEvent: scene-create | WatchdogVisibility: Background | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 7.550 (user 7.550, system 0.000), 10% CPU", | "Elapsed application CPU time (seconds): 5.119, 7% CPU" | )
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x00000001fab7d948 write + 8
1   rMove                           0x00000001048e6814 CLSSDKFileLog + 336
2   rMove                           0x00000001048f2128 __CLSFileWriteWithRetries_block_invoke + 128
3   rMove                           0x00000001048f203c CLSFileLoopWithWriteBlock + 56
4   rMove                           0x00000001048f23ac CLSFileFDWriteUInt64 + 128
5   rMove                           0x00000001048f248c CLSFileFDWriteInt64 + 116
6   rMove                           0x00000001048e6804 CLSSDKFileLog + 320
7   rMove                           0x00000001048f2128 __CLSFileWriteWithRetries_block_invoke + 128
8   rMove                           0x00000001048f203c CLSFileLoopWithWriteBlock + 56
9   rMove                           0x00000001048f23ac CLSFileFDWriteUInt64 + 128
10  rMove                           0x00000001048f248c CLSFileFDWriteInt64 + 116
11  rMove                           0x00000001048e6804 CLSSDKFileLog + 320
12  rMove                           0x00000001048f2128 __CLSFileWriteWithRetries_block_invoke + 128
13  rMove                           0x00000001048f203c CLSFileLoopWithWriteBlock + 56
14  rMove                           0x00000001048f23ac CLSFileFDWriteUInt64 + 128
15  rMove                           0x00000001048f248c CLSFileFDWriteInt64 + 116
...

5 повторяющихся строк в этой трассировке повторяются 102 раза - я усек ее для ограничения количества символов StackOverflow и удобочитаемости.

Мне не удалось найти других, у кого возникла эта проблема - это известная ошибка или я могу что-то делать неправильно в своих вызовах Crashlytics?


person Crag    schedule 01.04.2019    source источник


Ответы (1)


Я предполагаю, что ваше приложение запускается более 20 секунд. Взгляните на документацию и найдите часть с кодом 0x8badf00d.

Код исключения 0x8badf00d указывает, что приложение было прекращено iOS из-за тайм-аута сторожевого таймера. Приложение слишком долго запускалось, завершалось или реагировало на системные события. Одна из частых причин этого - синхронная работа в сети в основном потоке. Какую бы операцию ни выполняли в потоке 0, необходимо переместить в фоновый поток или обработать иначе, чтобы не блокировать основной поток.

person Anton Vlasov    schedule 01.04.2019
comment
Спасибо за ответ, но проблема мне кажется бесконечным циклом в коде Crashlytics - моего кода в трассировке стека для потока 0 нет, так что это скорее вопрос Crashlytics, чем вопрос 0xbadf00d. - person Crag; 01.04.2019
comment
Похоже, что crashlytics пытается снова и снова записывать какой-нибудь файл журнала. Возможно ли, что устройству недостаточно свободного места на диске? - person Anton Vlasov; 01.04.2019
comment
Нет кубиков - осталось много места. - person Crag; 02.04.2019