【问题标题】:Xcode5 pngcrush caught libpng errorXcode5 pngcrush 捕获 libpng 错误
【发布时间】:2014-09-03 02:04:22
【问题描述】:

我希望完成我在 xcode5 中创建的应用程序。当我用模拟器运行它时,一切顺利,没有错误,但是当我尝试归档应用程序时,我收到无数关于项目中图像的错误。其中许多都标有文本“pngcrush 捕获 lilpng 错误。

我所有的图像都是 png 文件,当我完成项目时,即使出现错误,也会存档一些图像,而其他图像则留空。有什么建议或指点吗?

【问题讨论】:

  • 这重复了一些带有“pngcrush”标签的其他问题,例如stackoverflow.com/questions/20655151/… ..您的图像已通过Apple修改过的“pngcrush”运行,这使得它们成为无效的PNG文件。

标签: xcode5 pngcrush


【解决方案1】:

您可以通过进入您的应用程序 -> 构建设置并将“压缩 PNG 文件”设置为否来停止 XCode 使用 pngcrush 缩小图像。

这完全停止了 pngcrush 的运行,但也可能导致更大的图像。在执行此操作之前,请确保您的 PNG 没有真正的问题。

背景故事:pngcrush /libpng 与 PNG 崩溃时遇到过类似的问题(校验和错误/释放已释放的对象等)。这些可以在命令行上重现,所以我重新创建了 PNG,甚至将它们转换为其他格式,然后再返回,但错误仍然存​​在。在我的情况下,Xcode 然后拒绝了不支持 iPhone 5 的结果存档(因为 pngcrush 杀死了 Default-568h@2x.png 图像)。上述修复解决了这个问题。

【讨论】:

  • 这节省了我的时间 tnk u
【解决方案2】:

在我的情况下,我在项目中有 2 个同名的图像文件,错误实际上是告诉我哪些文件有问题(没有说有 2 个同名的文件),但我傲慢地认为这是别的东西!在对错误感到厌倦后,我对这些特定文件进行了更多调查,很明显哪些来自以前的构建并且现在不是预期的(因此可以删除)。一旦我删除了“旧”图像,这个错误就消失了。

【讨论】:

  • 我可以通过在“项目导航器”中过滤文件名来解决这个问题。可以有多个具有相同名称的文件,只要它们包含在项目的不同目标中(注意右窗格中的复选标记)。永远不要让两个同名的文件进入同一个目标。向 Apple 提出一个问题:您希望我们在 stackoverflow 中找到解决方案吗?因为您为重复图像发出的错误完全具有误导性!
  • 我以前有过这个问题,在 Pixelmator 中打开有问题的图像并重新导出它为我修复了它。
【解决方案3】:

如果您的 images.xcassets 中有图像并且链接了原始图像,则会遇到此问题。删除对图像的引用(保留 images.xcassets)。会解决问题

【讨论】:

  • 这是我的场景。图片很好,但project.pbxproj 有多个参考。关闭 Xcode,使用文本编辑器删除它们,然后重新启动 Xcode 并“添加文件”清理它(经过几次尝试......)
【解决方案4】:

我通过在预览中打开该图像并将其导出为 png 并将 Xcode 中的图像替换为新图像来解决此问题。

【讨论】:

    【解决方案5】:

    我在 Xcode5 pngcrush 中也面临同样的问题,捕获 libpng 错误,

    只是快速修复:我检查了我使用 xcode 添加(读取)的 png 文件。 实际上 png 文件有内容错误(png 文件已损坏),所以我更改了 png 文件并上传,现在它可以工作了。

    【讨论】:

      【解决方案6】:

      我通过在预览中打开该图像并将其导出为不带 alpha 的 png 并将 Xcode 中的图像替换为新图像来解决此问题。

      【讨论】:

        猜你喜欢
        • 2020-07-15
        • 2013-08-29
        • 2012-04-06
        • 2014-03-04
        • 2013-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-11
        相关资源
        最近更新 更多