我使用Mac OS 10.7.5和XCode 4.6.2开发了一个应用程序。应用程序在我的机器上工作正常,没有任何错误/警告。
但是当我尝试在另一台机器Mac OS 10.8和XCode 4.6.2中运行时,它会显示该机器中某些图像的pngcrush错误。虽然pngcrush错误很少,但仍然可以在模拟器或设备上运行应用程序。
我的问题是:为什么两端的调试都有差异以及如何解决它。 (如何避免这种错误)
错误消息
While reading ImagePath/ImageName.png pngcrush caught libpng error: Not a PNG file.
答案 0 :(得分:2)
Pngcrush是Xcode用来压缩应用程序中包含的PNG图像的PNG(可移植网络图形)文件的优化器,目的是减少构建的数据包的最终大小。
这将在以下路径下
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
必须有两种可能性,
答案 1 :(得分:0)
“非PNG文件”的图像可能已经通过Apple的私有Xcode SDK版本的pngcrush运行,该版本生成的“优化”文件不再是有效的PNG文件。
查看抛出错误的文件的开头,看看从字节12开始的字节是“CgBI”而不是“IHDR”。如果是这样,您将需要撤消更改。搜索SO以查找“pngcrush”和“CgBI”以了解具体方法。