我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?

下面是一个示例图像:


当前回答

Xcode 6.1 Beta 3:

一旦你在一个Swift文件中定义了一个非私有类型别名(例如typealias Foo = Int),在另一个文件中输入字母c, SourceKitService就会崩溃。

解决方案是要么放弃使用类型别名,等待下一个beta版本,要么将类型别名包装在类定义中:

public class DummyClass {
    public typealias Foo = String
}

像这样使用它:

var myVar:DummyClass.Foo?

其他回答

将扩展移动到主体类之前。

extension SomeType {
// new functionality to add 

}

如果Xcode打开,退出Xcode。然后从终端运行:

defaults delete com.apple.dt.Xcode

这将把Xcode恢复到默认设置。打开Xcode,一切都可以正常工作了。

我发现从终端删除派生数据可以解决这个问题,直到下一次崩溃。:年代

它位于:/Users/{用户名}/Library/Developer/Xcode/DerivedData/{项目名}-{随机字符序列}

我希望这能有所帮助。

到目前为止,对我来说最常见的两个原因是:

行末的分号 导入文件中未引用的框架

在过去的几个月里,我几乎每天都有这种感觉。尝试了上面所有的方法,它只能暂时修复它。

最后,在两周前,我将DerivedData位置更改为一个新位置,而且我一次都没有遇到过这个问题。

我注意到,当我删除我的派生数据文件夹时,它会重新生成,由于某种原因大约是3GB。当我创建一个新文件夹时,它并没有重新生成所有这些数据。

希望这能帮助到一些人。