我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?
下面是一个示例图像:
我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?
下面是一个示例图像:
当前回答
我的解决方案是更换模拟器。我使用的是iPhone 5S,当我切换到iPhone 5时,一切都很完美。希望未来的版本能完全修复它。
其他回答
我相信我找到了一个更通用的解决方案。下面是我用来鼓励Xcode不要产生SourceKitService Terminated错误的步骤。
我的症状是:
When I would start up a new playground, I would receive an error about not being able to communicate with the playground (Error running playground: Failed prepare for communication with playground. See this image on twitter. When I would switch the playground from OS X to iOS, I would receive another error (unfortunately I did not write that one down). When I would start to type in an iOS based Swift project, attempting to use code completion/intellisense on any UIKit specific class, I would receive the SourceKitService Terminated issue in this thread.
调试过程:
我开始通过谷歌寻找SourceKitService,这得到了很少。 然后我开始监视控制台。应用程序,同时使用Xcode。这显示了几个错误: IDEPlaygroundDocument:运行游乐场时遇到错误 com.apple.CoreSimulator。CoreSimulatorService[3952]: The runtime for The selected device is not installed。
我做了什么来纠正这个问题。
如果您只是在Swift项目上下文中遇到问题,请先单独尝试一下。如果这不起作用,那么尝试下面的所有步骤。
打开项目并将目标的部署目标更改为<= 7.1。
更漫长和复杂的过程。 (前3步不一定有帮助,但我做到了,所以把它们记录在这里)
Completely delete all copies of Xcode on your system. Restart your computer. Reinstall Xcode6-beta only. Verify that you still have the issue in playground and/or projects. Open iOS Simulator. Hardware -> Device -> Manage Devices Remove all devices. Recreate all devices you want. I appended the iOS version to the end of the name, just because. Restart Xcode and the simulator. Verify that at least playgrounds no longer throw issues when switched from OS X to iOS. Open your project and change the target's deployment target to something <= 7.1.
分析
看来问题是Xcode6不能正确地找到并连接到模拟器。我不知道为什么会出现这种情况,但这让我可以继续使用Swift进行开发。这可能与模拟器二进制文件似乎移动的事实有关。
在我的spritekit项目中插入touchesMoved-function后,这种情况开始发生。这个函数使用强制展开,这似乎导致了问题:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
在删除感叹号并停止强制打开后,SourceKitService停止了崩溃。
希望这能有所帮助!
将扩展移动到主体类之前。
extension SomeType {
// new functionality to add
}
我想我找到了一个(可能还有很多)这种情况发生的原因。
在我的例子中,我通过桥接头导入Objective-C文件,桥接头具有以下true之一:
用于Objective-C导入的实现文件(.m)没有 App目标设置正确。 Objective-C文件只有头文件(.h),而没有 实现(.m)文件。(再一次,我认为这是“不”的一部分 适当的应用目标”设置,因为你只能在。m文件中设置目标 而不是。h文件)
修复Objective-C文件上的应用目标或在桥接头中删除这些文件的导入似乎都可以解决这个问题。
仅供参考-如果你需要设置头(.h)文件的目标,而该文件没有实现(.m)文件,你可以遵循以下简单的步骤
问题:
如果源代码中有错误,可能会弹出“SourceKitService Terminated”,代码高亮显示停止工作。它可能发生,也可能不发生,当它发生在多种不同的条件下。
我的案例:安装beta 3, OSX仅项目,一个文件检测到“半封闭范围操作符已从..对. .<”错误。弹出窗口开始出现,代码高亮显示开始失败。
解决方案:
修复Xcode检测到的错误 在Navigator中更改为不同的.swift,回到原来的 语法高亮显示重新出现,“SourceKitService Terminated”弹出