我已经工作了 2 个月的项目无缘无故停止工作,因为 Xcode 卡在“索引”上。我不能再构建项目了。如果我尝试构建,Xcode 会冻结,我必须强制退出。这只发生在这个项目中。
我尝试清理所有派生数据,但没有帮助。
我正在使用 Xcode 4.5.2。
有任何想法吗?
如果您的问题没有解决,请用您的备份文件替换该文件。
Nuking 派生数据是在所有 Xcode 行为不端的情况下尝试的第一件事
我遇到了这个确切的问题,它是由 20 项数组文字引起的。不得不切换到不同的语法。很傻。
rm -rf ~/Library/Developer/Xcode/DerivedData
我有一个类似的问题,发现我不小心将一个类定义为它自己的子类。我没有收到任何警告或错误,但编译卡住了。
class mainClass : mainClass
{
...
}
如果您尝试解决索引问题并且您在页面下方这么远,请尝试另一件事!
尝试将此标志添加到您的构建设置中。
-Xfrontend -warn-long-expression-type-checking=400
如果编译器需要很长时间才能推断出复杂的表达式,则会导致警告。
这可能会导致构建错误,在您找到慢速表达式然后删除构建标志后该错误就会消失。
使用 Xcode 6 时,它说
等待制作
可能是 make 的一个实例已经在运行。终止进程和索引继续进行。愚蠢,但为我工作。
按住 alt > 产品 > 清理构建文件夹
这是一个 Xcode 错误(Xcode 8.2.1),我已经向 Apple 报告过,当你有一个大字典文字或嵌套字典文字时,它会发生。您必须将您的字典分解成更小的部分并使用 append 方法添加它们,直到 Apple 修复该错误。
这发生在我身上。如果您使用的是 cocoapods,请执行以下操作:
对我来说,完全关闭 Xcode 然后重新启动项目是可行的。
这不是原始问题的解决方案,我不相信,但在删除文件和文件夹等之前尝试更简单的事情。感谢这个想法的答案。
我有一个类似的问题,Xcode 会花费大量时间进行索引,并且会经常挂起构建项目,此时我不得不强制退出并重新启动 Xcode。这很烦人。
然后我注意到项目中有一个关于不正确分配self
为代表的警告。果然,类声明中缺少协议。请注意,OP 的示例代码中有类似的分配(尽管无法从示例中判断是否声明了正确的协议):
leaderboardController.leaderboardDelegate == self;
解决该警告后(通过正确声明实现的协议),Xcode 停止了行为不端。另外,我应该注意到,自从协议方法被实现以来,该项目确实执行正确。只是 Xcode 无法确认该协议实际上应该由该类实现。
对我来说,我犯了一个愚蠢的错误。我写了一个这样的类:
class A: A {
.......
}
一个类继承自身导致冻结。Xcode 没有消息提示。
没有什么对我有用,我的项目太大(将目标c
、、、和文件与 j2obj 合并)。我已经禁用了 Xcode 索引并且几个月没有代码完成工作(这很痛苦)。但最后我找到了解决方法。这个想法是保持 Xcode 对代码进行索引,但使用外部工具(如.c++
swift
java
cputhrottle
所以首先你需要在终端安装 cputhrottle
冲泡安装 cputhrottle
然后像这样限制Xcode索引过程(20 = 20%)
sudo cputhrottle $(pgrep -f com.apple.dt.SKAgent) 20
我在这里用模式细节公开了我的“解决方案”:How to prevent Xcode using 100% of CPU when indexing large projects
我正在使用 Xcode 11.4.1,我在几个项目中遇到了同样的问题。每次,当互联网连接丢失时,索引就会启动。最好的解决方案(这只是我基于观察这个问题的意见):
- 关闭互联网并终止“com.apple....”进程,然后重新启动 Xcode(打开连接)
或更容易
- 只需重新启动 Mac(通过互联网)
在 Xcode 6.4 中有类似的问题。进度条指示“索引”已“暂停”。尝试删除 project.xcworkspace,然后如上所述删除派生数据。似乎没有帮助。注意到上面的帖子还建议修复警告,并且由于我继承了这个有 180 条警告的庞大项目,我对自己说,“这到底是什么看起来像是修复警告的好日子”。当我修复警告时,半小时后,我注意到“索引”进度条从 10% 增加到大约 20%。一个小时后,到了50%,又一个小时到了80%,又过了半个小时就完成了!结论:在上述建议中添加“吃午饭或午睡”。
我在 Xcode 7.0 beta 中遇到了同样的问题。就我而言,PROJECT 和 TARGETS 的“构建设置”的“配置文件”和“产品包标识符”的值不同。我为它们设置了相同的值。而且我还对“appName”和“appNameTest”的目标使用了相同的值。然后关闭项目并重新打开它。这解决了我的情况。
就我而言,删除派生数据目录没有帮助。显然我有一个文件被另一个进程锁定,因为在关闭了几个终端窗口和 emacs 并终止了 react-native 打包程序进程之后,一切都解决了。
我在一些使用 Xcode 9.3.1 的项目中遇到过这个问题,在我的情况下,问题是由于某些原因 Xcode 不喜欢的一些快速代码。这个问题很难解决,因为很难找到导致问题的文件。
当我遇到这个问题时,我从 Xcode 项目中删除了一些文件(删除引用)并尝试测试索引是否有效。我这样做的过程
在我的情况下,我在同一个文件中有一个带有响应式扩展的类定义,由于某种原因 Xcode 不喜欢它,我将响应式扩展移动到另一个文件,现在索引工作正常。
也停止运行应用程序。如果您的 xcode 正在运行另一个应用程序,请先停止它,然后您应该继续索引。
对我来说,原因是我同时在主编辑器和助理编辑器中打开了同一个文件。一旦我关闭了助理编辑器,它就通过了。(Xcode 版本 7.2.1)
关闭您的 Xcode ,关闭任何 git 客户端(源代码树或终端)(如果已打开),最后重新启动您的项目。
最近在 XCode 7.3.1 上遇到了这个问题——对我来说,我注意到 CleanMyMac3 的 RAM 使用率达到 100%。在我重新启动机器后,这个问题神奇地自行解决了。然而,平心而论,我已经尝试了接受的答案,所以你需要在重新启动之前做同样的事情以防万一:-)
我通过简单地从我的设备中删除应用程序并重建来解决这个问题。
我在 swift 2.2 中遇到了同样的问题
它与泛型函数重载函数有关
func warnLog() {
print("Warning line: \(#line) file: \(#file) ")
}
func warnLog<T>(input:T? = nil) -> T? {
print("Warning line: \(#line) file: \(#file) ")
return input
}
func warnLog<T>(input:T) -> T {
print("Warning line: \(#line) file: \(#file) ")
return input
}
我需要做的就是删除一个未使用的重载
func warnLog<T>(input:T? = nil) -> T? {
print("Warning line: \(#line) file: \(#file) ")
return input
}
我的情况:不是 project.xcworkspace 文件,也不是 Derived Data 文件夹。
我已经浪费了很多时间。更糟糕的是,没有错误消息。Xcode 方面没有任何线索。完全输了。
最后这个函数(有10多个参数)负责。
func animationFrames(level: Float,
image: String,
frame0: String,
frame1: String,
frame2: String,
frame3: String,
frame4: String,
frame5: String,
frame6: String,
frame7: String,
frame8: String,
frame9: String,
frame10: String) {
}
要疯了!事实是令人担忧(因为没有语法错误,或者任何类型)
对于 XCode 9.3 索引问题 - 卸载 XCode 并从零重新安装。为我工作。
当我的机器没有交换空间时,这个问题发生在我身上。关闭了几个程序和浏览器选项卡,构建在 30 分钟后突然成功。与我这边的派生数据、锁定文件等无关。
我已经尝试了所有列出的东西,索引一直冻结。这对我有帮助:如果您的索引被冻结,并且您有一个或多个 swift 进程占用 99% 的 cpu - 只需终止这个 swift 任务,稍等一下,进度应该会移动。它可以重复,直到完成,在我的情况下,我杀死了该过程 7 次,但最后,索引已完成!
在 SwiftUI 项目中遇到了这个问题。结果我的一个 SwiftUI 视图有一个错误声明的变量。我有:
@EnvironmentObject var roomViewModel
我需要的地方:
@EnvironmentObject var roomViewModel: RoomViewModel
没有编译器错误,只是无休止的索引。在我修复了错误之后,项目很快就建成了。
是的,每次我尝试打开我的 Main.Storyboard Xcode 都会突然冻结。这仅发生在我的一个项目中,然后发生在我在 Xcode 上的所有项目中。
尝试了以下没有运气:
删除 Xcode 并重新安装它。
因素重置我的mac。
创建一个新项目并将文件夹移动到新项目。也不适合我。
解决方案[就我而言],我相信你们大多数人都会遇到这种情况。
我注意到名为“IBAgent-iOS”的进程消耗了我大部分的 CPU 资源。每次我想打开情节提要时,它都会消耗高达 97% 的 CPU 资源!
所以我需要去活动监视器>搜索这个进程名称“IBAgent-iOS”(主要出现在顶部)>点击它并强制退出。
com.apple.dt.SKAgent
如果没有帮助:
rm -rf ~/Library/Developer/Xcode/DerivedData
如果没有帮助:
如果没有帮助:
如果没有帮助:
运行您的项目构建并附加警告。为此,您需要编写:
-Xfrontend -warn-long-expression-type-checking=100
到以下地方:
并在所有地方优化代码。
如果没有帮助:
Z. 卸载 XCode 并从头开始安装
如果没有帮助:
Z+1。El Belga 的答案https://stackoverflow.com/a/50541767/4423545
我知道这是一个很老的问题,但问题仍然存在。这是我发现的经历。
在 NavigationLink 中,我给了一个不带参数的 View 参数。它挂起构建和索引,但没有引发编译器错误。那不酷。
这是我复制它的方式。在包含导航视图的顶级视图中,我在堆栈内的列表中有以下块。所以我的顶级视图的层次结构类似于(伪代码):
Body {
VStack {
[CustomViewForPageHeader]
List {
(the code block pasted below)
(some other things)
}
}
}
有问题的部分是这样的:
if 0 < viewModel.taskUpdates.count {
Section( "Chore updates"){
ForEach(viewModel.taskUpdates, id:\.id){ update in
if "complete" == update.statusType {
NavigationLink {
CompletedTaskApprovalView( update: update )
} label: {
Text(update.formattedMessage)
.padding(.vertical)
}
}
if "reject" == update.statusType {
Text(update.formattedMessage)
.padding(.vertical)
}
}
}
}
记得我在重组一些数据时删除了参数,我很沮丧编译器没有对此表示不满。我注释掉了整行,所以它看起来像:
if 0 < viewModel.taskUpdates.count {
Section( "Chore updates"){
ForEach(viewModel.taskUpdates, id:\.id){ update in
if "complete" == update.statusType {
NavigationLink {
//CompletedTaskApprovalView( update: update )
} label: {
Text(update.formattedMessage)
.padding(.vertical)
}
}
if "reject" == update.statusType {
Text(update.formattedMessage)
.padding(.vertical)
}
}
}
}
你瞧,哇,它工作得很好。
取消注释并删除参数...
if 0 < viewModel.taskUpdates.count {
Section( "Chore updates"){
ForEach(viewModel.taskUpdates, id:\.id){ update in
if "complete" == update.statusType {
NavigationLink {
CompletedTaskApprovalView()
} label: {
Text(update.formattedMessage)
.padding(.vertical)
}
}
if "reject" == update.statusType {
Text(update.formattedMessage)
.padding(.vertical)
}
}
}
}
whammo,redux 再次运行良好。
当我稍微修改数据模型时,我从 CompletedTaskApprovalView 中删除了所有内容,所以它看起来像这样(实际上只是一个占位符):
导入 SwiftUI
struct CompletedTaskApprovalView: View {
var body: some View {
Text("Approve chores")
.font(.title)
}
}
编译器不应该让我尝试给它一个参数。所以我觉得这很奇怪,我想知道我的视图的代码文件是否有某种时髦的不可见损坏。在顶层视图的文件中,我在底部添加了一个新视图(SomeTestView)......
struct SomeTestView: View {
var body: some View {
Text("this is just a thing")
}
}
并将其添加到我的循环中..
if 0 < viewModel.taskUpdates.count {
Section( "Chore updates"){
ForEach(viewModel.taskUpdates, id:\.id){ update in
if "complete" == update.statusType {
NavigationLink {
//CompletedTaskApprovalView()
SomeTestView()
} label: {
Text(update.formattedMessage)
.padding(.vertical)
}
}
if "reject" == update.statusType {
Text(update.formattedMessage)
.padding(.vertical)
}
}
}
}
工作正常。
在上面的实例化中添加了一个参数(但没有在视图的 Struct 定义中添加一个参数)......它的行为与原始问题相同 - 似乎无休止地挂起构建和索引,并且从不吐出参数错误我会期待的。
if 0 < viewModel.taskUpdates.count {
Section( "Chore updates"){
ForEach(viewModel.taskUpdates, id:\.id){ update in
if "complete" == update.statusType {
NavigationLink {
//CompletedTaskApprovalView()
SomeTestView( fish: "sandwich" )
} label: {
Text(update.formattedMessage)
.padding(.vertical)
}
}
if "reject" == update.statusType {
Text(update.formattedMessage)
.padding(.vertical)
}
}
}
}
所以这很奇怪,而且 100% 令人失望。我不想进一步诊断它,但是......如果有人仍然遇到这个问题,请尝试一下;仔细检查您的参数和声明,也许您会发现类似的问题。
奇怪的。令人沮丧。令人困惑。恼人的。
Command-Option-Shift-K 清理构建文件夹。
我也面临这个问题。我注意到我已经打开了同一个项目两次。
所以 QuitXCode > 打开你的项目并确保只打开一个实例 > Clean > CleanBuild Folder in some cases > build.
它应该工作