【问题标题】:iOS - pngcrush discrepancyiOS - pngcrush 差异
【发布时间】:2011-10-21 02:07:05
【问题描述】:

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

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

【问题讨论】:

    标签: iphone ios xcode png pngcrush


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我使用校验和来确保不会将不必要的数据下载到客户端。如果确实如此(pngcrush 不稳定),那么我可能需要想出一个新的解决方案。我原以为它会与相同的资产一致。可行的是,我可以找到一个稳定的破碎工具并禁用 xcode pngcrush 步骤。编辑:我没有直接调用 pngcrush,而是使用 xcode 构建工具 iphoneos-optimize 调用 pngcrush 并使用正确的设置(我假设)!
    • 我在同一个 .png 图像上运行了 iphoneos-optimize 脚本 5 次,它总是产生相同的校验和。这似乎表明 pngcrush 是稳定的,并且 xcode 应用了我在我的过程中缺少的进一步步骤。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-29
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      相关资源
      最近更新 更多