停止 xcode 索引
Posted
技术标签:
【中文标题】停止 xcode 索引【英文标题】:Stopping xcode from indexing 【发布时间】:2012-12-07 05:42:04 【问题描述】:我一直在使用 xCode 4.5.2,并且注意到如果您正在编制索引,则需要停止一切并让它完成工作,否则您会陷入困境。这成了一个问题,因为这个项目很大,而且索引需要很长时间才能完成,而且它会不断地做。一个例子是它索引了整个项目,在我对这个项目做了一点工作之后,它开始重新索引了几乎 75% 的项目。我检查了源代码控制,在我处理它的时间里,这个项目没有任何变化。
有没有办法完全停止索引,或者减少索引的次数?关闭索引有什么缺点吗?我在之前的问题中读过,据说它阻止了自动完成和搜索项目。
【问题讨论】:
【参考方案1】:只需在终端中运行此命令即可关闭索引:
defaults write com.apple.dt.XCode IDEIndexDisable 1
要重新打开它,请运行以下命令:
defaults write com.apple.dt.XCode IDEIndexDisable 0
(注意:显然您需要删除此键才能使更改生效,但是,我只使用了上面的命令并且它工作正常。所以如果执行上述操作不起作用,请尝试删除该键)
编辑
抱歉,错过了部分问题。是的,它会让搜索变得不那么快。也许自动完成将被禁用。索引使 Xcode 能够快速记住您所做的事情。将其关闭会使其更难使用,但会缩短加载时间。
【讨论】:
您实际上必须删除密钥才能重新启用索引,请参阅***.com/questions/7328041/… @StephanTolksdorf,嗯,我使用了上面的命令,它重新启用就好了。但我更新了我的答案以防万一。谢谢! 它在 XCode6 中也不起作用。关闭它并在启动 XCode 时立即看到“索引”>:-( XCode 6.x 似乎会在启动后不久覆盖该值。例如:$ defaults read com.apple.dt.XCode IDEIndexDisable
输出 1
,然后在 XCode 启动后不久输出 The domain/default pair of (com.apple.dt.XCode, IDEIndexEnable) does not exist
它对我有用:我只需要写出带引号的密钥:defaults write com.apple.dt.XCode "IDEIndexDisable" 1
(来源:developer.apple.com/legacy/library/documentation/Darwin/…)【参考方案2】:
对于 Xcode 10.1,您想要这个的原因是什么(我的是“发生内部错误。编辑功能可能受到限制”):
defaults write com.apple.dt.Xcode IDEIndexDisable -bool true
关闭 Xcode,运行它,打开 Xcode。
【讨论】:
【参考方案3】:如果您正在处理一个大型项目并使用 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" )
【讨论】:
我把这个放在哪里?以上是关于停止 xcode 索引的主要内容,如果未能解决你的问题,请参考以下文章