为啥我的备用图标可以在 iPhone 上工作,但不能在 iPad 上工作?
Posted
技术标签:
【中文标题】为啥我的备用图标可以在 iPhone 上工作,但不能在 iPad 上工作?【英文标题】:Why do my alternate icons work on iPhone but not on iPad?为什么我的备用图标可以在 iPhone 上工作,但不能在 iPad 上工作? 【发布时间】:2018-09-05 04:23:20 【问题描述】:当我构建并部署到 iPhone 时,我可以拨打 UIApplication.shared.setAlternateIconName
就好了。在 iPad Pro 上运行时,出现以下错误:
Error Domain=NSCocoaErrorDomain Code=4 "该文件不存在。" UserInfo=NSUnderlyingError=0x1c0857700 Error Domain=LSApplicationWorkspaceErrorDomain Code=-105 "iconName not found in CFBundleAlternateIcons entry" UserInfo=NSLocalizedDescription=iconName not found in CFBundleAlternateIcons entry
使用以下代码:
UIApplication.shared.setAlternateIconName(icons[indexPath.row].name) err in
if let err = err
print("Woops ! \(String(describing: err))")
我有每个图标的标准、2x 和 3x 版本,从 60x60、120x120 和 180x180 不等。这些图像松散地放置在项目中,而不是资产包中。它们在我的 Info.plist 中被引用。
发生了什么事?为什么 iPhone 和 iPad 有区别?
【问题讨论】:
【参考方案1】:Info.plist 中需要一个单独的 CFBundleIcons 条目,专门用于 iPad。它必须命名为 CFBundleIcons~ipad。只需复制您当前的 CFBundleIcons 条目并重命名即可。
【讨论】:
我认为这是一个更好的答案,因为您不需要重复的图像【参考方案2】:您还必须为 ipad 分辨率添加图像。他们的名字必须类似于icon@2x~ipad.png
。 ~ipad
就是区别
ipad 的尺寸是
iPad Pro 167px × 167px (83.5pt × 83.5pt @2x)
iPad, iPad mini 152px × 152px (76pt × 76pt @2x)
【讨论】:
差不多了,不过你让我走上了正确的道路。我需要带有 ~ipad 后缀的 CFBundleIcons 的第二个副本。谢谢!对不起,我之前不小心删除了你的评论。按钮太小了,我有点烦躁。 是的,就是这样写的。我忘了。必要的设置有点令人困惑,我自己从未使用过此功能。删除的评论没有问题 @austintt 你会检查这个 Q 吗? ***.com/questions/51949430/… 如果 iPad (152px) 和 iPad Pro (167px) 需要 @2x,那么正确的命名约定是什么?例如,我的项目中有 'blueAppIcon@2x~ipad.png' 作为松散文件(即 152px),但如果我想为 iPad Pro 添加另一个文件,应该叫什么? 好的,命名和iPhone一样。只需欺骗 CFBundleIcons(并将欺骗命名为CFBundleIcons~ipad
)树。当然,如果你真的想为不同的屏幕尺寸提供不同的质量,你可以对不同的尺寸进行不同的命名并编辑复制树。【参考方案3】:
请对plist进行以下设置,为ihone和iPad设置备用图标
【讨论】:
以上是关于为啥我的备用图标可以在 iPhone 上工作,但不能在 iPad 上工作?的主要内容,如果未能解决你的问题,请参考以下文章
更改 iPhone 和 iPad 上的备用图标 (setAlternateIcon for iPhone & iPad)