Xcode卡在索引上

146

我已经为这个项目工作了2个月,但是因为Xcode卡在“索引”上而突然停止工作。我无法再构建该项目。如果我尝试构建,Xcode会冻结,我必须强制退出。这只发生在这个项目中。

我尝试清除所有派生数据,但没有帮助。

我正在使用Xcode 4.5.2。

有任何想法吗?


2
苹果及其强大的Xcode 5在同一问题上存在困扰。 - Coldsteel48
顺便说一句,对我来说在 MAC 上更改日期解决了问题,(不知道为什么和如何解决的问题,但确实解决了问题) - Coldsteel48
尝试了所有的方法,但都不起作用。老实说,Xcode从第一个版本开始就存在这个问题。而且它会突然出现,没有任何原因。 - Bagusflyer
2
我在Xcode 9.1上遇到了这个问题。四年过去了,他们仍然有同样的问题 :| - Sabri Meviş
3
Xcode 10 GM也需要翻译 - QED
显示剩余6条评论
40个回答

182
  1. 打开您的项目文件夹。
  2. 找到ProjectName.xcodeproj文件。
  3. 右键单击复制并粘贴到安全位置。
  4. 右键单击“显示包内容”。
  5. 找到project.xcworkspace文件并删除该文件。
  6. 重新打开您的项目,进行清理和重建。

如果问题未得到解决,请使用备份文件替换该文件。


1
在Xcode 6.2中,无法在*.xcodeproj文件中找到project.xcworkspace文件。@aleksandar-vacic的答案对我有用。 - kiecodes
Xcode似乎仍然卡在“索引|等待xcodebuild”上,但是当我点击播放时,它确实能够成功构建,所以这是一件好事。 - chiliNUT
3
请详细说明这个文件的作用以及它与手头问题的关系。 - de.
@marlonpya 我猜你正在使用CocoaPods, 在这种情况下,工作区文件是单独的,与我所说的不同。在这里,我是指.project文件中的文件。希望这可以帮到你,但在更改项目文件或工作区文件之前,始终进行备份。 - Pratik Mistry
尝试在 Xcode 13 中进行 is-indexing-forever 的操作,但是里面也没有 .xcworkspace 文件。 - Hardy
显示剩余2条评论

73
  1. 关闭Xcode中的该项目
  2. 打开Xcode组织器,找到出问题的项目
  3. 在组织器中删除Derived Data文件夹
  4. 关闭/重新打开Xcode

删除Derived Data文件夹是解决Xcode行为异常的情况下的第一件事。


9
请注意,在Xcode 6.4中,您应该转到“窗口”→“项目”,而不是“组织者”。 - kennytm
比被接受的答案简单得多的解决方案,谢谢! - Tim
9
在我的电脑上,派生数据位于~/Library/Developer/Xcode/DerivedData/目录下。 - Suragch
菜单项在新版Xcode(例如13.1)中为产品在Finder中显示构建文件夹 - robinst

27

我曾遇到过这个问题,原因是一个包含20个元素的数组。必须切换到不同的语法。相当愚蠢。


4
我也一样。4x4的数组可以运行。6x6的数组对于Xcode来说太大了...有点麻烦。 - dfens
2
我也是这样。这绝对是苹果和Xcode的真正失败,非常奇怪。 - wuf810
1
你如何找出编译器卡住的代码位置? - Tomasz Nazarenko
1
@TomaszNazarenko - 请看下面我的回答。你可以让Xcode警告你代码运行时间过长。 - greencardigan
非常感谢您的提示!!我在数组字面量中枚举值上有一个拼写错误。它没有报告语法错误,而是一直挂起,我不知道出了什么问题和原因。(Xcode 10.3) - Hans Terje Bakke
显示剩余3条评论

23
  1. 关闭任何已打开的Xcode
  2. rm -rf ~/Library/Developer/Xcode/DerivedData (删除DerivedData文件夹)
  3. 右键点击你的PROJECT_NAME.xcworkspace,选择“显示内容”,并删除“xcuserdata”文件夹

10

如果您正在尝试解决索引问题并且已经浏览到页面的这个位置,可以尝试另一种方法!

尝试将以下标志添加到构建设置中。

-Xfrontend -warn-long-expression-type-checking=400

build settings flag

它将导致编译器在推断复杂表达式的时间很长时发出警告。

warning

这可能会导致构建错误,但在找到缓慢的表达式并删除构建标志后,该错误将消失。


2
这是完美而准确的答案。 - jaya raj
但是现在我在构建过程中遇到了困难。 - Mert Aksoy

10

我曾经遇到过类似的问题,发现自己意外地将一个类定义为其自身的子类。编译时没有任何警告或错误提示,但程序一直卡住了。

class mainClass : mainClass
{
    ...
}

事实上,这就是我遇到的索引卡住的解决方案。非常好的答案! - rghome
为什么这会导致 Xcode 的子进程崩溃,而不像其他代码错误一样产生错误? - Kirkland

7
当使用Xcode 6时,如果出现以下信息:

等待 make

可能是因为已经有一个make实例正在运行。杀掉该进程即可进行索引。虽然很傻,但对我有效。

这对我解决了问题。我有一个在后台运行“make start”的Docker容器。 - Devin Young

7
  • 首先,断开网络连接。无论是有线连接还是无线连接都应该关闭。
  • 其次,结束com.apple.dt.SourceKitService进程。然后XCode将重新进行索引而不会卡在原地。

enter image description here


2
在 Xcode 10 中似乎被称为 com.apple.dt.SKAgent - lemonmojo
哇,谢谢你,终于有一个简单可行的解决方案了。在2022年,名称有些变化: "com.apple.dt.SourceKitService" 现在只被称为 "SourceKitService",还有另一个任务叫做 "swift.frontend",两者都占用了99%的CPU。我杀掉了它们,构建和索引工作又恢复正常了。 - Hussein

7
这种情况发生在我身上。如果你正在使用cocoapods,请执行以下步骤:
  1. 删除project.xcworkspace
  2. 在终端中使用pod install重新安装pods
  3. 这将创建一个新的project.xcworkspace
  4. 打开新的project.xcworkspace
  5. -> 清理
  6. -> 构建

1
谢谢。我在Xcode11.1中遇到了问题,它对我来说无法工作。 - Rahul Parikh
1
在 Xcode 11.5 中也遇到了这个问题,通过这种方式解决了。 - frankenapps
1
当我尝试查看我的项目以更改版本号时,我遇到了这个问题,我卡在了project.pbxproj的“Begin PBXBuildFile section”上。非常感谢! - Dazzle
1
谢谢!它在Xcode-13.2.1中运行成功。 - iHarshil

4

这是一个 Xcode 的 bug(Xcode 8.2.1),我已经向 Apple 报告了。当你有一个大的字典文本或者嵌套的字典文本时,就会发生这种情况。你需要将字典拆分成较小的部分,并使用 append 方法添加它们,直到 Apple 修复这个 bug。


1
截至2021年10月,Xcode 13.0仍在发生此问题。 - Abdullah Umer

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