Соединение 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, похоже, имеет это вопрос.
эта ошибка может быть вызвана повторным выполнением петли. В моем случае это был цикл "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];
}
это вызывает бесконечный цикл процесса компоновки и сбои приложения. Не место подпанели в этом месте!