Summary:
In newer builds of react-native if you passed parameters PRODUCTION=1, flipper pods won't get installed
you can see that in their codebase here [react_native_pods.rb](6a43fafd78/scripts/react_native_pods.rb (L140))
so when building ios `react-native-flipper` set `compiler_flags = '-DFB_SONARKIT_ENABLED=1'` in the podspec file
which initializeFlipper and lead to the following error:
`node_modules/react-native-flipper/ios/FlipperReactNativeJavaScriptPluginManager.h:12:9: 'FlipperKit/FlipperClient.h' file not found`
## Changelog
use same condition as react-native to wrap `s.compiler_flags = compiler_flags`
and conditionally pass `compiler_flags = '-DFB_SONARKIT_ENABLED=1'` to compiler_flags to avoid build problems
Pull Request resolved: https://github.com/facebook/flipper/pull/4275
Test Plan:
To reproduce
- create new react-native app
- install react-native-flipper `yarn add react-native-flipper`
- run `env PRODUCTION=1 npx pod-install `
- run `yarn ios`
Before patch:
```sh
node_modules/react-native-flipper/ios/FlipperReactNativeJavaScriptPluginManager.h:12:9: 'FlipperKit/FlipperClient.h' file not found
```
After patch:
```sh
▸ Build Succeeded
success Successfully built the app
```
Reviewed By: jknoxville
Differential Revision: D41298345
Pulled By: mweststrate
fbshipit-source-id: fb46772d46b8105fccb1abb673502bca428eea1d
react-native-flipper
This package exposes JavaScript bindings to talk from React Native JavaScript directly to flipper.
This package might also be required by other Flipper plugins for React Native.
Installation
Run the following command in the root of your React Native project
yarn add react-native-flipper
Note that this package requires React Native 0.62 or higher.
Usage
How to build Flipper plugins is explained in the flipper documentation: Creating a Flipper plugin. Building a Flipper plugin involves building a plugin for the Desktop app, and a plugin that runs on a Device (Native Android, Native IOS or React Native). This package is only needed for the plugin that runs on the mobile device, in React Native, and wants to use the JavaScript bridge.
This package exposes one method: addPlugin.
The addPlugin accepts a plugin parameter, that registers a client plugin and will fire the relevant callbacks if the corresponding desktop plugin is selected in the Flipper Desktop. The full plugin API is documented here.
Example
An example plugin can be found in FlipperTicTacToe.js.
The corresponding Desktop plugin ships by default in Flipper, so importing the above file and dropping the <FlipperTicTacToe /> component somewhere in your application should work out of the box.
The sources of the corresponding Desktop plugin can be found here.