[英]Splash Image naming clash and PNG crush error
我正在使用xCode5在我的一个Universal项目中添加启动图像。
当我为iPhone Non-Retina (iOS 6.1 or prior)
更早版本iPhone Non-Retina (iOS 6.1 or prior)
添加启动图像时,xCode要求我将图像重命名为Default.png(足够好)
我为iPhone添加了所有其他图像。
当我为iPad Portrait Non-Retina (iOS 6.1 or prior)
更早版本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
应该调用图像:
苹果手机:
iPad的:
---或者你可以使用“LandscapeLeft”和“LandscapeRight”和“PortraitUpsideDown”
通常不需要在末尾添加“~ipad”,因为您只能为iPad选择横向或纵向加载图像。 如果你真的需要指定设备特定的加载图像,那么你可以这样做,但使用波浪号(〜)而不是连字符( - )。
Apple的文档在这里: https : //developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/App-RelatedResources/App-RelatedResources.html
并确保你得到大写的“D”否则它将在模拟器上工作,但不在设备上。
似乎在xCode5中添加启动图像的顺序很重要。 如果没有添加启动图像,我直接为iPad非Retina添加图像,xCode强制我将其重命名为Default.png
,这适用于iPhone Splash Image。
我对所有启动图像进行了备份,将它们从我的项目中删除,然后按顺序再次添加它们,如下所示:
然后xCode没有强迫我将iPad Splash Image重命名为Default.png
另一个问题(实际上导致了pngcrush错误)是我的项目中有两个同名的图像。 一个在根目录上,一个在子目录中。 正如我在问题中解释的那样,这是因为xCode强行将两个图像重命名为相同的名称。
必须有两种可能性,
您的图片已损坏。 从photoshop中将其重新保存为.png或重新拍摄。 检查您是否在Xcode中添加了两个/多个引用。 如果是,则删除旧引用。
可能会帮到你。 检查Alpha Channel
属性,如附带的屏幕截图所示。 如果NO
那应该是YES
。
显然有两个相同的文件导致了这个问题。 删除了副本,错误就消失了。 在带有Xcode 6.1的iOS8.1上进行了测试
信用来自这个线程的答案iPad:PNG Crush错误
当您重命名不同格式的文件(例如jpg to png.
时,通常会发生这种情况jpg to png.
创建一个新的.png
并使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.