为什么Xcode在构build设备时复制不变的资源?

我正在为iOSdevise一个相当庞大,资产重的项目,我不禁注意到Xcode复制了自上次以来一直没有改变的数百个资源(纹理,spritesheets,声音文件等)我build立到设备的时间。 当每次编译需要2-4分钟才能在设备上popup时,编码确实非常慢。

有没有办法让Xcode认识到它正在做冗余的事情,或者编写一个脚本,使它能够更加智能地将资源转移到设备上?

PS我意识到,可能没有任何内置的“附加”function的应用程序。 我希望事实并非如此。

您可以尝试将另一个目标添加到项目中,并将其命名为“无资源”。 从这个目标中排除所有沉重的资源。 第一次你需要启动所有的资源目标的应用程序,下次使用“没有资源”的目标。 如果你添加了一些项目,你应该使用第一个目标。

iOS仅支持部署已签名到设备的完整应用程序包。 将debugging版本部署到设备的过程是这样的。

  1. 编译更改的源代码并签名二进制
  2. Alpha前乘PNG图像
  3. 用应用程序资源和二进制文件创build一个文件夹
  4. 签署该文件夹的内容,并创build一个ZIP文件的文件夹和签名
  5. 将ZIP文件(.ipa)复制到设备

不幸的是,我可以想象在#3和#4中花费的时间被创build。 我没有看到任何方法来加速这一点。 如果您有许多PNG图像,您可以尝试告诉Xcode跳过步骤2 。

NeverBe的方法听起来像是一个好主意,如果你的应用程序可以让你在开发的大部分时间里不包含许多资源。 你可以select另外一组更小/虚拟的资源,你可以切换进出。

有时,XCode真的把不变的资源打包。 通常,当您通过Finder更改文件时,而不是XCode。

使项目 – >清理完成重build