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, и сбой останавливается (теперь переход выглядит ужасно).



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

438   8  

8 ответов:

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

<keyCommands>
    <keyCommand/>
</keyCommands>

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

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

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

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

в моем случае проблема исходит от 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 в метод layoutSubviews:

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

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

Comments

    Ничего не найдено.