Xcode 8做完整的项目重build

在将Swift + ObjC项目更新为Xcode 8(Swift 2.3)后,我发现50%或更多的时间,Xcode会完成项目的重build而不是增量构build。

所做的更改是添加简单的打印语句。 关于什么时候进行全面重build似乎没有任何逻辑。

它出现在它决定这个“检查依赖关系”阶段。 在Xcode 7上,这似乎不成问题。

有人遇到过这种情况么?

我已经发现这个工作是一致的,但是如果你修改一个包含在桥接头中的头文件,它将会编译swift文件。 如果你来回切换git分支,它也会进行完整的编译。

首先确保debugging的优化级别设置为None(不是全部模块优化) 在这里输入图像说明 在这里输入图像说明

然后,根据https://forums.developer.apple.com/thread/62737苹果员工(ddunbar):;

我们相信这个设定:

HEADERMAP_USES_VFS = YES 

在你的项目(或为你所有的目标)真实可能是一个有效的解决方法>对许多人来说。 这不能保证工作(这是它不是默认情况下已经打开的原因),但它应该适用于大多数项目。

这应该通过目标生成设置下的“添加用户定义的设置”添加。

在这里输入图像说明

在这里输入图像说明

好吧,这是为什么发生的一个答案,但我不知道解决scheme。 如果使用“其他Swift标志”-driver-show-incremental Xcode将根据它的依赖性输出它决定需要编译的内容。 你会看到像这样的东西:

 Queuing EditProfileViewController.swift because of dependencies discovered later Queuing ChangePasswordViewController.swift because of dependencies discovered later Queuing JoinViewController.swift because of dependencies discovered later Queuing JoinProfileViewController.swift because of dependencies discovered later Queuing FormViewBuildable.swift because of dependencies discovered later Queuing RadioTextFormView.swift because of dependencies discovered later Queuing TextFieldFormView.swift because of dependencies discovered later Queuing AccountProfileViewController.swift because of dependencies discovered later 

我想知道这是不是一个快速的问题,因为我没有转换之前的这个问题。 我在哪里做了一个小例子项目

FileA包含一个来自FileB的东西包含一个来自FileC的东西

甚至将文件专用更改添加到FileC,因为依赖关系,FileA,FileB和FileC排队等待编译。 我将在今天晚些时候在Xcode 7中testing这个例子来看看会发生什么。

所以看起来像swift 3的依赖分辨率不是很好。 我已经在另外两个快速的3个项目上testing了这个,同样的情况也是如此。 在任何文件中进行更改,并且每个文件都被编译。 在你开始使用大约15000行代码进行项目之前,感觉不会太慢,这也许就是为什么没有人谈论这个问题。 除非你有一个中等大小的SWIFT 3应用程序,否则你可能甚至不会注意到增量并发症是不正确的。 我会更新,如果我学到更多。

苹果昨天(11月14日)发布了Xcode的新testing版,

Xcode 8.2 beta 2

这个问题已经在发行说明中标记为已解决。

build立系统

•只有less量更改发生时,Xcode不会重build整个目标。 (28892475)

它正在为我工​​作。 build设速度像往常一样恢复。 每个面临这个问题的人都应该试一试!

https://developer.apple.com/download/

在编辑scheme>“scheme”>“生成”选项卡中取消选中“查找隐式依赖项”为项目文件修复了我的问题。 “复制迅捷标准库”还是永远..