Cree la aplicación con Xcode 4: siempre muestra algún error sobre la imagen PNG

88

Cuando construyo mi aplicación con Xcode 4, siempre muestra este mensaje de error:

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

Al comprobar los valores alfa en /Volumes/WORK/Works/iMusicBox/Images/list_cell.png, pngcrush detectó el error libpng: no hay suficientes datos de imagen

pero está bien con Xcode 3.2, ¿por qué?

Michael Chen
fuente

Respuestas:

191

¡¡Lo encontré!!

Tienes que guardar tus archivos PNG como NO ENTRELAZADOS . Intente abrir el archivo en Photoshop (o similar), guárdelo como y seleccione "No entrelazado".

Está funcionando en mi caso

espero que esto ayude

Eva Madrazo
fuente
Eva, tienes razón, ¡gracias! Exporto desde la web en pixelmator y está bien.
Michael Chen
6
¡hombre! ¡gracias a Dios! ¡y tú! Estaba a punto de ir a la azotea para tirar mi estúpida computadora portátil desde allí cuando vi esta respuesta y funcionó. Muchas gracias. Supongo que es hora de dormir ahora.
Sahil Chaudhary
7
En mi caso, resultó que tenía varias referencias al mismo archivo en Xcode (¿esto probablemente significó que trató de procesar el archivo más de una vez?). Eliminar la referencia duplicada eliminó el problema.
Peter Johnson
Guardé mi png como NO ENTRELAZADO, todavía tengo este error cuando construyo por primera vez, pero la segunda vez que construyo, este error desapareció ...
Jing
23

Eso sucede cuando tiene varias entradas para el archivo de imagen en su archivo de proyecto. No tengo idea de por qué, pero eliminé todas las entradas, volví a cargar el proyecto y agregué el archivo nuevamente.

banane
fuente
Hmm, ¿estás seguro de que recibiste el mismo mensaje del compilador por tener dobletes?
Brainray
8
Este también era mi problema. Mis imágenes de lanzamiento estaban causando problemas. De forma predeterminada, XCode había agregado imágenes negras en mi carpeta Archivos de apoyo, luego agregué más, pero las negras no desaparecieron. Si el soporte de imagen de Launch es negro, eso significa que hay una imagen en su proyecto para él. Elimina las imágenes negras y trae las correctas. ¡Hice eso y ahora todo está bien otra vez!
dbDev
15

Compruebe que no tiene entradas duplicadas en la "Fase de creación" de Target -> "Copiar recursos del paquete"

Yohann T.
fuente
para cualquier otra persona que ni siquiera tenga imágenes en su proyecto ... esta solución fue la única de todas las respuestas que funcionó. No tengo imágenes, pero estoy usando el SDK de Facebook y tuve que eliminar todo lo que estaba en rojo en Build Phases-> Copy Bundle Resources.
Jeff Grimes
9

Puede ser la configuración "Comprimir archivos PNG" (de la sección Empaquetado de Configuración de compilación).

Resolví este error cambiándolo a "No".

puesta de sol
fuente
6

En mi caso, descubrí que mi png dañado no se abría en Photoshop. Abrí en vista previa, guardé como psd y luego volví a guardar desde Photoshop (guardar como -> png -> no entrelazado). Compila bien ahora en xcode 4.

jaime
fuente
5

Intente encontrar y volver a guardar estos archivos * .PNG usando "Vista previa" , para ser exactos: Archivo - Exportar ... - "guardar como PNG" . Me parece que sucede cuando guardas una imagen en Photoshop con el modo "Guardar para Web" y luego esta imagen se guardará con compresión especial (LZW) . Eso es todo, ¡buena suerte!

Resty
fuente
3

Parece que su archivo PNG list_cell.pngestá dañado. Xcode 4 realiza más comprobaciones que Xcode 3 en muchas áreas y revela problemas que han estado al acecho en su proyecto todo el tiempo.

¿Ha intentado abrir su archivo PNG en un editor de imágenes y guardarlo nuevamente?

Codo
fuente
1
Sí, ya lo abro en Vista previa, está bien. e intento guardarlo de nuevo, pero el error sigue apareciendo.
Michael Chen
No lo abra simplemente en Vista previa. También podría intentar solucionar los errores en la imagen. Ábralo con una aplicación que puede editar imágenes y almacenar una nueva versión de la imagen.
Codo
3

En mi caso, resolví el problema quitando la "tecla de espacio" en blanco en la carpeta / nombre de archivo.

Espero que esto también funcione para alguien.

inox
fuente
2

Los míos no estaban entrelazados, pero seguía recibiendo errores extraños de pngcrush. Eventualmente eliminé los archivos no solo del disco sino a través de XCode. Los agregué uno por uno al arrastrar y soltar en XCode, construyendo después de cada uno, esperando encontrar uno que tuviera un problema. Nunca lo hice. Mi conclusión es que realmente necesitas manipular los archivos de XCode y no el sistema de archivos en absoluto.

hofo
fuente
2

en mi caso con xcode 4.5 el problema se resuelve dando permiso con la terminal

chmod -R + rw / yourprojectpath / yourprojectfolder

Quizás esta no sea la mejor solución debido al bloqueo de archivos al compartir archivos. Pero servirá si tiene prisa.

Balázs Csordás
fuente
2

Tuve que eliminar las referencias a PNG y agregarlas al proyecto nuevamente. ¿Alguien tiene una mejor solución?

Alex L
fuente
1

Tuve que eliminar archivos png y luego ir a Objetivos -> Nombre de la aplicación -> Fases de compilación -> Agrupar recursos y eliminar los archivos de allí también.

cirinisp
fuente
1

Tengo el mismo error. Resultó que mis png eran en realidad jpeg. XCode los mostró correctamente, pero un dispositivo iOS no lo hizo. Lo resolvió guardando el jpg como png.

OnTwoWheels
fuente
1

Este error ocurre porque tiene una imagen en recursos que tiene menos de 5 píxeles de ancho o alto y está intentando cambiar el tamaño de esa imagen. Establezca todas las imágenes en un mínimo de 5 píxeles y el error desaparecerá.

ancajic
fuente
Esto es lo que me pasó, esto lo arregló.
Acero reciclado
1

Sigue los pasos:

 1. Take an image. 

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

 3. Drag it back to the Xcode.
tasnim ahmed
fuente
la respuesta debería ser más descriptiva
Nimit Dudani
0

En mi caso, tuve que eliminar todos los archivos PNG de la carpeta y luego volver a agregar los archivos sin tener que arrastrar y soltar las imágenes en la interfaz de usuario de Xcode (en Iniciar imágenes). Este último fue clave en mi caso, primero agregar los archivos a la carpeta y luego arrastrarlos a la interfaz de usuario de alguna manera causó un duplicado que lo arruinó todo. Pruébelo si nada más funciona para usted.

Jonathan
fuente
0

Yo tuve el mismo problema. Lo resolví eliminando las imágenes duplicadas. Verifique en diferentes carpetas. Ese era mi problema.

Javier Roberto
fuente
0

Resolví este error, aparece cuando cambia el nombre de las imágenes después de ponerlas en el proyecto, por lo que para resolver este problema, primero debe eliminar las imágenes actuales, cambiar el nombre de los archivos del buscador y luego copiar estas imágenes en el proyecto.

kakashy
fuente
0

Puede ser de ayuda. Verifique la Alpha Channelpropiedad como se muestra en la captura de pantalla adjunta. Debería serlo YESsi es NO.

ingrese la descripción de la imagen aquí

Ashvin Ajadiya
fuente
0

Puede ser de ayuda. Verifique la Alpha Channelpropiedad como se muestra en la captura de pantalla adjunta. Debería serlo YESsi es NO.

ingrese la descripción de la imagen aquí

Ashvin Ajadiya
fuente
0

Eva Madrazo publicó la respuesta correcta (al menos para problemas con PNG entrelazados), pero para aquellos que tengan este problema con un montón de imágenes como yo, pueden usar mogrify de forma recursiva para desentrelazar todos los archivos a la vez.

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

Cambiar el método de entrelazado no parece afectar la calidad de la imagen, pero afecta el tamaño de la imagen, ninguno le dará una imagen más pequeña.

Mogrify viene con ImageMagick y puedes instalarlo con homebrew.

Douglas Schmidt
fuente
0

Error:

Al leer / Volumes / Mac OS / RDC / Workpot / RestApp / RestApp / default1024_768.png pngcrush detectó el error libpng: no es un archivo PNG ..

Solución:

  1. Abrí el archivo "default1024_768" en la herramienta PaintBrush y lo guardé como archivo PNG con el mismo nombre.
  2. Reemplazó el archivo Icon en el proyecto Xcode.
  3. Limpiar -> Construir

Eso es todo su trabajo como encanto

Espero que esto ayude a alguien.

SwiftBoy
fuente