在MonoTouch中构建时,如何禁用PNG文件“优化”?

时间:2013-01-19 08:54:14

标签: optimization xamarin.ios png

我正在创建一个使用大量PNG文件资源的应用程序。为了最小化二进制文件的大小,我手动优化了所有文件,并且能够将资源文件夹大小减少到原始非优化大小的近20%。

但是,在构建我的应用程序(而不是模拟器)测试时,构建过程会尝试通过运行似乎是pngcrush的修改版本来“优化”我的PNG文件,这不仅使构建过程差不多五分钟更长,并且使我的大多数文件变大,但也使得一些文件无法使用alpha预乘,我不需要,因为我将alpha值用于与透明度不同的目的。

我发现可以在xcode中禁用此步骤,如果我正在制作一个objective-c项目,可以通过在this webpage中所述的构建设置中将“压缩PNG文件”更改为“否”。 / p>

但是,我无法找到如何在MonoDevelop项目中修改此设置。

从MonoDevelop构建时,如何禁用此PNG“优化”步骤?

2 个答案:

答案 0 :(得分:3)

正在研究这个feature(在MonoDevelop中)。然而,iPhone插件(对于MonoDevelop)不是开源的,因此自己进行黑客攻击是行不通的。

现在你有两个选择。

  1. 在开发过程中将图像直接移动到设备上,因此每次都不会部署它们(与应用程序一起)。您可以通过此article了解如何实施此攻击。

  2. 破解你的iphone-optimize脚本(这就是MonoDevelop所调用的)。脚本位于Xcode目录中(如果您有多个版本,则使用MonoDevelop的 SDK位置中指定的版本)。

  3. 为此你需要:

    1. 备份现有(原始)PNG;

    2. 将优化后的PNG复制为“新”原件;

    3. 备份iphoneos-optimize脚本;

    4. 编辑该脚本以忽略PNG文件(即不执行pngcrush)

    5. 请注意,更新Xcode会替换脚本 - 因此您需要在更新后重新编辑它。

答案 1 :(得分:1)

半年前was not possible

然而,由于MonoDevelop源是开放的,因此可以对其进行修补和编译。