跳过Xcode iPhone应用程序的“CompressResources”构建步骤

时间:2008-10-07 03:45:37

标签: iphone xcode image resources

是否可以设置iPhone Xcode项目以跳过“CompressResources”构建步骤?

具体来说,我想跳过在所有.png文件上运行pngcrush的阶段,其中许多文件无法在我的应用程序可以读取的表单中体验。

编辑:使用的pngcrush版本创建了png文件,其中包含一个非标准的“强制,私有”块,它明确地阻止了解码。我已经修改了我的png阅读器来处理这些文件,但我仍然喜欢跳过这一步的每个项目方法。 pngcrush的另一个副作用是它不保存透明像素的颜色值,因此alpha-ed纹理在较小的mip级别显示边缘。

这里描述了iphone png格式:https://web.archive.org/web/20110519164905/http://modmyi.com/wiki/index.php/Iphone_PNG_images。简而言之,

  • 跳过CgBI块
  • 跳过zlib标题
  • 将BGR切换为RGB通道顺序

编辑:它似乎也预先对alpha进行预乘,所以:

  • 除以alpha

5 个答案:

答案 0 :(得分:10)

您可以在项目设置中添加“IPHONE_OPTIMIZE_OPTIONS = -skip-PNGs”以防止png错误,但要小心,您可能需要分别优化图标和Default.png。

答案 1 :(得分:8)

iphoneos-optimize脚本将PNG文件转换为非标准格式,该格式经过优化,可在iPhone上显示。该脚本将使用在应用程序包中找到的png扩展名转换任何文件。

我遇到了类似的问题,并通过给我的文件扩展名为_png(即以下划线作为前缀)解决了这个问题。 iphoneos-optimize忽略了它,并留下了常规的PNG文件。如果你可以这样处理它,它可能比使用构建脚本更安全。

答案 2 :(得分:5)

  • 打开构建设置
  • 在“打包”下,选择“压缩PNG文件”
  • 选择“否”

答案 3 :(得分:3)

如果查看构建输出,您将看到CompressResources步骤运行脚本/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize。这似乎只是一个运行pngcrush的shell脚本,并将plists编译为二进制格式。您可以修改此脚本以不运行pngcrush。

请注意,this thread中有人注意到,如果他们没有通过pngcrush运行他们的图标文件,那么它就不会出现在手机上。

有趣的是,脚本目录中的pngcrush版本有一个-iphone参数。有人知道这是标准还是苹果公司刚刚发布的产品?

答案 4 :(得分:1)

这可能是另一个问题。在许多情况下,问题与命名有关,可以很容易地解决。

读到这个: http://cocoapi.wordpress.com/2009/03/22/iphone-images-not-appearing-in-real-iphone-this-is-why/