2015-09-20 4 views
48

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

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

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

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

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

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

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

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

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

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

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

+0

Какую версию OSX вы используете? – trojanfoe

+0

Я использую последнюю версию Yosemite – iOShepherd

+0

Я вижу аналогичную проблему при выполнении '[self addChildViewController: child]' Я пока не смог найти исправление или работу. Я нахожусь на Capitan, xCode 7, работая на симуляторе iOS 9. Если я сниму симулятор до 8.4, эта проблема не возникает. Все еще охота за решениями. – Ceryni

ответ

10

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

<keyCommands> 
    <keyCommand/> 
</keyCommands> 

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

+0

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

+0

Щелкните правой кнопкой мыши файл раскадровки и посмотрите как исходный код. Не ищите '' просто найдите '' и прокомментируйте или удалите его. Просто работали на меня тоже большое спасибо. –

+0

Как и магия, она решила мою катастрофу. – runios

1

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

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

1

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

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

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

1

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

0

При использовании 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. 
}); 
0

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

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

У меня такое же сообщение об ошибке, когда я помещаю подвид в методе -layoutSubviews:

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

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

0

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

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