gpt4 book ai didi

ios - 我什么时候可以安全地删除 Xcode DerivedData 文件夹?

转载 作者:行者123 更新时间:2023-12-04 19:53:24 24 4
gpt4 key购买 nike

我一直在iOS工作项目。关于Xcode Derived Data其内容由构建系统生成的文件夹,有很多 Stackoverflow 帖子,即 how to remove derived data folderis it safe to remove derived data folder等,但没有我正在寻找的。我的问题是知道什么时候应该删除派生数据文件夹,什么时候不应该?换句话说,在什么条件下,这些派生数据变得不可重用,为什么?在项目的资源或配置更改或其他任何事情后,这些派生数据是否会过时?我经常看到许多问题在删除派生数据后得到解决,但我们通常不会尝试了解问题的根本原因。

我可以简单地说,直到.xcodeproj文件更改,导出的数据可以安全重用吗?

问题背景 :在我的项目中,我有一个证明构建系统,以便每个 CL 在合并到远程分支之前都需要通过证明构建。因此,当我应该(或不应该)重用派生数据文件夹以使证明构建系统具有高性能时,我需要了解架构师的风险。

最佳答案

遗憾的是,删除 DerivedData已成为尝试和解决构建问题的全部方法。如您所知,您可以删除 DerivedData在任何时间点都没有问题(除非您正在构建)。关于何时安全的细微差别有点复杂。在实践中,我通常发现构建之间代码的重大更改可能会出现问题。同样,更改 Xcode 版本也可能存在问题。这里的关键词是可以,这并不意味着它会。

我不相信有任何明确的方法可以知道何时清除,这就是为什么我认为您发现大多数人通常会在有人遇到构建问题时问“您是否删除了 DerivedData”作为第一个问题。

恕我直言,我认为 Xcode 在 DerivedData 中做了一些微妙的缓存,因为我在无法追踪的奇怪情况下构建失败。如果 Xcode 有一些与此缓存相关的细微错误,我不会感到惊讶。一般来说,我只信任项目的DerivedData 的命令行删除。 .如果我格外小心,我还会清除所有相关的库/框架以及 ModuleCache (在 DerivedData 中)。 /var/folders中也有一些伏都教.不确定情况是否仍然如此,但我发现自己在那里用外科手术核弹了一些东西。是的,不好。但我也是那种会编辑 project.pbxproj 文件来修复它的人,所以我想我会谨慎行事。

让我问你这个问题。什么更重要? “防弹”或构建时间?我一直在维护或升级一些应用程序的构建系统。我总是把一切都做为一个干净的构建。这始终是从源代码控制中提取的新内容,然后定义了 DerivedData在工作区中(这些是 Jenkins 构建并配置为使用干净的工作区)。这几乎避免了与需要删除 DerivedData 相关的构建问题。 .由于某些 Xcode 巫毒教,我看到了太多奇怪的问题。如果您有构建错误,最好不要添加红鲱鱼。

如果您确实发现构建以及所需的任何测试花费的时间太长,您可以开始设计其他策略来帮助使其更易于管理。这变得非常依赖项目。例如,在我正在处理的一个项目中,我将所有库移动到预构建版本。出于某种原因,他们设置了在构建过程中必须构建所有 3rd 方库(如 openssl)的地方。这也意味着开发人员在他们第一次构建或任何时候清理时都会遭受这种构建惩罚。

关于ios - 我什么时候可以安全地删除 Xcode DerivedData 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com