Соединение XPC прервано в Xcode 7 для iOS 9

недавно я обновился до Xcode 7 и обновил свой iPhone до iOS 9. Я разработал и выпустил приложение iOS, которое отлично работало на последней версии iOS 8 и Xcode 6.

при попытке пройти через процесс обновления приложения для поддержки iOS 9, я получаю самую смешную странную ошибку, которая оставила меня в недоумении.

Я сделал все исправления синтаксиса автоматически через Xcode, и теперь мое приложение строит правильно. Он даже работает нормально на первый.

У меня есть кнопка, которая переходит к контроллеру представления с WebView. Этот контроллер представления загружает ссылку, которая отображает изображение, веб-сайт или видео с youtube. Содержимое загружается отлично, как всегда. Тем не менее, программа аварийно завершит работу и перезагрузит симулятор (и мой iPhone) и отправит меня на экран блокировки, когда я нажму кнопку "назад" (я нахожусь в навигационном стеке).

в Xcode, я получаю следующие сообщения:

соединение XPC Прерванный. Завершается, так как нет системного приложения.

У меня есть Flurry analytics, интегрированный в мое приложение, кстати, не уверен, что это проблема.

Как я могу исправить эту проблему? Мои поиски соединений XPC, похоже, не возвращают проблем, подобных моим. Я даже не знаю, что такое соединение XPC, так почему это в моем приложении в любом случае?

EDIT: я нашел обходной путь для этой проблемы. Я не могу сказать, что это исправить.

сбой был происходящие во время использования метода.navigationController?.popViewControllerAnimated, если установлено значение true. Я случайно установил это значение false, и сбой останавливается (теперь переход выглядит ужасно).

Я не знаю, почему это работает, и просто добавляет к своему смущению.

8 ответов


проблема лежала в раскадровке и для меня. Я создал новый проект и выложил виды, и все, казалось, работало нормально. Я нашел эти пару строк в источнике раскадровки (щелкните правой кнопкой мыши на раскадровке и выберите вид как - > исходный код), которые не были распространены между рабочей версией и сломанной версией:

<keyCommands>
    <keyCommand/>
</keyCommands>

Я понятия не имею, что эти строки должны делать, или как они прокрались в мой файл раскадровки, но они были тем, что разбивало приложение так сильно, что телефон приходилось перезагружать. Я удалил эти строки из своего основного проекта, и все снова сработало.


Я боролся с точно такой же ошибки. Через процесс исключения я установил, что это не имеет ничего общего с классом any, но связано с раскадровкой. К счастью, у меня есть резервные копии, и я попытался сравнить раскадровки, чтобы установить, что я сделал, но не смог найти ничего очевидного. Резервная копия работала нормально, и я смог скопировать мои классы контроллера (из неисправной копии с изменениями) в резервную копию, и они работали нормально.

Я думаю, возможно, в раскадровке есть ошибка.


Я только что столкнулся с той же проблемой. Я не знаю, поможет ли это вам, но я также думаю, что это исходит из раскадровки:

в моем случае проблема исходит от UITextView. Всякий раз, когда я пытаюсь изменить текст по умолчанию внутри него, у меня есть эта ошибка. Если я позволю текст по умолчанию или оставить его пустым, приложение работает нормально. Создание IBOutlet и изменение текста программно также работает.

Я пробовал с другими элементами пользовательского интерфейса, но только UITextView, похоже, имеет это вопрос.


удаление UITextView из одного из представлений в Storybord удаляет ошибку в моем случае.


эта ошибка может быть вызвана повторным выполнением петли. В моем случае это был цикл "for", в котором я сбросил переменную подсчета. Как только я добавил NSLog в цикл, это было очевидно.


при использовании QLPreviewController я сталкиваюсь с этой проблемой. Сообщения об ошибках следующим образом:

XPC connection interrupted
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

поскольку XPC означает межпроцессную связь OS X, поэтому я думаю, что это может решить проблему,

dispatch_async(dispatch_get_main_queue(), ^{
    // do what you want to do.
});

в valueChanged: метод UIControl, у меня была та же проблема поэтому я сделал код внутри valueChanged: запустить в основном потоке и это решило проблему.

@IBAction func valueChanged(sender: AnyObject) {
  dispatch_async(dispatch_get_main_queue(), {
  //code
  }
}

У меня такое же сообщение об ошибке, когда я размещаю метод subview in-layoutSubviews:

-(void)layoutSubviews
{
    [super layoutSubviews];   
    [self populateByImageViews];
}

это вызывает бесконечный цикл процесса компоновки и сбои приложения. Не место подпанели в этом месте!