React Native移除link命令后,如何手动添加自定义字体?
React Native 手动添加自定义字体(解决Unrecognized font family问题)
iOS 手动配置步骤
- 在项目根目录创建
assets/fonts文件夹,将你的.ttf字体文件放入其中。 - 打开Xcode,右键项目导航栏选择「Add Files to [你的项目名]」,选中字体文件,确保勾选Copy items if needed,同时确认Targets列表里的主项目已被勾选。
- 选中字体文件,查看右侧面板的Target Membership,必须确保主项目的复选框处于勾选状态(这是极易忽略的关键步骤)。
- 编辑
Info.plist:右键该文件选择「Open As -> Source Code」,添加以下配置(替换为你的字体文件名):
<key>UIAppFonts</key> <array> <string>CustomFont-Regular.ttf</string> <string>CustomFont-Bold.ttf</string> </array>
- 清理Xcode构建缓存:点击菜单栏「Product -> Clean Build Folder」(快捷键Cmd+Shift+K),然后重启Metro服务:
npx react-native start --reset-cache,最后重新运行iOS项目:npx react-native run-ios。
Android 手动配置步骤
- 在
android/app/src/main/assets目录下创建fonts文件夹(若不存在assets目录则新建),将.ttf字体文件放入其中。 - 打开
android/app/build.gradle,在android代码块中添加打包配置:
android { // 其他已有的配置... packagingOptions { pickFirst 'fonts/*.ttf' } }
- 重启Metro服务并重新运行Android项目:
npx react-native run-android。
关键排查要点
- 确认字体的实际家族名称:部分字体的文件名和内部家族名不一致,双击字体文件查看顶部显示的名称(比如文件名是
MyFont-Regular.ttf,实际家族名可能是MyFont),代码中使用字体时必须用这个实际名称。 - 严格匹配文件名大小写:iOS对文件名大小写敏感,
MyFont.ttf和myfont.ttf会被识别为不同文件,必须和Info.plist中的配置完全一致。 - 强制清理缓存:Metro缓存可能导致字体不生效,重启时一定要加上
--reset-cache参数。 - 避免直接拖放文件到Xcode:直接拖放可能导致文件未被正确关联到目标项目,务必使用「Add Files」的方式添加。
内容的提问来源于stack exchange,提问作者realsenorloadenstein
相关产品推荐
相关产品推荐

