如果代码有任何变化(虽然文件不在.pch中),每次都会重新编译完整的项目。
答案 0 :(得分:33)
更新2017/1/2
Xcode 8.2.1(对于我的项目)
尚未解决此问题如何生存?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
更新2016/12/17
此问题尚未在Xcode 8.2中得到解决。
更新2016/12/12
Atom到代码和命令行来构建和调试是我现在的选择。 希望Apple能尽快修复这个合法的错误。
更新2016/12/04
此问题似乎resolved with Xcode 8.2 (beta 2)。
但对我而言,即使我使用Xcode 8.2,我也无法解决这个问题。 你可以尝试一下(下载Xcode8.2 beta2 here)
构建系统•只有很小的时候,Xcode不会重建整个目标 发生了变化。 (28892475)
旧答案: 这是一个解决方法:
"构建设置"标签 - > " C语言方言" - >将其更改为"编译器默认"。
C语言方言"被设置为" GNU99"而不是"编译器 默认&#34 ;.以前标准是GNU99,但现在不是。在某些 点Xcode没有正确地迁移库项目设置 所以它被设置为GNU99。一旦我将其更改为GNU99,它就停止了 每次重新编译我的所有代码!
答案 1 :(得分:19)
转到产品 - >方案 - >编辑方案。 选择左侧列中的Build并取消选中“ Find implicit dependencies ”
但是,当您第一次构建项目时,此标志应保持检查状态。
答案 2 :(得分:6)
修复我只是关闭故事板,我用辅助编辑器打开源文件,同时打开故事板文件(关闭故事板 - 因为我没有对其进行任何更改)删除了所有不必要的编译
答案 3 :(得分:4)
<强>已更新强>
我能够做出的最大改进是模块化我的项目。特别模块化几乎所有其他类中使用的ORM层。通过将该代码移动到我的项目中的单独目标并将其作为模块导入,我能够大大缩短编译时间。当我进行构建时,Xcode不再决定重新编译不必要的文件。
现在我使用单文件编译方法进行快速增量调试构建。
此链接中还有一些其他好的建议,包括代码重构, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5
<强> OLD 强>
对于我来说,使用Xcode 9仍然是一个不变的问题。像许多人一样,我正在开发一个包含许多源文件的大型 swift 4 / cocoapods 项目,并且每次重新编译每个文件真气。
到目前为止,我通过以下设置获得了最佳效果。我建议你试一试,看看它对你有用。
添加了自定义用户定义的构建设置
注意:我没有整个模块优化的自定义用户定义设置。
答案 4 :(得分:3)
我用我的代码改变了一些关于前缀标题的东西,似乎解决了这个问题。我不知道哪一个确实做了这个伎俩,但是我会分享它们,希望它可以帮助其他人。如果您没有设置前缀标题,那么我想这不是问题(或问题是多方面的)。
@import MyModule
的代码)。 (对我来说,这和第1步是同一个。)如果仍然无效,您可以尝试从前缀标题中删除更多导入。可能有些事情绊倒......
答案 5 :(得分:3)
根据https://forums.developer.apple.com/thread/62737看起来他们正在积极开展工作,但解决方法是添加
HEADERMAP_USES_VFS = YES
在目标的构建设置下(项目 - &gt;目标 - &gt;构建设置 - &gt;用户定义)。
在过去一个月没有其他解决方案始终如一地运作之后,这个解决方案今天每次都适用于我。
编辑:有时候仍然会重新编译所有内容,尽管定义此设置似乎不那么频繁。
答案 6 :(得分:3)
在我的特定案例Xcode构建项目中查看@IBDesignable
指令的所有代码,因为我的故事板上有一些包含此@IBDesignable
属性的视图。
第二件事是我也在单独的窗口(不是制表符)中打开我的故事板,这是我的Xcode永远为所有模拟器构建的。
答案 7 :(得分:2)
Madhuri Mane对此非常正确。为了增加一点清晰度,需要注意一些要点:
如果您对目标所依赖的库/框架具有隐式依赖性,那么这仅适用。
如果&#34;找到隐含的依赖关系&#34;被禁用:
结果:在构建之前不会构建库 应用目标。应用程序目标无法构建。
修复:要确保不会发生第二种情况,您必须添加 进入目标列表的必要目标并正确排序。
关于该主题的来源和进一步阅读:https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
现在,如果你的整个项目都在一个目标内并且需要4分钟来编译,那么除了将其分解为框架以利用上述内容或找出编译的位置之外,你无法做很多事情。滞后。如果你正在使用像PaintCode这样的东西或者有大量的UIKit代码快速更改为Objective-c它会编译得更快
答案 8 :(得分:2)
转到目标的构建设置,并将Defines Module
设置为Yes
。
为我做了几个版本的工作,很快就声称这是一个明确的解决方法,但至少我们正在尝试。
答案 9 :(得分:2)
Apple昨天(11月14日)发布了Xcode的新测试版
Xcode 8.2 beta 2
此问题已在发行说明中标记为已解决。
构建系统
•只有很小的时候,Xcode不会重建整个目标 发生了变化。 (28892475)
这对我有用。构建速度像往常一样回归。 每个面对这个问题的人都应该试一试!
答案 10 :(得分:2)
请转到项目的构建设置并更改“C语言方言”。
更新xcode版本时,“C语言方言”设置为“GNU99”而不是“编译器默认值”。在某些时候,Xcode没有正确地迁移库项目设置,所以它被设置为GNU99。 这将解决问题
答案 11 :(得分:1)
如果您对Swift文件进行了更改,请开始构建应用程序,转到最后一个选项卡并单击构建日志,在“检查依赖项”阶段停止构建并再次运行它。在第二次运行时,它应该只构建您修改的文件。如果做得正确我发现它每次都有效。无需进行任何项目设置更改。
这似乎是Xcode中的一个错误。
如果您看到该应用正在进行完整版本,请停止构建并再次尝试此技巧。
如果您未对代码进行任何更改,请使用CMD + CTRL + R运行而不构建附加调试器的应用程序。不会构建应用程序,但可以帮助节省不必要的时间。
答案 12 :(得分:1)
通过应用取消选中&#34;查找隐式依赖关系&#34;来解决我的问题。溶液
但请记住,如果您正在使用cocoapods,请将此设置应用于您的pod项目,方法是从
中选择它。产品 - &gt;方案 - &gt;荚 - &#34;命名为yourprojectname&#34;
也适用于:
产品 - &gt;方案 - &gt; &#34;命名为yourprojectname&#34;
它对我有所帮助,所以我希望这个提示可以帮助别人。
由于
答案 13 :(得分:1)
尝试: 1.导航到Project 2.单击“生成设置” 3.检查OptimizationLevel是否设置为None以进行调试。 4.单击“添加用户定义的设置” 5.将SWIFT_WHOLE_MODULE_OPTIMIZATION设置为YES。
答案 14 :(得分:-1)
为了满足xcode的编译时间,可以利用IRAMDISK(虚拟内存盘)。非常有用和有效的方法来减少编译时间。
也可用于加速常用的应用程序。
参考以下链接下载和使用: http://iramdisk.findmysoft.com/mac/