2016-12-16 36 views
1

很多时候,人们在xcode中遇到各种问题或构建错误,并被告知要清除派生数据来解决他们的特定问题。 Derived Data是什么?删除它会清除各种问题? Derived Data中包含了哪些内容?为什么清除派生数据会清除Xcode中的各种错误?

+0

大量的构建信息存储在那里,有时这些信息与您所做的更改冲突,Xcode不会更新它,因此清理它可以确保Xcode从完全干净的状态构建您的代码。 – EmilioPelaez

回答

3

Xcode的缓存文件夹中的很多数据,包括资产为您的应用程序,(图像,声音),编译后的代码/库等

的Xcode这样做是为了加快构建/运行/调试周期,如果它不得不每隔一段时间重新构建每一件东西,就可以在几秒钟内做出小改动和重建/测试。

但是,在某些情况下,您所做的更改将不会被Xcode检测到,因此不会被纳入您的下一次构建/运行。这是当你遇到奇怪的问题时,一些是显而易见的,例如未被合并的改变的图像,并且你会在你的构建中看到旧图像。如果错过的更改是您的代码中没有被合并的逻辑,那么这个问题就不会那么明显,并可能显示为不正确的结果甚至崩溃。

清理派生数据文件夹(理想情况是Xcode关闭),下次强制完整构建,但需要花费额外的时间。当然,花费在编译上的额外时间与尝试调试和发现实际上不存在的问题的时间相比毫无意义。

+2

顺便说一句,我是Xcode的一个名为Watchdog的应用程序的开发者:https://itunes.apple.com/us/app/watchdog-for-xcode/id734258109?mt=12&uo=4&at=11lMGu&pt=17255&ct=SO为您管理派生数据文件夹。它会在特定的时间自动清除它,让你的生活变得更轻松。 –