为啥清除 Derived Data 会清除 Xcode 中的各种错误?

Posted

技术标签:

【中文标题】为啥清除 Derived Data 会清除 Xcode 中的各种错误?【英文标题】:Why does clearing Derived Data clear up various errors in Xcode?为什么清除 Derived Data 会清除 Xcode 中的各种错误? 【发布时间】:2016-12-16 20:15:01 【问题描述】:

通常,人们在 xcode 中遇到各种问题或构建错误,并被告知清除派生数据以解决他们的特定问题。什么是派生数据,删除它可以解决各种问题?派生数据中包含哪些内容?

【问题讨论】:

大量构建信息存储在那里,有时这些信息与您所做的更改发生冲突并且 Xcode 不会更新它,因此清理它可以确保 Xcode 构建您的代码完全干净的状态。 【参考方案1】:

Xcode 会在该文件夹中缓存大量数据,包括应用的资产(图像、音频)、编译的代码/库等。

Xcode 这样做是为了加快构建/运行/调试周期,如果它必须每次都重新构建每一个东西,那么您可以在几秒钟内完成微小的更改和重新构建/测试。

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

清除您的 Derived Data 文件夹(最好在关闭 Xcode 的情况下),下次强制进行完整构建,代价是需要额外的时间。当然,与尝试调试和发现实际上可能不存在的问题相比,编译所花费的额外时间微不足道。

【讨论】:

顺便说一句,我是一个名为 Watchdog for Xcode 的应用程序的开发人员:itunes.apple.com/us/app/watchdog-for-xcode/…,它为您管理 Derived Data 文件夹。它会在特定时间自动为您清除,让您的生活更轻松。

以上是关于为啥清除 Derived Data 会清除 Xcode 中的各种错误?的主要内容,如果未能解决你的问题,请参考以下文章

如果我按下“全部清除”按钮,为啥我的前台服务会停止

为啥 jQuery Ajax 帖子会清除所有使用 load() 的 div?

为啥在创建 UIWebView 后清除 NSUserDefaults 会导致 EXC_CRASH?

反应JS |为啥在输入更改时更新此状态挂钩会清除输入以防止写入任何内容?

使用 redux-form 和 react-select.creatable 为啥模糊事件会清除输入?

为啥我的 Mobile Safari 缓存不会清除?