Bare React Native iOS端AstroSpace自定义字体不生效问题求助
AstroSpace自定义字体在React Native iOS项目不生效的解决方案
你之前成功配置过Montserrat,说明基础配置逻辑没问题,问题大概率出在AstroSpace字体的内部名称和你代码里写的fontFamily不匹配——很多非Google Fonts的字体,文件名和实际的字体内部家族名并不一致。
第一步:确认字体的真实内部名称
别盯着文件名纠结,必须查字体本身的正式家族名:
- 最简单的方式:在Mac上双击你的AstroSpace.ttf文件,打开Font Book,顶部显示的名称就是真实的字体家族名(比如可能是"Astro Space"带空格,或是"AstroSpace-Regular")。
- 用命令行验证:进入
assets/fonts目录,执行:
输出结果就是字体的正式family名称。otfinfo -f AstroSpace.ttf
第二步:修正代码里的fontFamily
把你代码中fontFamily: "AstroSpace"改成刚才查到的真实名称,比如如果查到是"Astro Space",就写:
<Text style={{ fontFamily: "Astro Space" }}>测试字体效果</Text>
第三步:iOS端额外校验(可选)
如果还是没生效,手动确认Xcode里的资源嵌入情况:
- 打开ios目录下的Xcode项目,找到
Info.plist,检查UIAppFonts数组里是否包含你的字体文件名:<key>UIAppFonts</key> <array> <string>AstroSpace.ttf</string> <!-- 或你重命名后的文件名 --> </array> - 查看Build Phases -> Copy Bundle Resources里是否有该字体文件,没有的话手动拖拽添加。
第四步:清理缓存后重新构建
按顺序执行以下命令,确保缓存和旧构建文件完全清除:
rm -rf ios/build npx react-native-asset npx react-native start --reset-cache npx react-native run-ios
这样就能正常加载AstroSpace字体了。
内容的提问来源于stack exchange,提问作者Jorge Ortiz
相关产品推荐
相关产品推荐

