我在我的应用程序中使用字体。所以我需要添加字体DIN-Next-lt-w23-常规在我的应用程序里。但我在IOS中遇到了错误,也就是说,Unrecognized font family 'din-next-lt-w23-regular'...我加了.ttf文件在IOS/资源和info.plist...这是我的代码react-native.config.js
module.exports = {
project: {
ios: {},
android: {},
},
assets: ['./assets/fonts/'],
};
截图:https://i.stack.imgur.com/MFGV2.png
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在React Native中使用自定义字体时,确保字体文件正确地被项目识别和链接是至关重要的。根据你的描述,你已经采取了一些正确的步骤,比如将字体文件放入指定的assets/fonts目录,并尝试在react-native.config.js中配置资产。但是,遇到“Unrecognized font family”错误通常意味着尽管文件存在,但可能没有被正确地复制到应用的bundle中,或者字体名称在代码中引用的方式与实际的字体文件名不匹配。
这里有几个检查点和解决步骤:
确保字体文件名正确:确认你的.ttf文件名(包括大小写)完全匹配你在代码中引用的字体名称。例如,如果文件名为DINNextLTW23-Regular.ttf
,那么在样式中引用时也应该是这个名字。有时候,字体文件名和其PostScript名称或Family Name不一致,需要根据实际查看。
清理并重新构建项目:有时缓存问题会导致新添加的资源未被正确识别。你可以尝试执行以下命令来清理并重建项目:
react-native run-ios --reset-cache
检查Info.plist:虽然你提到已将字体添加到了info.plist,但请再次确认字体的全名(包括后缀)是否正确列出。正确的格式应如下所示:
<key>UIAppFonts</key>
<array>
<string>DINNextLTW23-Regular.ttf</string>
</array>
使用react-native link(如果适用):对于一些旧版本的React Native项目,可能需要手动链接字体资源。虽然从React Native 0.60开始,自动链接功能成为默认,但如果你的项目版本较老,可以尝试运行react-native link
。不过,请注意这个命令在React Native 0.60及以上版本可能不再推荐使用,因为CocoaPods和其他自动管理工具已经内置了资源链接功能。
直接在Xcode中添加字体:作为最后的手段,你也可以直接在Xcode项目中手动添加字体文件。做法是在Xcode的Project Navigator中右键点击"Add Files to 'your_project_name'", 然后选择你的字体文件,并确保它们被添加到了"Copy items if needed" 和 "Add to targets" 的选项上。
如果以上步骤都尝试过还是无法解决问题,建议检查字体文件本身是否有损坏,或者尝试使用另一个字体文件看是否能正常工作,以排除特定字体文件的问题。