在我的本机项目中无法识别Font Awesome

时间:2019-03-31 21:40:17

标签: ios reactjs react-native build font-awesome

我的应用程序中安装了react-native元素,但我不断收到此错误消息,提示无法识别的字体家族太棒了。

我已经重置了缓存,进行了npm安装,并删除了build文件夹并重新添加了它。似乎什么都没用,有什么主意吗?

该应用程序应正常运行。在我以前得到“ cfbundleidentifier不存在”错误之前,但是当我以为我已修复它时。我遇到了无法识别的fontfamily错误。enter image description here

3 个答案:

答案 0 :(得分:1)

最可能是因为它找不到图标,所以您需要这样做

npm install react-native-vector-icons --save

然后将其链接

react-native link react-native-vector-icons

答案 1 :(得分:0)

您必须执行一些步骤才能将字体添加到项目中,请检查每个步骤。

  1. 将字体文件夹添加到项目中的路径

    AppName / android / assets / fonts /

    AppName / ios / assets / fonts /

  2. 将字体与项目链接。为此,

    “ rnpm”:{“资产”:[“资产/字体”]}

将此行添加到项目的package.json 并运行

react-native link
  1. 应重新构建应用程序以识别字体:

    react-native run-ios

    react-native run-android

如果您不知道字体的确切名称,则可以在函数内部的AppDelegate.m中添加代码,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...


  NSArray *fontFamilies = [UIFont familyNames];

  for (int i = 0; i < [fontFamilies count]; i++)
  {
    NSString *fontFamily = [fontFamilies objectAtIndex:i];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
    NSLog (@"%@: %@", fontFamily, fontNames);
  }

}

然后在日志中查看字体的确切名称。

并将字体名称添加到您的项目中,

fontFamily: 'fontName'

答案 2 :(得分:0)

因此,经过数小时的研究,我找到了解决方案。我们要在RN V0.6>上添加Fontawesome或WHATEVER字体的问题是,“ react-native- vector-icons”与node_modules文件夹的链接不正确。这就是我所做的:

  • 在RN根项目上创建一个文件夹“资产/字体”

  • 将ttf文件复制到已创建的文件夹中,并且 BUG,文件的名称必须为“ lowercase.ttf”或“ lowercase_whatever_also_lowercase.ttf”。放置大写字母或“-”将崩溃。不知道为什么。

  • 在RN根项目上创建文件“ react-native.config.js”,然后粘贴以下内容:

module.exports = { 
    project: { 
      ios: {},
      android: {}, 
    },
    assets: ['./assets/fonts'] 
};

最后在终端上执行以下操作:

react-native start --reset-cache
react-native link
npm run ios

我测试了IOS并解决了。精疲力竭的问题是我无法想象的大写问题。