我最近从git中签出了iOS应用的新版本,并通过xcodebuild
在命令行中进行了构建。然后,我使用完全相同的命令进行了第二次构建,同时不对存储库中的文件进行任何更改(甚至不打开文件)。
我希望第二个构建完全不需要时间,但是实际上比第一个构建需要更长的时间:
user$ time xcodebuild -sdk 'iphonesimulator' -scheme 'DemoApp' -configuration 'Debug' -target 'DemoApp' build > /dev/null
real 5m45.849s
user 0m15.270s
sys 0m5.640s
user$ time xcodebuild -sdk 'iphonesimulator' -scheme 'DemoApp' -configuration 'Debug' -target 'DemoApp' build > /dev/null
real 6m8.858s
user 0m12.904s
sys 0m4.198s
如果我确实在xcode中进行构建而没有任何更改,那么它会在几秒钟内构建并运行。
以下是我尝试在命令行上获取增量构建的一些内容:
-derivedDataPath ~/Library/Developer/Xcode/DerivedData
,但结果相同。-incremental
标志添加到其他Swift参数。 xcodebuild
是否不支持增量构建?有没有办法弄清楚为什么会这样?
我正在使用最新的Xcode和新的Xcode 10构建系统。如果有什么不同,大多数代码都会很快。
编辑:在30秒内通过xcodebuild
逐步恢复到旧的构建系统。
更新:
我测试的方式:我有一个Jenkins作业,它将克隆存储库并进行彻底清理:运行xcodebuild clean并手动删除build目录和派生数据目录,以防万一。然后进行构建。然后,它不做任何更改并再次进行构建。第二个版本是我正在选择的版本。