Xcode 13.2.1属性检查器中已配置的Poppins字体不显示怎么办
Xcode 13.2.1 导入Poppins字体后属性检查器不显示的排查与解决
按以下优先级逐一排查,90%以上的同类问题都能定位:
- 第一步:校验字体文件名与Info.plist配置的匹配度
不要用字体的显示名当plist里的配置值,也不要凭文件名想当然填写:打开导入项目的Poppins字体文件,通过系统字体册查看文件的实际全名,Info.plist中Fonts provided by application数组下的每一项,必须和项目内存储的字体文件名完全一致,包含后缀名,大小写严格匹配——Xcode构建系统对资源名大小写敏感,哪怕本地macOS分区不区分大小写,构建阶段也会出现资源读取失败。 - 第二步:校验字体文件的Target归属
不要只检查Build Phases下的Copy Bundle Resources列表:选中项目内每个Poppins字体文件,打开右侧文件检查器,确认Target Membership区块下,你当前正在调试的App Target处于勾选状态。拖入文件时漏勾Target是高频问题,后续手动把文件加进Copy Bundle Resources也可能出现引用异常。 - 第三步:确认你修改的是当前Target生效的Info.plist
多Target项目、自定义构建配置的项目很容易踩这个坑:进入对应Target的Build Settings,搜索INFOPLIST_FILE字段,确认路径指向的plist文件就是你之前添加字体配置的文件,避免改了无关plist做无用功。 - 第四步:清理缓存排除冲突
- 执行终端命令清理Xcode构建缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData/* - 回到Xcode,按下
Shift+Command+K执行Clean Build Folder - 打开系统字体册,删除之前全局安装在系统里的Poppins字体,避免系统字体缓存和项目内字体产生冲突
- 完全退出Xcode后重新打开项目
- 执行终端命令清理Xcode构建缓存:
- 第五步:运行时校验字体是否真的被打包,排除Xcode属性检查器本身的bug
在任意ViewController的viewDidLoad方法中加入以下代码,运行项目查看控制台输出:for family in UIFont.familyNames.sorted() { print("字体家族:\(family)") for name in UIFont.fontNames(forFamilyName: family) { print(" 字体名:\(name)") } }- 如果控制台能打印出完整的Poppins字体家族和对应字重名称,说明字体已经被正确打包,只是Xcode 13.x版本的属性检查器存在已知bug,不会自动枚举项目内的自定义字体。这种情况你可以直接在代码里给控件赋值对应字体,也可以在属性检查器的字体选择框里手动输入控制台打印出的完整字体名,即可正常生效。
- 如果控制台找不到任何Poppins相关的字体条目,回到第一步重新检查配置,同时确认你下载的Poppins字体文件没有损坏——网络不稳定时下载的字体文件可能存在截断损坏,重新下载后再导入即可。
内容的提问来源于stack exchange,提问作者forestvine
相关产品推荐
相关产品推荐

