React Native运行iOS模拟器报错Unrecognized font family Segoe-Bold
可行解决步骤:
- 检查字体文件的Target Membership配置
打开Xcode找到四个Segoe系列字体文件,在右侧属性面板的「Target Membership」区域,确保你当前App的target已经被勾选,否则字体文件不会被打包进应用包。 - 核对构建阶段的资源配置
选中项目Target → 切换到「Build Phases」标签 → 展开「Copy Bundle Resources」,确认四个Segoe字体文件在资源列表中,不在的话手动点击+号添加。 - 对齐文件夹类型和Info.plist路径配置
如果你导入fonts文件夹到Xcode时选择的是「Create groups」(显示为黄色文件夹图标),Info.plist中直接写字体文件名即可,无需加fonts/前缀;如果选择的是「Create folder references」(显示为蓝色文件夹图标),才需要保留fonts/前缀,两种配置必须对应否则会找不到文件。 - 全量清理缓存重新构建
按顺序执行以下操作避免缓存干扰:- 关闭所有运行中的iOS模拟器
- 删除项目下
ios/build文件夹 - 执行命令
cd ios && xcodebuild clean清理Xcode构建缓存 - 回到项目根目录重新安装依赖:
rm -rf node_modules && npm install - 重新执行启动命令
npx react-native run-ios
- 核对字体实际名称
如果以上操作后依然报错,可以在iOS原生代码中添加调试逻辑打印所有已加载的字体,确认Segoe系列的实际PostScript名称是否和你RN代码中fontFamily属性写的完全一致,字体文件名和内部实际名称不匹配是非常常见的踩坑点。
// 调试用打印所有加载成功的字体 for (NSString *familyName in [UIFont familyNames]) { NSLog(@"Font Family: %@", familyName); for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) { NSLog(@" Font Name: %@", fontName); } }
内容的提问来源于stack exchange,提问作者Mushfiqur Rahman
相关产品推荐
相关产品推荐

