Swift项目中Myriad Pro Regular字体生效仍报找不到警告的求助
解决自定义字体警告问题的几个建议
我来给你梳理几个可行的排查方向,试试这些步骤:
确认字体的准确内部名称
你打印出来的Optional("MyriadPro-Regular")可能和系统识别的字体内部名称不匹配。很多字体的文件名和内部注册名是不一样的,比如Myriad Pro的内部名可能存在格式差异。你可以运行这段代码遍历所有可用字体,精准找到对应的名称:for family in UIFont.familyNames.sorted() { let names = UIFont.fontNames(forFamilyName: family) print("Family: \(family) Font names: \(names)") }搜索输出里的“Myriad”相关条目,找到正确的字体名后,替换代码里的引用名称。
检查字体导入的配置细节
- 确保字体文件(.otf/.ttf)已经添加到项目,并且在Target Membership里勾选了你的应用target;
- 打开
Info.plist,查看Fonts provided by application(对应键UIAppFonts)的条目,确认每个条目都是字体文件的完整文件名(含扩展名),拼写和大小写必须完全匹配,系统对这个是敏感的; - 如果用Asset Catalog管理字体,检查Asset里的字体设置,
Font Name要和刚才找到的内部名一致,且Asset已关联到target。
排查新警告的来源
你启用新设置后出现了新警告,大概率是配置冲突导致的。建议先恢复到之前的设置,先解决原有的“字体找不到”警告,再逐步调整配置。比如如果Info.plist已经配置了字体,就不要在项目设置里重复勾选字体相关选项,避免重复注册。彻底清理缓存
除了常规的清理项目(Cmd+Shift+K),还要:- 删除Derived Data:打开Xcode的
Settings->Locations,找到Derived Data的路径,打开文件夹后删除对应项目的文件夹; - 卸载设备/模拟器上的应用,重新编译运行,避免旧的字体缓存残留。
- 删除Derived Data:打开Xcode的
真机测试验证
有时候模拟器的字体缓存机制和真机有差异,建议在真机上测试,确认警告是否依然存在,排除模拟器的特殊情况。
内容的提问来源于stack exchange,提问作者user2586851
相关产品推荐
相关产品推荐

