探究Xcode New Build System对于构建速度的提升

本文详细介绍了Xcode的New Build System如何通过内容拆分、内容提取、遗留依赖清理等手段提高构建速度。Apple在Xcode10中将其设为默认系统,允许并行构建,降低了大型项目构建的开销。文章还讨论了Run Script phases的优化,包括Input Files/Output Files的概念,以及新构建系统可能引发的问题和解决方案。
摘要由CSDN通过智能技术生成

在Xcode9发布的时候,Apple在Build System上提供了新版本的构建系统(New Build System),具体可见WWDC2017,不过令人失望的是,该新特性的讲解很简短,短到只在一页PPT上露脸,在这短短的时间里,苹果讲述了该构建系统的优点:降低构建开销,尤其可以降低大型项目的构建开销。

当然对于该新特性的使用,苹果为开发者提供了足够的过度时间。在Xcode9中,该构建系统没有设置为默认的构建系统,而在Xcode10中,苹果将该系统设置为默认的构建系统,开发者可以通过Xcode->File->Project Settings/WorkSpace Settings->Build System在新旧构建系统间切换。

切换构建系统

幸运的是,苹果在WWDC2018中讲述了新构建系统在构建时的优化方式,我们接下来就探究一下New Build System是如何提高构建速度的。当然,该方式可能会引起一些问题,我们在最后进行讨论解决。

一、项目环境准备

在我们实际开发中,我们的项目可能会有依赖多个其他的工程或者说依赖多个第三方库。这些依赖包括两部分,分别为Target Dependencies以及Link Binary With Libraries两部分,这二者有一些区别:

  • Target Dependencies是指Target所嘘依赖的其他Target,被依赖的Target必须在本Target构建之前就构建完成。除此之外没有任何关联。
  • Link Binary With Libraries是指最终要Link到Product中的文件,同时在Link到Product中时,需要保证文件存在,这就要求在构建Target时该项目下的文件必须提前构建完成。

说白了,Target无论通过哪种依赖,都需要保证被依赖的内容在Target构建前就已经被构建成功。

接下来我们就构建一个项目环境,并设置好依赖关系,此处我们使用WWDC演示中提供的项目结构。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值