草庐IT

ios - Xcode 重复复制包资源

coder 2024-01-11 原文

我有一个关于 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/

有关ios - Xcode 重复复制包资源的更多相关文章

  1. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  2. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  3. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  4. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  5. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  6. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  7. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

  8. ruby - Chef LW 资源属性默认值如何引用另一个属性? - 2

    我正在尝试将一个资源属性的默认值设置为另一个属性的值。我正在为我正在构建的tomcat说明书定义一个资源,其中包含以下定义。我想要可以独立设置的“名称”和“服务名称”属性。当未设置服务名称时,我希望它默认为为“名称”提供的任何内容。以下不符合我的预期:attribute:name,:kind_of=>String,:required=>true,:name_attribute=>trueattribute:service_name,:kind_of=>String,:default=>:name注意第二行末尾的“:default=>:name”。当我在Recipe的新block中引用我

  9. ruby - 如何在 ruby​​ 中复制目录结构,不包括某些文件扩展名 - 2

    我想编写一个ruby​​脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"

  10. ruby - 正则表达式 - 保存重复捕获的组 - 2

    这就是我做的a="%span.rockets#diamonds.ribbons.forever"a=a.match(/(^\%\w+)([\.|\#]\w+)+/)putsa.inspect这是我得到的#这就是我想要的#帮助?我尝试过但失败了:( 最佳答案 通常,您不能获得任意数量的捕获组,但如果您使用扫描,您可以为您想要捕获的每个标记获得一个匹配:a="%span.rockets#diamonds.ribbons.forever"a=a.scan(/^%\w+|\G[.|#]\w+/)putsa.inspect["%span","

随机推荐