自从提出这个问题以来已经一个月了,我设法找到了一种“解决方法”的解决方案。
现在,我将其作为已接受的答案的原因主要是因为在撰写本文时尚未发布其他答案/解决方案。如果发布了更好的答案(或者如果我有更新),我一定会将更好的答案标记为已接受的答案。
无论哪种方式,如果您拥有一组不会在连续构建中发生变化的超大型资产,则此“解决方法”将起作用。
我正在处理的项目有很多已经准备好的音频和视频文件,并且不会改变(除了偶尔的重新录制或类似的东西)。
因此,正如我的问题所述,Xcode 正在复制资源的子集。理想情况下,一旦资源被复制(并且没有对其进行更改),它就不会在连续构建中重新复制(至少不应该被重新复制)。就我而言,它在每次连续运行期间都会被复制,导致我的总构建开始时间约为 15 ~ 20 分钟。我还想指出,无论我们是否在构建阶段使用“运行脚本”,或者我们的 Xcode 项目中是否有媒体,我们都面临着同样的问题。
解决方案:我所做的是清理我的项目,删除应用程序,然后重新安装。因此,第一次,它使用应用程序复制所有文件。此外,资产目录不在我的 Xcode 项目中。我们添加了一个“运行脚本”阶段,其中我们运行rsync以在每次构建期间将媒体从媒体文件夹复制到应用程序。
现在,一旦应用程序完成了全新的构建;它会复制所有需要的媒体文件。
然后,删除/禁用脚本,在 Xcode 中执行清理(command + shift + K)并再次运行项目。这一次,由于没有运行脚本,并且由于 Xcode 已经执行了清理,现在它认为它需要做的就是重新编译二进制文件,它的构建速度非常快。由于我没有删除应用程序,媒体文件夹仍在我的应用程序中,我的构建开始时间现在大约是 30 秒 ~ 1 分钟(这包括沙盒和代码签名)。对应用程序进行代码签名和“沙盒化”仍然需要时间,但这比每次运行时都必须等待 15 到 20 分钟要好得多。:)
希望这可以帮助!