我似乎在复制xcode所做的iOS png优化时遇到了问题。我们的应用程序允许用户通过比较捆绑包中存储的文件的校验和与服务器上的文件的校验和,通过资产服务器更新内容。在将任何png上传到服务器之前,它们将受到xcode开发人员目录(Stack Overflow post)内的iphoneos-optimize脚本的限制。问题是png上执行的校验和(由服务器和设备执行)会产生不同的结果。
值得一提的是,这是在设备上测试的,而不是模拟器(不会压碎png)。同样可见的结果也是相同的,它只是不同的校验和。
答案 0 :(得分:1)
我假设您使用校验和来确保没有任何重复项。
查看pngcrush
的选项,似乎该程序的实际结果是不可预测的。因为Xcode调用了pngcrush
,所以我们不知道它使用了哪些选项。
我的建议是简单地找到另一种方案来唯一地识别资产。它可以是命名方案,您可以使用服务器URL或组合。
答案 1 :(得分:1)
我创建了一个测试,我在其中将软件包.png从设备上传到我们的服务器,以便我们可以更彻底地分析图像。当我打开.png文件时,我实际上可以看到图像,这表明它没有被XCode构建过程破坏(因为它交换了字节等)。然后,我从XCode中的构建设置中禁用了png压缩,然后再次尝试。这次发送到服务器的图像被压缩,文件的校验和与我手动压碎的图像相匹配。这表明XCode 3.2.6的构建设置可能是倒退的。然后我在运行XCode 3.2.5的同事的机器上进行了测试,设置按预期工作;设置压缩标志时产生压碎的图像。
我尝试使用Google搜索该问题但未找到有关该主题的任何错误/问题报告。然而,有证据表明这是一个XCode问题。从另一方收到对此的确认将是一件好事。