Splash Image命名冲突和PNG压缩错误

时间:2013-10-01 21:23:24

标签: ios xcode

我正在使用xCode5在我的一个Universal项目中添加启动图像。

当我为iPhone Non-Retina (iOS 6.1 or prior)添加启动图像时,xCode要求我将图像重命名为Default.png(足够好)

我为iPhone添加了所​​有其他图片。

当我为iPad Portrait Non-Retina (iOS 6.1 or prior)添加启动图像时,xCode再次要求我将文件重命名为Default.png并将其放在子目录中。

现在,当我尝试构建项目时,由于文件名相同,它会出现PNG Crush错误。

这是确切的错误: 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

6 个答案:

答案 0 :(得分:5)

应该调用图像:

iPhone:

  • 为Default.png
  • Default@2x.png
  • Default-568h@2x.png

ipad公司:

  • 默认-Portrait.png
  • Default-Portrait@2x.png
  • 默认-Landscape.png
  • Default-Landscape@2x.png

---或者您可以使用“LandscapeLeft”和“LandscapeRight”& “PortraitUpsideDown”

通常不需要在末尾添加“~ipad”,因为您只能为iPad选择横向或纵向加载图像。如果你真的需要指定设备特定的加载图像,那么你可以这样做,但使用波浪号(〜)而不是连字符( - )。

Apple的文档在这里:https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/App-RelatedResources/App-RelatedResources.html

并确保以大写字母显示“D”,否则它将在模拟器上运行,但不适用于设备。

答案 1 :(得分:3)

似乎在xCode5中添加启动图像的顺序很重要。如果没有添加启动图像,我直接为iPad非Retina添加图像,xCode强制我将其重命名为Default.png,这是为了iPhone Splash Image。

我对所有启动图像进行了备份,将其从我的项目中删除,然后按顺序再次添加它们,如下所示:

enter image description here

然后xCode没有强迫我将iPad Splash Image重命名为Default.png

另一个问题(实际上导致了pngcrush错误)是我的项目中有两个同名的图像。一个在根目录上,一个在子目录中。正如我在问题中解释的那样,这是因为xCode强行将两个图像重命名为同名。

答案 2 :(得分:0)

必须有两种可能性,

您的图片已损坏。从photoshop中将其重新保存为.png或重新拍摄。 检查您是否在Xcode中添加了两个/多个引用。如果是,则删除旧的引用。

答案 3 :(得分:0)

可能会帮到你。 检查Alpha Channel属性,如附带的屏幕截图所示。 如果是YES,则应为NOenter image description here

答案 4 :(得分:0)

显然有两个相同的文件导致了这个问题。删除了副本,错误就消失了。在带有Xcode 6.1的iOS8.1上进行了测试

信用来自这个线程的答案 iPad: PNG Crush error

答案 5 :(得分:-1)

当您重命名不同格式的文件jpg to png.

时,通常会发生这种情况

创建一个新的.png并使用它。

  • 预览中打开新图片。
  • cmd + a并选择图像的全部内容。
  • 点击文件>从剪贴板中选择新文件。
  • 保存指定格式类型为png的文件并使用它。