108

I am trying to build a react-native app in iOS but unfortunately coming across the following issue (referring to libevent/Flipper):

'event2/event-config.h' file not found

I have react-native v0.63.4 and I have linked the packages using react-native link and also run pod update. I have also deleted my Podfile.lock and run pod install again.

My guess is that it is something to do with the Flipper version? When I comment out use_flipper! in my Podfile and build, it works.

Any ideas on how I can resolve this?

UsmanJ
  • 1,279
  • 2
  • 10
  • 15

16 Answers16

157

Facebook released an update yesterday for flipper with v74 and added support for arm64 devices.

so Flipper v74 should have a fix for arm64 devices

Setup:

Using the latest Flipper SDK#

By default React Native might ship with an outdated Flipper SDK. To make sure you are using the latest version, determine the latest released version of Flipper by running npm info flipper.

  • Android:

    Bump the FLIPPER_VERSION variable in android/gradle.properties, for example: FLIPPER_VERSION=0.74.0. Run ./gradlew clean in the android directory.

  • iOS:

    Call use_flipper with a specific version in iOS/Podfile, for example: use_flipper!({ 'Flipper' => '0.74.0' }). Run pod install in the ios directory.

we can see how to setup flipper for react-native here: https://fbflipper.com/docs/getting-started/react-native

This link Solved my issue..Update of pods after changing Flipper Version..refer this

with this version I fixed the 'event2/event-config.h' file not found issue.


Update


Xcode version is now 12.5 and needs a new Flipper version to be installed.

Flipper v95 is now released.

here how to add it:

use_flipper!({ 'Flipper' => '0.95.0' })

starball
  • 20,030
  • 7
  • 43
  • 238
Sohaib
  • 1,972
  • 3
  • 9
  • 19
  • 3
    These are the flipper depedencies that worked for me with the following setup: - M1 Macbook Pro - Clean RN 0.64 Install - XCode 12.5 `use_flipper!({ 'Flipper' => '0.90.0', 'Flipper-Folly' => '2.6.7', 'Flipper-RSocket' => '1.4.3' })` – wilson208 May 14 '21 at 18:07
72

I bumped into the same issue after updating to Xcode 12.4 and updating MacOS. The issue comes from files in flipper-folly.

How to fix it

1. If you don't need flipper

If you are not using flipper in your app, just open your Podfile in your ios app project folder and comment out these lines of code.

use_flipper!
post_install do |installer|
  flipper_post_install(installer)
end

2. If you need to use flipper in your app.

If you still need to use flipper in your app then specify the flipper-folly version as follows

 use_flipper!({ 'Flipper-Folly' => '2.3.0' }) # update this part
 post_install do |installer|
   flipper_post_install(installer)
 end

NOTE:

You will need to update your pods by running

pod update  

or

 pod install

Also remember to update your cocoapods

sudo gem install cocoapods

Refer to this issue for more information.

starball
  • 20,030
  • 7
  • 43
  • 238
Hillkim Henry
  • 2,841
  • 13
  • 17
15

A common mistake was use_flipper instead of add_flipper_pods

In Podfile I Found every one is using

use_flipper!({ 'Flipper-Folly' => '2.3.0' })

But I use

add_flipper_pods!('Flipper' => '0.74.0')

then run

pod install

solved for me

Rasheed Qureshi
  • 1,215
  • 1
  • 11
  • 19
  • 1
    Worked for me. Installing Flipper 0.74.0 (was 0.41.5) Installing FlipperKit 0.74.0 (was 0.41.5). Thanks! – Dazzle Feb 11 '21 at 23:17
9
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '10.0'

target 'client' do
  config = use_native_modules!

  use_react_native!(:path => config["reactNativePath"])

  target 'clientTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
#  use_flipper!
  use_flipper!({ 'Flipper' => '0.80.0' })
  post_install do |installer|
    flipper_post_install(installer)
  end
end

target 'client-tvOS' do
  # Pods for client-tvOS

  target 'client-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end
end

Just change use_flipper! to use_flipper!({ 'Flipper' => '0.80.0' }) Then either in ios folder, run pod install again, or in your react native project root directory, run npx pod-install again.

Ho Chung Wong
  • 351
  • 2
  • 6
6

Not sure exactly where this crept in, but I had the same problem. I did a macos xcode update last night. I also frequently update the project dependencies, so either of those might have triggered this.

In anycase, it appears that the Podfile.lock somehow switched from CocoaLibEvent to libevent 2, which seems to be the issue with 'event2/event-config.h' file not found

I deleted Podfile.lock and ./Pods/ Then did a pod repo update, and pod update and now its working again.

spanky
  • 151
  • 10
  • I gave this a go but didn't seem to work. Although we have the same issue by the looks of it. You deleted the Podfile.lock and ./Pods/ but didn't need to make any changes to the Podfile itself? When I do as you suggested, it created the Podfile.lock with the same data as before I delete it (with libevent rather than CocoaLibEvent). – UsmanJ Feb 04 '21 at 09:49
  • Did the same and project is building again. - Remove Podfile.lock, Pods/ then do pod repo update and at last - pod update. – Matej Vehar Feb 09 '21 at 16:20
6

2 steps to solve the issue:

  1. add the following line in iOS/PodFile via xcode

    use_flipper!({ 'Flipper' => '0.74.0' })

  2. run pod install in terminal inside project's iOS directory

now try to build, it would be successful

Harshal
  • 7,562
  • 2
  • 30
  • 20
6

If you have

add_flipper_pods

In your Podfile then replace that line by below code

add_flipper_pods!({ 'Flipper' => '0.87.0', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1' })

If you have

use_flipper

In your Podfile then replace that line by below code

use_flipper!({ 'Flipper' => '0.87.0', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1' })
Mizanur Rahman Khan
  • 1,612
  • 1
  • 12
  • 19
5

I have Update macOS and Xcode after that I have got this problem. this seems that Flipper 2.5.1 has some problem. u can simply rid out of it by simple the following code into your profile Here are some screenshots that may help you. Here is the file you have to update you can check that after downgrading to flipper 2.3.0 my issue was solved

after this update your pod with the command

pod update

and also

  sudo gem install cocoapods.
2

This seems to have something to do with pod update vs pod install. I've always used pod update without much problem:

pod update:

Downloading dependencies
Installing Flipper-Folly 2.5.1 (was 2.3.0)
Installing Flipper-RSocket 1.3.0 (was 1.1.0)
Installing OpenSSL-Universal 1.1.180 (was 1.0.2.20)
Installing libevent (2.1.12) <<<<<<<<<<<<<<
Removing CocoaLibEvent <<<<<<<<<<<<<
Generating Pods project
Integrating client project

pod install:

Analyzing dependencies
Downloading dependencies
Installing CocoaLibEvent (1.0.0) <<<<<<<<<<<<
Installing Flipper-Folly 2.3.0 (was 2.5.1)
Installing Flipper-RSocket 1.1.0 (was 1.3.0)
Installing OpenSSL-Universal 1.0.2.20 (was 1.1.180)
Removing libevent <<<<<<<<<<<
Generating Pods project
Integrating client project

I'm definitely out of my element here....

spanky
  • 151
  • 10
2
The IOs project is not detecting the flipper library so you need to update the version and update the podfile.
1)-Bump the FLIPPER_VERSION variable in android/gradle.properties, for example: FLIPPER_VERSION=0.75.0.
Run ./gradlew clean in the android directory.
iOS:

Call use_flipper with a specific version in ios/Podfile, for example: use_flipper!({ 'Flipper' => '0.75.0' }).

2)- then run "pod repo update" or "pod install --repo-update" in IOs folder instead of "pod install" if the latter does not work.
Pascal Nitcheu
  • 667
  • 7
  • 8
1

It might sound a bit weird but for people using M1 chip based laptop might get resolve their issue by following the steps:

1 - With Xcode closed (Important) Go to finder -> Applications
2 - Right Click on Xcode and select "Get Info"
3 - On the info panel check "Open using Rosetta"
4 - Double Click in the bottom large preview of the info panel.
5 - Actions to install Rosetta will be responsive.

After following these steps, When I build the app in xcode it ran fine. Also, there was a issue that my simulator was not loading the changes of react native, that also got resolved by performing these steps.

Adding reference of the issues after this podfile related issue is resolved. There are chances that you might get this error.

For details you can go to this question. Link

Sunil Kumar
  • 388
  • 5
  • 15
1

Using the latest Flipper SDK# By default React Native might ship with an outdated Flipper SDK. To make sure you are using the latest version, determine the latest released version of Flipper by running npm info flipper.

Android:

Bump the FLIPPER_VERSION variable in android/gradle.properties, for example: FLIPPER_VERSION=0.79.1. Run ./gradlew clean in the android directory.

iOS:

Call use_flipper with a specific version in ios/Podfile, for example: use_flipper!({ 'Flipper' => '0.79.1' }). Run pod install in the ios directory.

Kasra
  • 1,959
  • 1
  • 19
  • 29
1

use_flipper!({ 'Flipper-Folly' => '2.3.0', 'Flipper-RSocket' => '1.1' })

0

Upvote @spanky's answer.

The only thing I may add to this is that if removing Podfile.lock and Pods/ doesn't work, then you may have to go into the Podfile.lock and replace every libevent & libevent(2.x.x) occurrence with CocoaLibEvent & CocoaLibEvent(). Then you will want to delete the Pod/ directory and run:

  • pod deintegrate
  • pod install
SUH_DEWD
  • 39
  • 5
  • When I run `pod deintegrate` it removed the Podfile and therefore I am unable to run `pod install` after. :/ Any ideas why this may be? – UsmanJ Feb 04 '21 at 09:50
  • pod deintegrate shouldn't have removed the Podfile. (ref: https://github.com/CocoaPods/cocoapods-deintegrate) Is it possible you may have deleted Podfile instead of the Pods/ directory? In that case you may need to rebuild your Podfile if you didn't have it backed up. – SUH_DEWD Feb 04 '21 at 19:28
  • 2
    @spanky Just using the `pod update` command will go through all your pods and update each one (you can also use `pod update ` to update a single pod), whereas `pod install` will only install the pods and versions listed in your Podfile.lock. – SUH_DEWD Feb 04 '21 at 19:55
0

Just add arch -x86_64 before your start command for M1 Macs.

I spent lots of time finding a solution and finally above worked for me.

0

This worked for me,

Considering the fact that react native 0.62 and above comes with flipper inbuilt, you can remove all the flipper dependencies in your Podfile.

After I removed all of it, it gave no errors while building.

pravchuk
  • 903
  • 10
  • 14