Xcode 12.3 iOS项目出现MacFamily20,1设备特征集获取失败警告如何解决?
关于Xcode 12.3中Assets.xcassets无法获取MacFamily20,1 (M1 MacBook Air) 14.2特征集警告的解析与解决办法
先给你拆解下这个警告的含义:
MacFamily20,1其实就是M1芯片的MacBook Air的设备标识,这个警告的核心原因是Xcode 12.3的资源管理系统(Assets.xcassets)里,没有内置iOS 14.2版本下该M1设备对应的资源特征集配置。因为你选择的构建目标是“My Mac (Designed for iPad)”,Xcode会尝试为这个Mac目标匹配对应iOS版本的设备资源规则,而Xcode 12.3作为较早适配M1的版本,在资源特征的覆盖上还存在遗漏,所以触发了这个警告。
接下来给你几个可行的解决办法,你可以根据自己的项目情况选择:
升级Xcode到最新兼容版本(最推荐)
苹果在后续的Xcode版本(比如Xcode 13及以上)里完善了M1设备的资源特征集定义,升级之后这个警告会自动消失。而且新版本的Xcode也会带来更多M1设备适配的优化,对长期开发更友好。手动补充缺失的资源特征配置(适合无法升级Xcode的场景)
- 右键点击项目中的
Assets.xcassets文件,选择「Show Package Contents」 - 打开其中的
Contents.json文件,找到你对应的资源条目(比如AppIcon或者自定义资源) - 在该条目的
properties字段中添加适配MacFamily20,1和iOS 14.2的配置,示例如下:{ "idiom": "mac", "subtype": "mac-family20.1", "minimum-system-version": "14.2", "scale": "1x" } - 保存文件后回到Xcode,重新构建项目,警告应该就会消失。
- 右键点击项目中的
暂时忽略警告(如果资源显示正常)
如果你的App在M1 MacBook Air上运行时,所有资源(图标、图片等)都显示正常,这个警告其实只是配置层面的缺失,不会影响实际功能。你可以通过Xcode的Build Settings来屏蔽它:- 打开项目的Build Settings面板,搜索「Other Warning Flags」
- 添加
-Wno-resource-not-found来精准忽略这类资源缺失警告,也可以用更宽泛的-Wno-unavailable覆盖同类型警告。
内容的提问来源于stack exchange,提问作者de.
相关产品推荐
相关产品推荐

