我有一个适用于 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 就是如此:
它们被编译成这样:
由于iOS 6 仍然是iOS 6,这些文件必须在Info.plist 中引用,否则现有系统将无法运行。查看此测试应用程序的已编译 Info.plist,您会看到 Xcode 已添加 CFBundleIconFiles
对我们来说,所以我们不需要。
我上传了我以前用的测试项目github.com/danielctull-tests/AssetTest .
关于ios7 - 图标、 Assets 目录和 Info.plist 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114843/