用 Xcode 4构建应用程序-它总是显示一些关于 PNG 图像的错误

当我用 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

在检查/Volume/WORK/Works/iMusicBox/Images/list _ cell.png pngrush 时发现 libpng 错误: 图像数据不足

但是用 Xcode 3.2就可以了-为什么?

42705 次浏览

It looks like your PNG file list_cell.png is corrupt. Xcode 4 makes more checks than Xcode 3 in many areas and reveals problems that have been lurking in your project all the time.

Have you tried to open your PNG file in an image editor and save it again?

You have to save your PNG files as NOT INTERLACED. Try to open the file in photoshop (or similar), save as, and select "Not interlaced".

In my case I discovered my corrupted png wouldn't open in photoshop. I opened in preview, saved as psd, and then saved again from photoshop (save-as -> png -> not-interlaced). Compiles fine now in xcode 4.

Mine weren't interlaced but I kept getting odd errors from pngcrush. Eventually I deleted the files not just disk but through XCode. I added them back in one by one by drang-and-drop into XCode, building after each, expecting to hit one that had an issue. I never did. My conclusion is that you really need to manipulate the files from XCode and not the filesystem at all.

In my case I solved the problem by removing the blank "space-key" in folder/filename.

Hope this works for somebody too.

That happens when you have multiple entries for the image file in your project file. I have no idea why but I just removed all entries, reloaded the project and added the file again.

in my case with xcode 4.5 the problem is solved by permission giving with terminal

chmod -R +rw /yourprojectpath/yourprojectfolder

this is maybe not the best solution because of locking files with file sharing. But will do if you are in hurry.

Follow the steps:

 1. Take an image.


2. Rename it to the showing error png's name.


3. Drag it back to the Xcode.

I had to remove the references to PNGs and add them to the project again. Anyone has a better solution?

I had to remove png files and then go to Targets -> AppName -> Build Phases -> Bundle Resources and remove the files from there too.

In my case, I had to remove all PNG files from the folder and then re-adding the files again without drag-and-dropping the images into the Xcode UI (under Launch Images). The latter was key in my case, first adding the files to the folder and then dragging them into the UI somehow cause a duplicate which screwed it all up. Try that out if nothing else's working for you.

Try to find and resave this *.PNG files using "Preview", to be exact: File - Export... - "save as PNG". It seems to me, that it happens when you saving image in Photoshop with mode "Save for Web" and after this image will be saved with special compressing (LZW). That's all, good luck!

I got the same error. Turned out my pngs where actually jpeg. XCode showed them properly but an iOS device didn't. Solved it by saving the jpg as png.

This error happens because you have an image in resources that's smaller than 5 pixels in width or height and you are trying to resize that image. Set all images to minimum of 5 pixels and error disappears.

It may be the "Compress PNG Files" setting (from the Packaging section of Build Settings).

I solved this error by switching it to "No".

Check that you don't have duplicate entries in the Target's "Build Phase"-> "Copy Bundle Resources"

I had the same problem. I resolved it removing the duplicate pictures. Check out in different folders. That was my problem.

I solved this error, it's appear when you rename the images after put into the project, so for solve this problema first should delete the current images, rename files from finder and later copy this images into the project.

May be help you. Check Alpha Channel property as shown in attached screenshot. It should be YES if its NO.

enter image description here

May be help you. Check Alpha Channel property as shown in attached screenshot. It should be YES if its NO.

enter image description here

Eva Madrazo posted the right answer (at least for problems with interlaced PNGs), but for those having this problem with a bunch of images as I did, you can use mogrify recursively to de-Interlace every file at once.

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

Changing the interlace method doesn't appear to affect the image quality, but affects the image size, none will give you a smaller image.

Mogrify comes with ImageMagick and you can install it with homebrew.

Error:

While reading /Volumes/Mac OS/RDC/Workpot/RestApp/RestApp/default1024_768.png pngcrush caught libpng error: Not a PNG file..

Solution:

  1. I have opened "default1024_768" file in PaintBrush tool and saveAs PNG file with same name.
  2. Replaced the Icon file in Xcode project.
  3. Clean --> Build