为什么Xcode在构建到设备时会复制未更改的资源?

时间:2012-10-06 20:11:52

标签: ios xcode bundle

我正在使用一个相当大的,资产密集的iOS项目,我不禁注意到Xcode复制了数百种资源(纹理,spritesheets,声音文件等),这些资源根本没有改变自从我上次建立设备以来。当每个构建在设备上弹出2-4分钟时,它会使编码真的非常慢。

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

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

3 个答案:

答案 0 :(得分:3)

您可以尝试将另一个目标添加到项目中,并将其命名为“无资源”。从此目标中排除所有重型资源。第一次需要使用所有资源目标启动应用程序时,下次使用“无资源”目标。如果您在项目中添加了某些内容,则应使用第一个目标。

答案 1 :(得分:3)

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

  1. 编译更改的源代码并签署二进制文件
  2. Alpha预乘PNG图像
  3. 使用应用程序资源和二进制文件
  4. 创建一个文件夹
  5. 签署文件夹的内容并创建包含文件夹和签名的ZIP文件
  6. 将ZIP文件(.ipa)复制到设备
  7. 不幸的是,我想在每次构建时都会花费时间在#3和#4上。我还没有看到任何加速这个的方法。如果您有许多PNG图像,则可以try telling Xcode to skip Step 2

    如果您的应用程序可以允许您在开发的大部分时间内不包含许多资源,那么

    NeverBe's approach听起来是个好主意。您也可以使用第二组小/虚拟资源进行切换。

答案 2 :(得分:0)

有时,XCode确实将未更改的资源用于打包。 通常,当您通过Finder更改文件时,而不是XCode。

制作项目 - >清理以完成重建