何时以及为什么应该在XCode中清理构建?

3

偶尔,在XCode中遇到令人烦恼的问题时,解决方案是单击“Product”→“Clean”,这似乎可以清除一些缓存并使问题消失。

但它实际上是在做什么呢?更重要的是,我应该在什么时候这样做?处理Core Data时似乎更经常需要,但我没有真正跟踪过。

作为一个副问题,为什么这是必要的?XCode似乎在后台执行很多操作(自动保存,自动编译等)。为什么这也不会在后台发生呢?

2个回答

0

我几乎可以确定XCode会失去一些东西的轨迹,有时候它并没有重新编译(或链接,不确定)所有需要的东西。我经常不得不采取清理和构建的方式来解决问题,比我预期的要频繁得多。也许只是我这个人的问题,但我怀疑... XCode是我使用过最多漏洞的IDE。


0

这是因为当你处理一个非常大的项目时,有很多文件和对象之间存在巨大的差异。想象一下,你需要一个小时来重新编译整个项目,所以在执行此操作之前你会三思而后行。但在我们的世界中,这是一个快速任务。

XCode使用make程序。因此,它只编译已更改的内容。

我可以列出一些需要这样做的情况:

  • 每次你创建一个App Store应用程序时。这是一个安全的做法。
  • 每次你使用XCode快照时。当我恢复一个项目并构建应用程序时,我遇到了麻烦。XCode使用旧的编译文件,花费了很多时间去查找它们。
  • 也许当你使用git恢复旧代码时。这与快照的想法相同。
  • 当你删除或重命名项目中的文件时。它不会删除已编译的文件,因此程序可以正常工作,但如果重新编译,将会看到错误。
  • 当你发现构建行为有些奇怪时。或者只是为了确保XCode仅使用你的新文件。

我不太记得了,但我曾经看到过使用旧的#defines来构建。重新构建可以让你的程序更加安全。但并不需要一直这样做。


但是什么是“奇怪的行为”呢?我遇到过错误(例如键值兼容性),这可能是由于我的代码中存在真正的错误,或者只是一个不干净的构建。我正在努力找出如何区分这两者,而不是在桌子上敲打几个小时,直到我记起清理为止。 - Praveen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接