Xcode 11 Beta无法将系统字体改为自定义字体问题求助
我之前在Xcode里也碰到过一模一样的情况,给你几个针对性的排查和解决步骤,应该能搞定:
确认字体文件的有效性与PostScript名称
很多时候问题出在字体名称上——你在Xcode界面里选的名称可能不是字体真正的PostScript名称。打开Mac的「字体册」,找到你的自定义字体,右键选择「显示字体信息」,里面的「PostScript名称」才是代码和Xcode识别的正确名称。比如你文件名是MyCustomFont.ttf,PostScript名称可能是MyCustomFont-Regular,千万别搞混了。检查Info.plist的配置
确保Info.plist里的Fonts provided by application(或者叫「应用程序提供的字体」)数组里,已经正确添加了你的字体文件名,必须包含后缀(比如.ttf、.otf),而且拼写完全和文件名一致,大小写也不能错。如果有多个字体文件,要逐个添加进去。验证字体是否被打包进项目
进入项目的Build Phases->Copy Bundle Resources,看看你的自定义字体文件是不是在列表里。如果没有,点击「+」按钮把字体文件加进去——有时候导入字体时没勾选对应的target,就会导致字体没被打包到APP里,Xcode自然识别不了。清理Xcode缓存并重启
Xcode的缓存偶尔会抽风,试试按Shift+Command+K清理Build Folder,然后完全退出Xcode(不要只是最小化),再重新打开项目试试。必要的话可以重启一下Mac,有时候能解决一些莫名其妙的缓存问题。用代码直接设置字体(备选方案)
如果界面里还是选不了,直接用代码设置反而更可靠。比如:// 这里替换成你字体的PostScript名称和想要的字号 label.font = UIFont(name: "MyCustomFont-Regular", size: 17.0)这样绕开Xcode界面的限制,同时也能验证字体是否真的能被APP识别。如果代码设置也不行,那大概率是前面的步骤没做好。
排查系统字体冲突
如果你之前在Mac系统里安装过这个字体,现在可能出现了冲突。打开字体册,找到这个字体,右键选择「移除「XXX」字体」,然后重新导入项目里的字体文件,再试试Xcode里的选项。
内容的提问来源于stack exchange,提问作者Eihab

