1

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

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

我发现可以在 xcode 中禁用此步骤,如果我制作了一个 Objective-C 项目,通过在此网页中描述的构建设置中将“压缩 PNG 文件”更改为“否” 。

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

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

4

2 回答 2

3

功能正在开发中(在 MonoDevelop 中)。但是,iPhone 插件(用于 MonoDevelop)不是开源的,所以自己破解它是行不通的。

现在你有两个选择。

  1. 在开发过程中将图像直接移动到设备上,这样就不会每次都部署它们(与应用程序一起)。你可以从这篇文章中看到如何实现这个 hack 。

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

为此,您需要:

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

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

  3. 备份iphoneos-optimize脚本;

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

请记住,更新 Xcode 将替换脚本 - 因此您需要在更新后重新编辑它。

于 2013-01-19T15:48:28.983 回答
1

半年前这是不可能的

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

于 2013-01-19T10:38:09.610 回答