【问题标题】:Xcode disable recompiling every time I Git Checkout每次我 Git Checkout 时 Xcode 都禁用重新编译
【发布时间】:2016-09-09 23:55:04
【问题描述】:

我在一个大型 Xcode iOS 项目上工作,大约需要 20 分钟才能从干净状态完全编译。我已经在调试模式和dYSM 中禁用了编译器优化,所以我相信这是有史以来最快的编译器。每次我git checkout 另一个分支时,即使是一个简单的文件更改,Xcode 都必须重新编译所有内容,这需要很长时间,并且会减慢我的速度。我能做些什么来禁用它吗?谢谢!

【问题讨论】:

  • 禁用优化会增加编译时间,具体取决于源代码的复杂性。签出具有不同分支的多个存储库。每当您更新文件的时间戳时,它都会重新编译。
  • 拥有多个存储库是我目前正在做的事情。我按照此处的建议从构建设置中删除了-O 设置:labs.spotify.com/2013/11/04/…
  • 所以它会重新编译所有更新了时间戳的文件?
  • 您是否尝试过使用 git worktrees 而不是一直切换分支? github.com/blog/…
  • 不,我没有,但我会跟进。感谢您的建议!

标签: xcode


【解决方案1】:

我观察到git checkout 将文件的文件创建/修改日期重置为现在。我认为 Xcode 看到了这种情况发生了变化,并将其视为文件背后发生变化的信号。

【讨论】:

  • 你的意思是它重置本地仓库中所有文件的文件创建/修改?有没有办法在 git 端禁用它?
  • 这是一个想法:您可以手动从另一个分支中仅签出那些不同的文件。所以只有他们会重置他们的日期,只有他们会重新编译(如果我的理论关于 Xcode 所做的事情是正确的)。
  • 感谢您的链接。这看起来真的很有帮助,我想我可以跟进它。签出某些文件部分只能真正适用于小的分支差异,但我绝对可以记住这一点。
  • 这可能值得向 Apple 提交增强请求。你有一个引人注目的用例;这肯定经常出现在大型项目中!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多