31

我一直在使用 xCode 4.5.2,并且注意到如果您正在编制索引,则需要停止一切并让它完成工作,否则您会陷入困境。这成了一个问题,因为这个项目很大,而且索引需要很长时间才能完成,而且它会不断地做。一个例子是它索引了整个项目,在我对这个项目做了一点工作之后,它开始重新索引了几乎 75% 的项目。我检查了源代码控制,在我处理它的时间里,这个项目没有任何变化。

有没有办法完全停止索引,或者减少索引的次数?关闭索引有什么缺点吗?我在之前的问题中读过,据说它阻止了自动完成和搜索项目。

4

3 回答 3

63

只需在终端中运行此命令即可关闭索引:

defaults write com.apple.dt.XCode IDEIndexDisable 1

要重新打开它,请运行以下命令:

defaults write com.apple.dt.XCode IDEIndexDisable 0

(注意:显然您需要删除此键才能使更改生效,但是,我只使用了上面的命令并且效果很好。所以如果执行上述操作不起作用,请尝试删除该键)

编辑

对不起,错过了部分问题。是的,它会让搜索变得不那么快。也许自动完成将被禁用。索引是让 Xcode 快速记住您所做的事情的原因。将其关闭会使其更难使用,但会缩短加载时间。

于 2012-12-19T19:32:04.413 回答
13

对于Xcode 10.1,您想要这个的原因是什么(我的是“发生内部错误。编辑功能可能受到限制”):

defaults write com.apple.dt.Xcode IDEIndexDisable -bool true

关闭 Xcode,运行它,打开 Xcode。

于 2019-01-24T11:50:54.137 回答
4

如果您正在处理一个大型项目并使用 cmake 生成 xcodeproj,那么在向其中添加大型二进制文件时会遇到问题。如果 cmake 无法识别扩展名,默认情况下会将它们标记为“源代码”!

...然后这些二进制文件将被 xcode 索引,这意味着您的机器会不断索引(并且每次重新生成工作空间时都从头开始)。文件中的查找也不起作用(它只是挂起)。

一种简单的解决方案是标记您的二进制文件并告诉 xcode 忽略它们,例如像这样(cmake 3.2 及更高版本,否则不支持 XCODE_EXPLICIT_FILE_TYPE):

# fill cmake-variable with some files
file(GLOB MYGAME_BINARIES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "binaries/*")
# tag them as "not-sourcecode" ( maybe there is sth better than 'compiled', but it worked for my purpose)
set_source_files_properties( ${MYGAME_BINARIES} PROPERTIES XCODE_EXPLICIT_FILE_TYPE "compiled" )
于 2015-11-02T16:05:38.070 回答