React/RCTBridgeDelegate.h' 找不到文件

问题描述 投票:0回答:14

我在终端使用 react-native init auth 创建了一个名为 auth 的新项目。当我尝试使用 react-native run-ios 运行该项目时。构建失败并给出错误“React/RCTBridgeDelegate.h”找不到文件。

尝试更新 React Native 版本

react-native 在 mac 终端运行 ios

期待构建成功,看到ios模拟器 我得到的实际结果是构建失败,因此看不到模拟器

react-native build project new-operator
14个回答
55
投票

问题与

cocoapods
依赖管理器有关。执行以下操作来解决此问题:

  1. 打开终端并转到您的项目
    ios
    目录
  2. 输入
    pod init
    (如果不存在)然后
    pod install
  3. 打开工作区项目并从 ios 文件夹中删除构建
  4. 从终端运行
    react-native run-ios

现在应该可以了。


12
投票

就我而言,当我执行

libPods-FOO.a
时,
pod update && pod install
库不知何故变得未链接。看看这是否适用于您:

  1. 在 Xcode 中,在 Project Navigator 下查看:

    [Your Project Name] --> Targets --> [Your target name] --> General
    
  2. 向下滚动到

    Frameworks, Libraries and Embedded Content

  3. 如果你没有

    libPods-XXXX.a
    在那里(XXXX是你的项目名称)然后添加它:

    1. 单击“+”号添加 libPods 库
    2. 在搜索框中搜索
      libPods
    3. 选择
      libPods-XXXX.a
      并单击
      Add
      .


7
投票

提示:对于那些使用 M1 Mac 的人,

pod install
将不起作用。你应该使用
arch -x86_64 pod install
this issue


6
投票

问题的发生是由于 cocoapods 依赖中缺少 React schema。按照以下步骤解决:

  1. 使用 ios/{project name}.xcworkspace 文件在 XCode 中打开项目

  2. 从菜单栏->点击产品->方案->管理方案

  3. 它将打开一个模态 -> 点击 + 按钮

  4. 列表项

  5. New modal -> 在 target DropDown 中选择 React 然后点击 okay

  6. 关闭模式并重建项目Project - Build

它将解决问题。


4
投票

如果你的 Mac 是 Apple M1 芯片,可以通过两种方式解决,

#解决方案 1

  1. 打开应用程序->Utilites->Terminal.app
  2. 右键单击,Terminal.app -> 获取信息 -> 常规 -> 启用“使用 Rosetta 打开”
  3. 重启终端

#解决方案 2

  1. 从终端执行

sudo arch -x86_64 gem 安装 ffi

  1. 进入iOS目录并执行

arch -x86_64 pod 安装


2
投票

我按照@Vahid 的建议做了,但我还有另一个问题。我遵循的一组说明告诉我将相关的 .xcodeproj 文件拉到我的实际项目中,然后手动链接几个不同的文件。

这些步骤不是必需的,并且给我带来了问题。

我正在关注这个: https://github.com/frostney/react-native-ibeacon

但是最好使用这个 npm 包并按照他们的说明进行操作: https://www.npmjs.com/package/react-native-ibeacons


2
投票

在我的 Xcode 项目中,我必须有多个目标。

enter image description here

我添加了

(dev)
目标用于开发目的,但是为了将 React Native 添加到该目标,您必须将它添加到 Podfile。

target 'MyApp' do
  config = use_native_modules!

...

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

  # 👇 Add your target in the Podfile
  target 'MyApp (dev)' do
    inherit! :complete
  end

...

然后在您的

ios
文件夹中运行pod install,完成!

我的设置:

react-native 0.70, macOS Monterey, MacBook Pro M1 2021


1
投票

如果您在 M1 芯片上使用 mac 并尝试在模拟器上运行该应用程序,则可能会发生这种情况。尝试从官方网站(https://iterm2.com/)安装 iterm2,并使用 Rosetta 启动它(

Applications -> Right click on 'Iterm2' app -> "Get info" -> Check "Open using Rosetta"
)。然后运行:

  1. sudo gem install cocoapods
  2. rm -rf /Users/{USERNAME}/.cocoapods/repos/cocoapods
  3. 转到您的项目文件夹并运行
    cd ./ios && pod install
  4. 使用
    npx react-native run-ios
  5. 运行构建

1
投票

在这个特定项目中,某些目标不起作用。我注意到出现此错误的损坏目标缺少 libPods-myProjectName.a。在 Targets -> General 选项卡下,“Frameworks, Libraries and Embedded Content”我按下“+”图标并搜索“pods”并添加“pods-myProjectName.a”,现在它似乎可以工作了。这可能不适用于您,但我将其添加为另一种可能出错的可能性。


1
投票

简单的 pod install 命令对我不起作用。如果你有M1 Mac然后尝试使用。

arch -x86_64 pod install 

0
投票

按照以下步骤:

  1. 在 Xcode 上选择您的项目

  2. 转到构建设置

  3. 在搜索路径选项卡中选择标头搜索路径并为调试和发布添加此值

    $(继承)

    ${PODS_ROOT}

    ${SRCROOT}/../../../ios/Pods/Headers(确保将其设置为递归)


0
投票

[Mac 操作系统] 我更新了 cocoapods 版本

brew upgrade cocoapods


0
投票

对我来说,将

arm64
添加到排除的架构部分是有效的。


0
投票

面对的人,一定要

  target 'runner' do
    inherit! :complete
    # Pods for production
  end
  target 'runnerDev' do
    inherit! :complete
    # Pods for development
  end

Podfile 中的每种口味都存在

© www.soinside.com 2019 - 2024. All rights reserved.