DerivedData不断返回我的项目,无论我尝试删除它的方式有多少。这导致编译错误。
我认为这与我删除我的Core Data模型类和扩展(我意识到我需要添加一个额外的属性,这似乎比迁移更容易,因为我还没有实际实现它)。我删除了文件并删除了对这些文件的引用,但这似乎没有用。这是我收到的错误:
我试过了:
- 清洁
- 清理构建文件夹
- 重置模拟器内容和设置
- 使用“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中的构建/编译设置的视图,以显示我没有列出这些文件两次:
我该如何解决这个问题?
答案 0 :(得分:1)
您无法阻止Xcode为您的项目生成派生数据。无论您删除多少次文件夹,它都会重新生成。
我在过去遇到类似的问题,编译时错误指向派生数据,但是其他因素导致问题。
从它的外观来看,你的项目中包含了两个文件,以及你的名字冲突。检查您是否在捆绑/编译资源的构建设置中没有重复项。
答案 1 :(得分:1)
该错误表明您已启用Core Data代码生成,并且还在源代码存储库中拥有生成的代码(或至少具有相同名称的文件)的副本。这就是为什么它抱怨重复的原因。一个位于Model
文件夹中,生成的副本位于派生数据中。
您可以通过
解决此问题要么是有效的,应该有效。或者,如果文件实际上以某种有意义的方式不同,请重命名您的文件以使名称不会发生冲突。
在相关的说明中,派生数据文件夹总是会回来,因为Xcode会在编译项目时放置它生成的所有内容。它不仅仅是生成的源代码,还包括编译的目标代码文件以及最终的应用程序本身。它回来是因为Xcode是如何编译项目的。