任何与Xcode合作的人都知道它对于构建设置,链接器错误和其他一般化的废话有多挑剔。添加任何依赖管理器,如CocoaPods,并且几乎每次构建时都会删除派生数据。
所以我的问题是双重的:
Derived Data究竟负责什么?
和
如果我完全放弃使用,重定向到/dev/null
会怎样?
答案 0 :(得分:3)
DerivedData
文件夹包含从Xcode处理派生的所有数据。这包括任何构建工件,例如标头映射,中间构建步骤(.o
文件等)和构建产品(编译代码)。它是任何和所有构建日志,运行日志和测试结果的目标。最后,它包含用于代码着色和搜索的任何索引缓存。
基本上,它会打破一切。完全按照你对/dev/null
的说法进行构建会导致极大的问题,主要是因为它实际上是在尝试读取和写入文件而不是。
假设,如果它可以在没有DerivedData或任何类似的东西的情况下存在(例如,Xcode过分依赖于Build/
文件夹),编译将会非常缓慢且内存耗尽。
Xcode中与DerivedData
相关的奇怪行为,以及清除此类问题所解决的问题,主要是因为缓存失效非常困难。喜欢,真的很难。