【问题标题】:Build app with Xcode 4 - it always show some error about PNG image使用 Xcode 4 构建应用程序 - 它总是显示有关 PNG 图像的一些错误
【发布时间】:2011-07-14 08:12:48
【问题描述】:

当我使用 Xcode 4 构建我的应用程序时,它总是显示以下错误消息:

CopyPNGFile /Users/michaelchen/Library/Developer/Xcode/DerivedData/iMusicBox-boeawugacmhacbdtyymnprzfobyq/ArchiveIntermediates/iMusicBox/InstallationBuildProductsLocation/Applications/iMusicBox.app/list_cell.png Images/list_cell.png
    cd /Volumes/WORK/Works/iMusicBox
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    "/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng" -compress "" /Volumes/WORK/Works/iMusicBox/Images/list_cell.png /Users/michaelchen/Library/Developer/Xcode/DerivedData/iMusicBox-boeawugacmhacbdtyymnprzfobyq/ArchiveIntermediates/iMusicBox/InstallationBuildProductsLocation/Applications/iMusicBox.app/list_cell.png

在 /Volumes/WORK/Works/iMusicBox/Images/list_cell.png 检查 alpha 时,pngcrush 捕获了 libpng 错误: 图片数据不足

但是 Xcode 3.2 没问题 - 为什么?

【问题讨论】:

    标签: xcode xcode4


    【解决方案1】:

    您必须将您的 PNG 文件保存为 NOT INTERLACED。 尝试在 Photoshop(或类似软件)中打开文件,另存为,然后选择“非隔行扫描”。

    【讨论】:

    • 伊娃,你是对的,谢谢!我在pixelmator中从网络导出,没关系。
    • 男人!感谢上帝!和你!当我看到这个答案并且它起作用时,我正要去屋顶从那里扔掉我愚蠢的笔记本电脑。非常感谢。我想现在该睡觉了。
    • 在我的情况下,我发现我在 Xcode 中有多个对同一个文件的引用(这可能意味着它尝试多次处理该文件?)删除重复引用消除了问题。跨度>
    • 我将 png 保存为 NOT INTERLACED,第一次构建时仍然出现此错误,但第二次构建时,此错误消失了...
    【解决方案2】:

    当您的项目文件中有多个图像文件条目时会发生这种情况。 我不知道为什么,但我只是删除了所有条目,重新加载了项目并再次添加了文件。

    【讨论】:

    • 嗯,你确定你有同样的编译器消息来自双胞胎?
    • 这也是我的问题。我的启动图像导致问题。默认情况下,XCode 在我的 Supporting Files 文件夹中添加了黑色图像,然后我添加了更多,但黑色图像并没有消失。如果 Launch 图像持有人是黑色的,这意味着您的项目中有一个图像。删除黑色图像并输入正确的图像。这样做了,现在一切都好起来了!
    【解决方案3】:

    检查您在 Target 的“构建阶段”->“复制捆绑资源”中没有重复条目

    【讨论】:

    • 对于那些在他们的项目中甚至没有图像的人......这个解决方案是唯一有效的答案之一。我没有图片,但我使用的是 Facebook SDK,我必须删除 Build Phases->Copy Bundle Resources 中红色的所有内容。
    【解决方案4】:

    可能是“压缩 PNG 文件”设置(来自构建设置的打包部分)。

    我通过将其切换为“否”来解决此错误。

    【讨论】:

      【解决方案5】:

      就我而言,我发现损坏的 png 无法在 Photoshop 中打开。我在预览中打开,保存为 psd,然后从 Photoshop 中再次保存(另存为 -> png -> 非隔行扫描)。现在可以在 xcode 4 中正常编译。

      【讨论】:

        【解决方案6】:

        尝试使用 “预览” 查找并重新保存此 *.PNG 文件,确切地说:文件 - 导出... - “另存为 PNG”。在我看来,当您在 Photoshop 中使用“Save for Web”模式保存图像时会发生这种情况,之后该图像将使用 特殊压缩 (LZW) 进行保存。就是这样,祝你好运!

        【讨论】:

          【解决方案7】:

          您的 PNG 文件 list_cell.png 似乎已损坏。 Xcode 4 在许多方面比 Xcode 3 进行了更多检查,并揭示了一直潜伏在您项目中的问题。

          您是否尝试过在图像编辑器中打开您的 PNG 文件并再次保存?

          【讨论】:

          • 是的,我已经在预览中打开了,没关系。我尝试再次保存它,但仍然显示错误。
          • 不要只在预览中打开它。它也可能会尝试解决图像中的错误。使用可以编辑图像并存储新版本图像的应用程序打开它。
          【解决方案8】:

          就我而言,我通过删除文件夹/文件名中的空白“空格键”解决了这个问题。

          希望这也适用于某人。

          【讨论】:

            【解决方案9】:

            我的不是交错的,但我不断收到来自 pngcrush 的奇怪错误。最终,我不仅删除了磁盘,还通过 XCode 删除了这些文件。我通过拖放到 XCode 中将它们一一添加回来,在每一个之后构建,期望遇到一个有问题的。我从没干过。我的结论是,您确实需要从 XCode 操作文件,而不是文件系统。

            【讨论】:

              【解决方案10】:

              在我使用 xcode 4.5 的情况下,问题是通过终端授予权限来解决的

              chmod -R +rw /yourprojectpath/yourprojectfolder

              这可能不是最好的解决方案,因为文件共享会锁定文件。但是如果你赶时间的话会做。

              【讨论】:

                【解决方案11】:

                我不得不删除对 PNG 的引用并将它们再次添加到项目中。谁有更好的解决方案?

                【讨论】:

                  【解决方案12】:

                  我必须删除 png 文件,然后转到 Targets -> AppName -> Build Phases -> Bundle Resources 并从那里删除文件。

                  【讨论】:

                    【解决方案13】:

                    我遇到了同样的错误。原来我的pngs实际上是jpeg。 XCode 正确显示了它们,但 iOS 设备没有。通过将jpg保存为png来解决它。

                    【讨论】:

                      【解决方案14】:

                      发生此错误是因为您在资源中的图像宽度或高度小于 5 像素,并且您正在尝试调整该图像的大小。 将所有图像设置为最小 5 像素,错误消失。

                      【讨论】:

                      • 这就是发生在我身上的事情,这解决了它。
                      【解决方案15】:

                      按照以下步骤操作:

                       1. Take an image. 
                      
                       2. Rename it to the showing error png's name. 
                      
                       3. Drag it back to the Xcode.
                      

                      【讨论】:

                      • 回答我是否应该更具描述性
                      【解决方案16】:

                      在我的例子中,我必须从文件夹中删除所有 PNG 文件,然后再次重新添加文件没有将图像拖放到 Xcode UI(在启动图像下)。后者在我的情况下是关键,首先将文件添加到文件夹中,然后将它们拖到 UI 中,以某种方式导致重复,这一切都搞砸了。如果没有其他方法适合您,请尝试一下。

                      【讨论】:

                        【解决方案17】:

                        我遇到了同样的问题。我解决了它删除重复的图片。签出不同的文件夹。那是我的问题。

                        【讨论】:

                          【解决方案18】:

                          我解决了这个错误,在你把图片放到项目中重命名的时候出现,所以为了解决这个问题首先应该删除当前的图片,从finder中重命名文件,然后将这些图片复制到项目中。

                          【讨论】:

                            【解决方案19】:

                            可能对你有帮助。 检查Alpha Channel 属性,如随附的屏幕截图所示。 如果是NO,则应该是YES

                            【讨论】:

                              【解决方案20】:

                              可能对你有帮助。 检查Alpha Channel 属性,如随附的屏幕截图所示。 如果是NO,则应该是YES

                              【讨论】:

                                【解决方案21】:

                                Eva Madrazo 发布了正确的答案(至少对于隔行扫描 PNG 的问题),但对于那些像我一样遇到一堆图像问题的人,您可以递归地使用 mogrify 一次对每个文件进行去隔行扫描。

                                find ./ -name "*.png" -exec mogrify -interlace none {} \;
                                

                                更改隔行扫描方法似乎不会影响图像质量,但会影响图像大小,不会给您带来更小的图像。

                                Mogrify 自带 ImageMagick,你可以用 homebrew 安装它。

                                【讨论】:

                                  【解决方案22】:

                                  错误:

                                  在阅读 /Volumes/Mac OS/RDC/Workpot/RestApp/RestApp/default1024_768.png pngcrush 时捕获 libpng 错误:不是 PNG 文件..

                                  解决方案:

                                  1. 我在PaintBrush 工具中打开了“default1024_768”文件,并保存为同名的PNG 文件。
                                  2. 替换了 Xcode 项目中的图标文件。
                                  3. 清理 --> 构建

                                  【讨论】:

                                    猜你喜欢
                                    • 2012-07-18
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2022-01-20
                                    • 1970-01-01
                                    • 2017-05-12
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多