Imagen de salpicadura, choque de nombres y error de aplastamiento PNG.

Estoy agregando imágenes de bienvenida en uno de mis proyectos universales usando xCode5.

Cuando agrego la image splash para iPhone Non-Retina (iOS 6.1 or prior) , xCode me pide cambiar el nombre de la image a Default.png (lo suficientemente bueno)

Agrego todas las demás imágenes para iPhone.

Cuando agrego la image de bienvenida para iPad Portrait Non-Retina (iOS 6.1 or prior) , xCode me pide que cambie el nombre del file a Default.png y lo coloque en un subdirectory.

Ahora cuando trato de build el proyecto, da el error PNG Crush debido a los mismos nombres de file.

Aquí está el error exacto: While reading /Volumes/iosWorkspace/projectName/projectName/Default@2x.png pngcrush caught libpng error: Command /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/copypng emitted errors but did not return a nonzero exit code to indicate failure

Las imágenes deben ser llamadas:

iPhone:

iPad:

— o puede usar "LandscapeLeft" y "LandscapeRight" y "PortraitUpsideDown"

Por lo general, no es necesario agregar un "ipad" al final porque solo puedes elegir imágenes de carga de paisaje o retrato para el iPad. Si realmente necesita especificar imágenes de carga específicas del dispositivo, puede hacerlo, pero use una tilde (~) en lugar de un guión (-).

La documentation de Apple está aquí: https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/App-RelatedResources/App-RelatedResources.html

Y asegúrese de get la "D" en mayúsculas, de lo contrario, funcionará en el simulador pero no en el dispositivo.

Parece que en xCode5 importa agregarle imágenes de bienvenida. Si no se agrega una image de bienvenida y agrego directamente una image para iPad que no sea Retina, xCode me obliga a cambiar el nombre a Default.png que debe ser para iPhone Splash Image.

Tomé una copy de security de todas las imágenes de bienvenida, las eliminé de mi proyecto y las agregué de nuevo en el order como se muestra a continuación:

introduzca la descripción de la imagen aquí

Entonces, el xCode no me forzó a cambiar el nombre del iPad Splash Image to Default.png

Otro problema (que en realidad estaba causando el error pngcrush) fue que tenía dos imágenes con el mismo nombre en mi proyecto. Uno en el directory raíz y uno en el subdirectory. Como expliqué en la pregunta, esto se debió a que xCode estaba cambiando a la fuerza las dos imágenes con el mismo nombre.

Tiene que haber dos posibilidades,

Tu image está dañada. Resérvalo como .png desde photoshop o toma uno nuevo. Compruebe si ha agregado dos o múltiples references en Xcode o no. Si es así, elimine las references antiguas.

Puede ser de ayuda. Compruebe Alpha Channel propiedad del Alpha Channel como se muestra en la captura de pantalla adjunta. Debería ser YES si es NO . introduzca la descripción de la imagen aquí

Aparentemente había dos files idénticos que causaron este problema. Se eliminó el duplicado y el error desapareció. Probé esto en iOS8.1 con Xcode 6.1

El crédito va a la respuesta de este subprocess iPad: Error de PNG Crush

Suele suceder cuando cambia el nombre de un file de diferente formatting, por ejemplo, jpg to png.

Cree un .png nuevo y .png .

  • Abra su nueva image en vista previa.
  • cmd + ay select todos los contenidos de la image.
  • Haga clic en file> select nuevo desde el portapapeles.
  • Guarde el file especificando el formatting tipo png y úselo.