0

我似乎在复制 xcode 所做的 iOS png 优化时遇到问题。我们的应用程序允许用户通过将存储在包中的文件的校验和与服务器上的校验和进行比较来通过资产服务器更新内容。在将任何 png 上传到服务器之前,它们会受到 xcode 开发人员目录中的 iphoneos-optimize 脚本的影响(Stack Overflow 帖子)。问题是对 png 执行的校验和(由服务器和设备执行)会产生不同的结果。

值得一提的是,这是在设备上测试的,而不是在模拟器上(不会破坏 png)。同样可见的结果是相同的,只是校验和不同。

4

2 回答 2

1

我假设您正在使用校验和来确保您没有任何重复项。

查看 的选项pngcrush,似乎该过程的实际结果是不可预测的。因为pngcrush是由 Xcode 调用的,所以我们不知道它使用了哪些选项。

我的建议是简单地找到另一种方案来唯一标识资产。它可以是一个命名方案,您可以使用服务器 URL 或组合。

于 2011-08-05T17:56:56.233 回答
1

我创建了一个测试,其中我将 bundle .png 从设备上传到我们的服务器,这样我们就可以更彻底地分析图像。当我打开 .png 文件时,我实际上可以看到图像,这表明它没有被 XCode 构建过程破坏(因为它交换字节等)。然后我从 XCode 中的构建设置中禁用了 png 压缩并再次尝试。这次发给服务器的图片是pngcrushed,文件的校验和和我手动crushed的图片一致。这表明 XCode 3.2.6 的构建设置可能是向后的。然后我在同事的运行 XCode 3.2.5 的机器上进行了测试,设置按预期工作;设置压缩标志时产生破碎的图像。

我尝试在谷歌上搜索该问题,但找不到关于该主题的任何错误/问题报告。然而,证据表明这是一个 XCode 问题。最好能收到另一方的确认。

于 2011-08-08T14:59:57.790 回答