我正在创建一个使用大量PNG文件资源的应用程序。为了最小化二进制文件的大小,我手动优化了所有文件,并且能够将资源文件夹大小减少到原始非优化大小的近20%。
但是,在构建我的应用程序(而不是模拟器)测试时,构建过程会尝试通过运行似乎是pngcrush的修改版本来“优化”我的PNG文件,这不仅使构建过程差不多五分钟更长,并且使我的大多数文件变大,但也使得一些文件无法使用alpha预乘,我不需要,因为我将alpha值用于与透明度不同的目的。
我发现可以在xcode中禁用此步骤,如果我正在制作一个objective-c项目,可以通过在this webpage中所述的构建设置中将“压缩PNG文件”更改为“否”。 / p>
但是,我无法找到如何在MonoDevelop项目中修改此设置。
从MonoDevelop构建时,如何禁用此PNG“优化”步骤?
答案 0 :(得分:3)
正在研究这个feature(在MonoDevelop中)。然而,iPhone插件(对于MonoDevelop)不是开源的,因此自己进行黑客攻击是行不通的。
现在你有两个选择。
在开发过程中将图像直接移动到设备上,因此每次都不会部署它们(与应用程序一起)。您可以通过此article了解如何实施此攻击。
破解你的iphone-optimize
脚本(这就是MonoDevelop所调用的)。脚本位于Xcode目录中(如果您有多个版本,则使用MonoDevelop的 SDK位置中指定的版本)。
为此你需要:
备份现有(原始)PNG;
将优化后的PNG复制为“新”原件;
备份iphoneos-optimize
脚本;
编辑该脚本以忽略PNG文件(即不执行pngcrush)
请注意,更新Xcode会替换脚本 - 因此您需要在更新后重新编辑它。
答案 1 :(得分:1)
半年前was not possible。
然而,由于MonoDevelop源是开放的,因此可以对其进行修补和编译。