Получение исключения SIGKILL при повторном запуске приложения

Я создаю и запускаю проект в симуляторе iPhone. Я отправлю его на задний план, нажав кнопку "Домой". Затем я дважды нажимаю кнопку "домой", чтобы найти свое приложение в фоновом режиме и коснуться его. Он становится активным, и приложение продолжает работать. Здесь у меня не возникло проблем, независимо от того, сколько раз я повторяю это. Затем я убиваю процесс, нажимая маленький красный знак минуса на значок приложения. Но если я снова коснусь значка приложения, чтобы перезапустить его, я получаю ошибку SIGKILL и сбой приложений. Что может быть причиной этого? Может ли это быть вызвано моими предпочтениями XCode?

Ответ 1

На самом деле это не крушение: просто XCode имеет отложенную реакцию на ваш поступок маленьким красным знаком минус. Когда вы заканчиваете свое приложение таким образом, операционная система отправляет сигнал SIGKILL вашему процессу, но отладчик XCode не "видит" SIGKILL до тех пор, пока вы не перезапустите приложение.

Вы можете "восстановить" из этого "сбоя", нажав кнопку "Продолжить" в отладчике, кстати.

Ответ 2

Я видел подобные сбои в симуляторе, когда я не позволял отладчику изящно отделять себя от приложения. Вместо того, чтобы убивать приложение, нажав на маленький красный знак минус, попробуйте нажать кнопку "Стоп" в Xcode.

Чтобы еще раз подтвердить, что это связано с отладчиком, попробуйте запустить приложение в первый раз, нажав на значок, а не используя Build и Run в Xcode. Затем убейте его, нажав на красный X и перезапустите его. Если он по-прежнему сбой без прикрепленного отладчика, моя гипотеза недействительна.