我正在使用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
答案 0 :(得分:5)
应该调用图像:
iPhone:
ipad公司:
---或者您可以使用“LandscapeLeft”和“LandscapeRight”& “PortraitUpsideDown”
通常不需要在末尾添加“~ipad”,因为您只能为iPad选择横向或纵向加载图像。如果你真的需要指定设备特定的加载图像,那么你可以这样做,但使用波浪号(〜)而不是连字符( - )。
并确保以大写字母显示“D”,否则它将在模拟器上运行,但不适用于设备。
答案 1 :(得分:3)
似乎在xCode5中添加启动图像的顺序很重要。如果没有添加启动图像,我直接为iPad非Retina添加图像,xCode强制我将其重命名为Default.png
,这是为了iPhone Splash Image。
我对所有启动图像进行了备份,将其从我的项目中删除,然后按顺序再次添加它们,如下所示:
然后xCode没有强迫我将iPad Splash Image重命名为Default.png
另一个问题(实际上导致了pngcrush错误)是我的项目中有两个同名的图像。一个在根目录上,一个在子目录中。正如我在问题中解释的那样,这是因为xCode强行将两个图像重命名为同名。
答案 2 :(得分:0)
必须有两种可能性,
您的图片已损坏。从photoshop中将其重新保存为.png或重新拍摄。 检查您是否在Xcode中添加了两个/多个引用。如果是,则删除旧的引用。
答案 3 :(得分:0)
可能会帮到你。
检查Alpha Channel
属性,如附带的屏幕截图所示。
如果是YES
,则应为NO
。
答案 4 :(得分:0)
显然有两个相同的文件导致了这个问题。删除了副本,错误就消失了。在带有Xcode 6.1的iOS8.1上进行了测试
信用来自这个线程的答案 iPad: PNG Crush error
答案 5 :(得分:-1)
当您重命名不同格式的文件jpg to png.
创建一个新的.png
并使用它。