gpt4 book ai didi

ios - Xcode 重复复制包资源

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:14 27 4
gpt4 key购买 nike

我有一个关于 Xcode 和捆绑资源副本的问题。

我目前正在处理一个包含大型 Assets 库的项目。因此,全新安装或捆绑资源中的更改保证了"new"捆绑资源的副本。

但是,我目前面临的问题是 Xcode 每次构建应用程序时都会复制整个 Assets 库的一部分。这种行为非常奇怪,因为在我工作过的所有项目中,Xcode 仅在资源发生更改时复制资源,或者它是全新安装,或者如果有以前没有复制过的新内容。

然而,在这种情况下,它复制了全新安装的所有资源(预期)。但是,在每次连续构建时,它仍然会复制一些文件。现在这非常奇怪,因为所有文件都没有更改,并且它没有复制所有文件,只是其中的一小部分。还有一件事 - 如果我在模拟器上使用相同的配置运行相同的应用程序,则不会发生复制(奇怪的事情)。

是否有一些我可以更改的设置,或者我可以添加一个标志来防止这种情况发生?

在此先感谢您的帮助!

干杯!

最佳答案

这个问题被问到已经一个月了,我设法找到了“某种解决方法”的解决方案。

现在,我之所以将其作为已接受的答案放入其中,主要是因为在撰写本文时尚未发布其他答案/解决方案。如果发布了更好的答案(或者如果我有更新),我一定会将更好的答案标记为已接受的答案。

无论哪种方式,如果您拥有一组不会在连续构建过程中发生变化的超大 Assets ,这种“变通办法”就会奏效。

我正在处理的项目有很多已经准备好的音频和视频文件,并且不会更改(除了偶尔重新录制或类似的东西)。

因此,正如我的问题所述,Xcode 正在复制资源的一个子集。理想情况下,一旦资源被复制(并且没有对其进行更改),它就不会在连续的构建中被重新复制(至少不应该被重新复制)。就我而言,它在每次连续运行时都会被复制,导致我的总构建开始时间约为 15 ~ 20 分钟。我还想指出,无论我们是否在构建阶段使用“运行脚本”,或者我们的 Xcode 项目中是否有媒体,我们都面临着同样的问题。

解决方法:我所做的是清理我的项目,删除应用程序,然后重新安装。因此,第一次,它将所有文件复制到应用程序中。此外, Assets 目录在我的 Xcode 项目中NOT。我们添加了一个“运行脚本”阶段,其中我们在每次构建期间运行 rsync 以将媒体从媒体文件夹复制到应用程序。

现在,一旦应用程序完成全新构建;它会复制所有必需的媒体文件。

然后,删除/禁用脚本,在 Xcode 中执行清理(command + shift + K)并再次运行项目。这一次,由于没有运行脚本,并且 Xcode 执行了清理,现在它认为它需要做的就是重新编译二进制文件,因此构建速度非常快。因为我没有删除了应用程序,媒体文件夹仍在我的应用程序中,我的构建开始时间现在大约是 30 秒 ~ 1 分钟(这包括沙盒和代码签名)。代码签名和“沙盒”应用程序仍然需要时间,但这比每次我点击运行时都要等待 15 ~ 20 分钟要好得多。 :)

希望这对您有所帮助!

关于ios - Xcode 重复复制包资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14697942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com