3

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

当我添加启动图像时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

4

6 回答 6

5

图像应称为:

苹果手机:

  • 默认.png
  • 默认@2x.png
  • 默认-568h@2x.png

平板电脑:

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

--- 或者你可以使用 "LandscapeLeft" 和 "LandscapeRight" & "PortraitUpsideDown"

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

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

并确保你得到大写的“D”,否则它将在模拟器上工作,而不是在设备上工作。

于 2013-10-02T03:17:54.987 回答
3

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

我备份了所有的初始图像,从我的项目中删除它们,然后按如下所示的顺序再次添加它们:

在此处输入图像描述

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

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

于 2013-10-02T09:33:03.777 回答
0

应该有两种可能

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

于 2013-10-02T06:01:06.610 回答
0

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

归功于此线程 iPad 的答案:PNG Crush 错误

于 2014-10-20T23:01:57.817 回答
0

可能对你有帮助。检查Alpha Channel属性,如随附的屏幕截图所示。它应该是YES如果它的NO. 在此处输入图像描述

于 2013-12-17T10:02:02.167 回答
-1

当您重命名不同格式的文件时通常会发生这种情况jpg to png.

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

  • 在预览中打开您的新图像。
  • cmd+a 并选择图像的全部内容。
  • 单击文件>从剪贴板中选择新的。
  • 保存指定格式类型 png 的文件并使用它。
于 2013-10-02T02:26:30.267 回答