ios7 - 图标、 Assets 目录和 Info.plist 混淆

标签 ios7 info.plist asset-catalog

我有一个适用于 iOS 5 的应用程序,此后一直在更新。对于 iOS 7,我已经切换到对所有资源使用 Assets 目录,这很好,而且运行良好。但是,当我尝试提交给 Apple 时,我收到验证错误:

Invalid Image Path - No image found at the path referenced under key 'CFBundleIconFiles': 'Icon@2x.png'



我对其他图标也有同样的错误。这些图标确实出现在 Assets 目录中,并且名称——就案例而言——就我所知完全匹配。 Assets 目录位于“复制捆绑资源”中,当我在 iPhone 和 iPad(在 iOS 7 中)以及在 iOS 6 模拟器中运行该应用程序时,所有资源都出现在正确的位置。

我已更新应用程序以使用 iOS 6 的最低部署目标。

那么,我如何成功地将我的更新提交给 Apple?我需要 Info.plist 中的引用吗?还有其他设置需要检查吗?警告是虚假的还是我应该忽略的(在提高雷达之后)?

最佳答案

当为 iOS 6 及更低版本编译 Assets 目录时,图像将放在应用程序包的根目录中,就像您只是以旧方式复制它们一样。发生这种情况时,Apple 根据 Assets 名称而不是文件名来命名图像,这意味着我们仍然可以使用 +[UIImage imageNamed:]在 iOS 6 及更低版本上获取 Assets 。

当我们在 Assets 目录中设置以下图标时,应用图标 Assets 就是如此:

enter image description here

它们被编译成这样:

enter image description here

由于iOS 6 仍然是iOS 6,这些文件必须在Info.plist 中引用,否则现有系统将无法运行。查看此测试应用程序的已编译 Info.plist,您会看到 Xcode 已添加 CFBundleIconFiles对我们来说,所以我们不需要。

enter image description here

我上传了我以前用的测试项目github.com/danielctull-tests/AssetTest .

关于ios7 - 图标、 Assets 目录和 Info.plist 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114843/

相关文章:

ios - 连续检查网络连接是否可用

ios - 查看 iPhone 5s 上是否启用了 Touch ID

ios - NSUserDefaults和.plist文件有什么区别

iphone - 如何显示最初从 plist iphone 中隐藏的状态栏

ios - 引用 Assets 目录中文件夹中的图像

ios - 关闭 dismissViewController 不会触发 viewWillAppear

ios - 如何正确地为 map 注释运动设置动画?

ios - 以编程方式更新 info.plist 中的值

xcode - 在测试目标中包含 Assets 目录

xcode - 有没有办法在Xcode 5或Xcode 6中更改xcassets View 的背景颜色?