Xcode DerivedData目录在删除后保持返回

时间:2018-02-13 07:22:50

标签: ios xcode git core-data

DerivedData不断返回我的项目,无论我尝试删除它的方式有多少。这导致编译错误。

我认为这与我删除我的Core Data模型类和扩展(我意识到我需要添加一个额外的属性,这似乎比迁移更容易,因为我还没有实际实现它)。我删除了文件并删除了对这些文件的引用,但这似乎没有用。这是我收到的错误:

enter image description here

我试过了:

- 清洁
- 清理构建文件夹
- 重置模拟器内容和设置
- 使用“git rm -rf --cached”删除DerivedData文件夹 - 使用Finder,Xcode和终端发送DerivedData文件夹 - 删除模块缓存
- 删除Xcode首选项(默认删除com.apple.dt.Xcode)
- 以上所有结合退出Xcode和/或重新启动我的电脑
- 在SO上的以下主题中提出所有建议:

Xcode 6 Swift code completion not working

How can I delete derived data in Xcode 8?

Xcode keeps remaking derived data folder after I delete it

https://forums.developer.apple.com/thread/81265

https://iosdevcenters.blogspot.com/2015/12/how-to-delete-derived-data-and-clean.html

对于这一切的纯粹搞笑,当我尝试运行项目时,我在Finder中打开了我的项目文件夹,并且只要按下播放按钮就可以看到正在创建DerivedData文件夹。好时光。

这是我在Xcode中的构建/编译设置的视图,以显示我没有列出这些文件两次:

enter image description here

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您无法阻止Xcode为您的项目生成派生数据。无论您删除多少次文件夹,它都会重新生成。

我在过去遇到类似的问题,编译时错误指向派生数据,但是其他因素导致问题。

从它的外观来看,你的项目中包含了两个文件,以及你的名字冲突。检查您是否在捆绑/编译资源的构建设置中没有重复项。

答案 1 :(得分:1)

该错误表明您已启用Core Data代码生成,并且还在源代码存储库中拥有生成的代码(或至少具有相同名称的文件)的副本。这就是为什么它抱怨重复的原因。一个位于Model文件夹中,生成的副本位于派生数据中。

您可以通过

解决此问题
  • 更改数据模型中的设置,以便Core Data不再为此实体生成代码,或
  • 删除您的副本并让Core Data做其事。

要么是有效的,应该有效。或者,如果文件实际上以某种有意义的方式不同,请重命名您的文件以使名称不会发生冲突。

在相关的说明中,派生数据文件夹总是会回来,因为Xcode会在编译项目时放置它生成的所有内容。它不仅仅是生成的源代码,还包括编译的目标代码文件以及最终的应用程序本身。它回来是因为Xcode是如何编译项目的。