I would like to use custom font in my app, but I keep getting error
[RCTLog][tid:0x78f70450][RCTConvert.m:581]>Unrecognized font family \'Roboto\'
You don't need to install rnpm manually now. After step one, in step two, you can just use the command react-native link
and all your assets will be linked. rnpm is now being merged with react-naitve. Checkout this commit on RN https://github.com/facebook/react-native/commit/e8b508144fdcdea436cf4d80d99daec757505c70
There is an easier way of doing things through `rnpm. It adds fonts to both android and ios. Place the font you want to add to a suitable location inside your project directory. In your package.json just add the following:
...
"rnpm": {
"assets": ["path/to/your/font/directory"]
},
...
Then from command line do: rnpm link
you can now happily use your fonts in your app.
Note: you have to have rnpm installed for this to work.
Just do npm install -g rnpm
Here is the documentation: https://github.com/rnpm/rnpm#advanced-usage
The answer from Aakash is correct.
Method:
"rnpm": { "assets": ["./your/fonts/folder"] }
react-native link
in your terminalOptionally:
npm install -g rnpm
rnpm link
Example usage
"rnpm": { "assets": ["./src/assets/fonts"] }
react-native link
< Text style={{ fontFamily: myFont }}> Hello MyFont! < /Text >
Images: package.json link
Thanks for the great answer Aakash, hope you don't mind the re-breakdown for noobs like myself out there!
That's because iOS does not have the Roboto font available by default.
Exactly. To make it available you have to include it in your project from Xcode. Just follow the steps that this answer provides, it's pretty straightforward.
Once you have done this, then you should have no problem using it from JS.
add the font files (i.e. .otf OR .ttf) in root/assets/font folder in your project.
in package.json: rnpm: "assets": ["./assets/font"],
react-native.config.js
module.exports = {
project: {
ios: {},
android: {},
},
assets: ['./assets/fonts']
};
fontFamily: 'Robotto-Regular'
This should resolve any errors which will be coming of fonts not supporting and you can use your custom fonts.
create a file i.e defaultconfig.js
and in this file add the fonts then use
in widget by fontfamily:''montoface
Create a new group Fonts within your Xcode project
Drag and drop fonts from Finder to the Fonts group you just created, and check your project name in Add to targets list
Expand your project name folder within the main directory in your project and open Info.plist
Add Fonts provided by application
as a new key
Add a new item under Fonts provided by application
, and set the item value to the full font name with extension for each font you've added to the fonts folder
OpenSans-ExtraBold.ttf
, then that should be the value of the item.To use the font in React Native, simply set the fontFamily
style attribute for the element (see this). Note that the style should use the name of the font rather than the file name.
fontFamily: 'Open Sans'
Run Shift + Command + K to clean last build
Then Command + B to start a new build
And finally Command + R to run the application
If you still see the error Unrecognized font family restart your react packager.
https://github.com/alucic/react-native-cheat-sheet
Hope it helps!