构建iOS 11+版本SDK应用时缺失CFBundleIconName键值的问题咨询
解决WatchKit App缺失CFBundleIconName的问题
刚帮同事踩过这个坑,给你一套能快速解决的步骤:
首先得明白为啥会出这个错:从iOS 11开始,苹果要求所有用对应及更高版本SDK构建的App(包括WatchKit App)必须用Asset Catalog来管理应用图标,而且必须在Info.plist里通过CFBundleIconName指定图标集的名称,不然就会报这个缺失值的错误。
具体解决步骤:
检查并配置WatchKit App的Asset Catalog
打开你的WatchKit App Target,找到对应的Assets.xcassets(如果是自定义的资源文件也一样):- 确认里面有Watch专用的图标集(默认命名是
AppIcon,要包含Apple Watch所需的所有尺寸图标) - 如果没有,右键点击Asset Catalog空白处 → 选择
New App Icon→ 选择Watch对应的图标模板,然后把符合尺寸要求的图标拖进对应的位置
- 确认里面有Watch专用的图标集(默认命名是
修改WatchKit App的Info.plist文件
找到WatchKit App Target下的Info.plist(注意是WatchKit App的,不是Extension的!错误提示的是watchkitapp包,别搞混了):- 直接添加键
CFBundleIconName,值设为你Asset Catalog里图标集的名称(比如默认的AppIcon) - 也可以用可视化界面操作:在Info.plist里搜索“Bundle Icon Name”,填入图标集名称即可
- 直接添加键
清理并重新构建项目
先执行Command+Shift+K清理项目,再用Command+Option+Shift+K清理Build文件夹,之后重新构建项目,这个错误应该就消失了。
额外注意事项:
- 一定要确保图标集里的图标尺寸完全符合苹果的规范,不然即使配置了
CFBundleIconName,可能还是会出现其他图标相关的错误 - 如果你的项目用了CocoaPods或者其他依赖管理工具,检查一下是否有脚本或者配置覆盖了你的Info.plist设置
内容的提问来源于stack exchange,提问作者user9683424
相关产品推荐
相关产品推荐

