Not every app uses all the native capabilities, and including the code to support all those features would impact the binary size... But we still want to make it easy to add these features whenever you need them.
With that in mind we exposed many of these features as independent static libraries.
For most of the libs it will be as simple as dragging two files, sometimes a third step will be necessary, but no more than that.
All the libraries we ship with React Native live on the
Libraries folder in
require it. Other libraries also rely on some native code, in that case
you'll have to add these files to your app, otherwise the app will throw an
error as soon as you try to use the library.
Install a library with native dependencies:
--save-dev flag is very important for this step. React Native will link
your libs based on
devDependencies in your
Link your native dependencies:
Done! All libraries with a native dependencies should be successfully linked to your iOS/Android project.
If the library has native code, there must be a
.xcodeproj file inside it's
Drag this file to your project on Xcode (usually under the
Click on your main project file (the one that represents the
Build Phases and drag the static library from the
inside the Library you are importing to
Link Binary With Libraries
Not every library will need this step, what you need to consider is:
Do I need to know the contents of the library at compile time?
This step is not necessary for libraries that we ship with React Native with the
In the case of the
PushNotificationIOS for example, you have to call a method
on the library from your
AppDelegate every time a new push notification is
For that we need to know the library's headers. To achieve that you have to go
to your project's file, select
Build Settings and search for
Paths. There you should include the path to your library (if it has relevant
files on subdirectories remember to make it
React on the
You can edit the content above on GitHub and send us a pull request!