Xcode 7在iOS 9上出现XPC连接中断

65

我最近升级了Xcode 7,并将我的iPhone升级到iOS 9。我曾经开发并发布过一个iOS应用程序,在最新的iOS 8和Xcode 6上运行得非常完美。

在尝试更新应用程序以支持iOS 9时,我遇到了一个让我困惑不解的错误。

我已经通过Xcode自动进行了所有语法修正,并且现在我的应用程序可以构建成功。它甚至一开始可以正常运行。

我有一个按钮,可以跳转到一个带有WebView的视图控制器。这个视图控制器加载一个链接,它将显示来自YouTube的图片、网站或视频。像往常一样,内容可以正常加载。然而,当我点击“返回”按钮(我在导航堆栈中)时,程序会崩溃并重新启动模拟器(和我的iPhone),并将我发送到锁屏界面。

在Xcode中,我收到以下消息:

XPC连接中断。 由于没有系统应用程序而终止。

顺便说一下,我在我的应用程序中集成了Flurry分析,不确定是否是问题所在。

如何解决这个问题?我的XPC连接搜索似乎没有返回类似我的问题。我甚至不知道XPC连接是什么,那么它为什么会出现在我的应用程序中呢?

编辑:我已经找到了一个解决办法,但我不能说它是一个修复方法。

崩溃发生在使用方法self.navigationController?.popViewControllerAnimated时设置为true的时候。我偶然将其设置为false,崩溃就停止了(现在转换看起来很糟糕)。

我不知道这为什么有效,并且增加了我的困惑。


你正在运行哪个版本的OSX? - trojanfoe
我正在运行最新版本的Yosemite。 - romero-ios
当我执行 [self addChildViewController: child] 时,我遇到了类似的问题。目前为止,我还没有找到解决方法或解决方案。我使用的是Capitan、xCode 7,在iOS 9模拟器上运行。如果我将模拟器降级到8.4,这个问题就不会出现。我仍在寻找解决方案。 - Ceryni
当我尝试使用storyboard segue到UINavigationController时,我遇到了问题。无论我使用show还是present modally,动画或不动画,都没有关系。如果我尝试以编程方式进行segue,仍然会崩溃。我在代码中创建了一个按钮,并尝试了一个segue,但仍然导致手机重新启动。我甚至制作了一个不同的视图控制器,每次尝试segue时都会崩溃。 - Robert Bentley
请参考以下不同问题的答案,但是错误信息相同,解决方案完全不同:https://dev59.com/Eavka4cB1Zd3GeqPxbap#62666065 - ConfusionTowers
对于我的情况,我完全卸载了该应用程序,然后重新安装它,而不是仅覆盖安装,问题就解决了。 - http8086
11个回答

15

对我来说,问题出在Storyboard上。我创建了一个新项目并布局好视图,一切似乎都正常工作。我在Storyboard源代码中找到了这几行代码(右键单击Storyboard,选择“查看” - >“源代码”),这些代码在工作版本和破碎版本之间不常见:

<keyCommands>
    <keyCommand/>
</keyCommands>

我不知道这些行应该做什么,或者它们是如何潜入我的故事板文件的,但它们导致应用程序崩溃得如此严重,以至于手机必须重新启动。我从我的主项目中删除了这些行,一切都恢复正常了。


请问您能帮我找到那段代码的位置吗?我想把它删除,看看是否可以解决问题,也许这样就能确认这是我的问题的答案了。 - romero-ios
右键单击Storyboard文件并查看源代码。不要搜索“<navigationItem>”,只需查找“<keyCommands>”并将其注释或删除即可。这对我也起作用了,非常感谢。 - MÖRK

6

这个错误可能是由于重复执行循环引起的。在我的情况下,是一个“for”循环中我重置了计数变量。当我在循环中添加了NSLog时,问题就显而易见了。


4
我刚刚遇到了同样的问题。我不知道这是否对你有所帮助,但我认为它与Storyboard有关:
在我的情况下,问题来自UITextView。每当我尝试更改其中的默认文本时,就会出现此错误。如果我让默认文本保持不变或将其留空,该应用程序就可以正常工作。通过创建IBOutlet并以编程方式更改文本也可以正常工作。
我尝试了其他UI元素,但只有UITextView似乎存在此问题。

1
我曾经也遇到过完全相同的错误。通过排除法,我确定它与任何类都无关,而是与故事板有关。幸运的是,我经常备份副本,并尝试比较故事板以确定我所做的更改 - 但没有发现明显的问题。 备份副本正常工作,我能够将我的控制器类(从有问题的副本中)复制到备份副本中,它们也能正常工作。
我认为可能是故事板中存在漏洞。

1
我在 -layoutSubviews 方法中放置一个子视图时,遇到了相同的错误信息:
-(void)layoutSubviews
{
    [super layoutSubviews];   
    [self populateByImageViews];
}

它会导致布局过程的无限循环并使应用程序崩溃。不要将子视图放在这个位置!

0

对我来说,UISearchBar存在一些缺失的约束条件,但错误只出现在模拟器中。

我只是添加了一些约束条件,现在运行得更好了。


0
从Storyboard的一个视图中删除UITextView可以解决我的错误。

0

我的问题可能源于某些故事板问题,但我清理了项目,重新启动了Xcode和模拟器应用程序,问题得到了解决。


0
对我来说,这是由于IB_DESIGNABLE引起的Xcode实时问题。
如果您在源文件中有任何IB_DESIGNABLE,则系统的实时跟踪器也会检查StoryBoard中的问题。这可能会导致不必要的构建。
要禁用它-
打开Storyboard文件。编辑器->自动刷新视图(取消选中)
如果您需要禁用实时问题跟踪 XCode->首选项->常规->问题->取消选中实时问题 参考

0
在UIControl的valueChanged:方法中,我遇到了同样的问题,所以我将valueChanged:内部的代码放在主线程中运行,这解决了问题。
@IBAction func valueChanged(sender: AnyObject) {
  dispatch_async(dispatch_get_main_queue(), {
  //code
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接