“event2/event-config.h”文件未找到。

108

我正在尝试在iOS上构建一个react-native应用,但不幸的是遇到了以下问题(指libevent/Flipper):

'event2/event-config.h'文件未找到

我的react-native版本是v0.63.4,我已经使用react-native link链接了包,并运行了pod update。我还删除了Podfile.lock并重新运行了pod install

我的猜测是这与Flipper版本有关吗?当我在我的Podfile中注释掉use_flipper!并构建时,它可以工作。

有什么想法可以解决这个问题吗?


8
将此版本添加到 Flipper 中将修复该问题 use_flipper!({ 'Flipper-Folly' => '2.3.0' })。尝试一下,看看是否可以不用将其注释掉来解决问题。 - Hillkim Henry
3
今天安装新的Pod后出现了同样的问题,很高兴已经有人提出了。 - Abdul Sadik Yalcin
16个回答

157
Facebook昨天发布了一个更新,为flipper添加了v74版本,并增加了对arm64设备的支持。
所以Flipper v74应该修复了arm64设备的问题。
设置:
使用最新的Flipper SDK#
默认情况下,React Native可能会使用过时的Flipper SDK。为了确保您使用的是最新版本,请运行npm info flipper来确定Flipper的最新发布版本。
  • Android:

    android/gradle.properties中增加FLIPPER_VERSION变量,例如:FLIPPER_VERSION=0.74.0。在android目录下运行./gradlew clean

  • iOS:

    iOS/Podfile中使用特定版本的use_flipper,例如:use_flipper!({ 'Flipper' => '0.74.0' })。在ios目录下运行pod install

我们可以在这里了解如何为react-native设置flipper:https://fbflipper.com/docs/getting-started/react-native

这个链接解决了我的问题。在更改Flipper版本后更新pods..请参考此链接

使用这个版本,我解决了'event2/event-config.h'文件找不到的问题。


更新


Xcode 版本现在是 12.5,需要安装新的 Flipper 版本。

Flipper v95 现已发布。

以下是如何添加它:

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


3
以下是我在以下设置下使用的Flipper依赖项:
  • M1 MacBook Pro
  • 清洁的RN 0.64安装
  • XCode 12.5
use_flipper!({ 'Flipper' => '0.90.0', 'Flipper-Folly' => '2.6.7', 'Flipper-RSocket' => '1.4.3' })
- wilson208

72

我在升级到Xcode 12.4和更新MacOS后遇到了相同的问题。这个问题来自flipper-folly中的文件。

如何解决

1. 如果您不需要flipper

如果您的应用程序中没有使用flipper,只需打开您的ios应用程序项目文件夹中的Podfile并注释掉这些代码行即可。

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

2. 如果您需要在您的应用中使用flipper。

如果您仍需要在您的应用中使用flipper,则请按以下方式指定flipper-folly版本:

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

注意:

您需要通过运行以下命令来更新您的pod:

pod update  
或者
 pod install

同时记得更新你的CocoaPods

sudo gem install cocoapods

请参考此问题获取更多信息。


3
指定flipper-folly的版本对我很有帮助。 - Ryan H.

15

一个常见的错误是使用use_flipper而不是add_flipper_pods

Podfile中,我发现每个人都在使用

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

但我使用

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

然后运行

pod install

为我解决了问题


1
对我有用。安装了Flipper 0.74.0(之前是0.41.5),安装了FlipperKit 0.74.0(之前是0.41.5)。谢谢! - Dazzle

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

只需将 use_flipper! 更改为 use_flipper!({ 'Flipper' => '0.80.0' }),然后在 ios 文件夹中再次运行 pod install 或在您的React Native项目根目录中再次运行 npx pod-install


6

如果您拥有

add_flipper_pods

在您的Podfile中,将该行替换为以下代码。
add_flipper_pods!({ 'Flipper' => '0.87.0', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1' })

如果您拥有

use_flipper

在您的 Podfile 中,将该行替换为以下代码

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

6

解决问题的2个步骤:

  1. 在iOS/PodFile中通过xcode添加以下代码行

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

  2. 在项目的iOS目录下在终端中运行 pod install

现在尝试构建,应该会成功。


6

不确定这个问题是从哪里来的,但我也遇到了同样的问题。昨晚我做了一次macOS Xcode更新,我还经常更新项目依赖项,所以其中之一可能引发了这个问题。

无论如何,似乎Podfile.lock从CocoaLibEvent切换到libevent 2,这似乎是'event2/event-config.h'文件找不到'的问题。

我删除了Podfile.lock和./Pods/,然后进行了pod repo update和pod update,现在它又可以工作了。


我尝试了一下,但好像没有起作用。看起来我们有相同的问题。你删除了Podfile.lock和./Pods/,但不需要对Podfile本身进行任何更改?当我按照你建议的做时,它创建了与我删除之前相同数据的Podfile.lock(使用libevent而不是CocoaLibEvent)。 - UsmanJ
做了同样的事情,项目又开始构建了。- 删除 Podfile.lock、Pods/ 然后执行 pod repo update,最后执行 pod update。 - Matej Vehar

5
我更新了macOS和Xcode之后遇到了这个问题。看起来Flipper 2.5.1有一些问题。您可以通过将以下代码简单地添加到您的配置文件中来轻松解决它。
以下是一些可能会帮助您的屏幕截图。 这是您需要更新的文件 您可以检查一下,降级到flipper 2.3.0后我的问题得到了解决 在更新Flipper之后,请使用以下命令更新您的Pod。
pod update

并且

  sudo gem install cocoapods.

2
这似乎与pod update和pod install有关。我一直使用pod update而没有遇到太多问题:

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

我在这里肯定是不懂行的....


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.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接