2016-10-07 1 views
0

Мои IOS приложение имеет много потоков, как правило, 60. и их иногда (очень редко) получает следующий:Почему IOS завершает приложение с вызовом clientSystemApplicationTerminated

11 libsystem_c.dylib 0x0000000180fb5364 exit + 20 
12 FrontBoardServices 0x0000000182e86fb4 -[FBSWorkspace clientSystemApplicationTerminated:] + 24 
13 libdispatch.dylib 0x0000000180f494bc _dispatch_call_block_and_release + 20 
14 libdispatch.dylib 0x0000000180f4947c _dispatch_client_callout + 12 
15 libdispatch.dylib 0x0000000180f554c0 _dispatch_queue_drain + 860 
16 libdispatch.dylib 0x0000000180f4cf80 _dispatch_queue_invoke + 460 
17 libdispatch.dylib 0x0000000180f57390 _dispatch_root_queue_drain + 724 
18 libdispatch.dylib 0x0000000180f570b0 _dispatch_worker_thread3 + 108 

эта нить не «main'-нить с UI. и вызов 'clientSystemApplicationTerminated' вызывает 'exit' из libC.

Это неожиданно уничтожит (вызывает деструкторы) все статические/глобальные объекты в приложении, а приложение обрабатывает некоторые данные из сети.

Этот совершенно неожиданный способ прекратить применение приложения iOS, и я попрошу помочь понять эту удивительную логику, чтобы прекратить действие iOS-приложения.

+0

Пожалуйста, смотрите [просить] и [mcve]. – Mat

ответ

0

В каждом случае, который я видел, это указывает на ошибку ОС и часто связано с аварийным сбоем ОС. Найдите «Завершение с отсутствием системного приложения», что очень вероятно в журналах (если вы разобрали код симулятора для этого метода, это то, что было зарегистрировано непосредственно перед вызовом exit). Некоторые примеры обсуждения этого сообщения:

https://forums.developer.apple.com/thread/20240

App Crashing Entire Device On Segue for iOS 9 + Xcode 7

https://forums.developer.apple.com/thread/18164

Смежные вопросы