You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:27:27