【问题标题】:Error: RNFirebase core module was not found natively on iOS错误:在 iOS 上未原生找到 RNFirebase 核心模块
【发布时间】:2018-08-31 20:15:50
【问题描述】:

我创建了一个新应用并尝试使用react-native-firebase。但我不断收到此错误:

在 iOS 上未原生找到 RNFirebase 核心模块,请确保您有 在您的项目“Podfile”中正确包含 RNFirebase pod 和 已运行“pod install”。

有关 ios 设置指南,请参阅 http://invertase.link/ios

我已经完成的步骤:

  1. yarn add react-native-firebase

  2. react-native link react-native-firebase

  3. 在 .../myproject/ios/myproject 下从 Google 设置我的 .plist 文件
  4. 在确保我使用的是 Ruby 2.5.0 之后运行 pod update
  5. 运行 pod 安装

我目前使用的pod文件是:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'MyProject' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!
    pod 'Firebase/Core'
    pod 'Firebase/Database'
    pod 'Firebase/Messaging'

  target 'MyProjectTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

这些是我正在使用的版本:

"react": "^16.3.0-alpha.1",
"react-native": "0.54.2",
"react-native-firebase": "^3.3.1",

【问题讨论】:

  • 确保在 RNFirebase 的标头搜索路径中启用了递归

标签: react-native cocoapods react-native-firebase


【解决方案1】:

我总是不喜欢使用带有 react native 的 pod,但是,react-native-firebase 的非流行安装说明将不起作用。

原因是包的搜索路径假定为 /pods 或 /firebase

因此,要使其正确链接,请按照以下步骤操作:

  1. 下载 Firebase sdk
  2. 直接在 ios 下创建一个文件夹并命名为 Firebase,将 sdk 所需的框架复制到该文件夹​​中,而不保留子文件夹(注意,您还没有进入 XCode)
  3. 如果您还没有 npm install -s react-native-firebase
  4. 打开 XCode 并将所需的框架拖放到 XCode 中的 Frameworks 文件夹(例如,在我的示例中是 Analytics、Messaging 和 DynamicLinks 文件夹的内容)。不要复制项目,因为您已经在 ios 的 Firebase 子文件夹中复制了项目:

  5. 在 XCode 中右键单击库并选择“将文件添加到 [项目]”。在 node_modules 中找到 RNFirebase-project 并选择 RNFirebase.xcodeproj,不要“复制项目”

  6. 在项目/目标设置中转到链接框架和库。查找并添加 libRNFirebase.a

  7. 在 AppDelegate.m 中根据 react-native-firebase 的说明进行调整,例如:import <Firebase.h> and [FIRAPP configure]; in didFinishLaunchingWithOptions

  8. 在标题搜索路径和框架搜索路径中,添加$(PROJECT_DIR)/Firebase
  9. 别忘了将 GoogleServices-Info.plist 添加到您的项目中

【讨论】:

    【解决方案2】:

    如果不想手动链接,可以尝试直接将RNFirebase安装为pod install:

    pod 'RNFirebase', :path => 'path/to/node_modules/react-native-firebase/ios'
    

    更改或硬编码 HEADER_SEARCH_PATHS 对我没有帮助。当错误再次出现时,不需要rm -rf node_modules 也不需要删除 pod 文件等,我发现清除缓存很有用。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,在尝试修复它时导致我的应用在启动时崩溃。

      我将它通过ios/AppFolder/ 下的终端移动,但 Xcode 从未意识到此文件。

      帮助我的是在 Xcode 中打开我的项目。然后左键单击我的AppFolder > Add Files,然后添加GoogleService-Info.plist

      【讨论】:

        猜你喜欢
        • 2019-10-30
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 2017-05-20
        • 2022-01-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多