错误:在iOS上本地未找到RNFirebase核心模块

时间:2018-03-22 11:46:27

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

我创建了一个新应用,我正在尝试使用react-native-firebase。但我不断得到这个错误:

  

在iOS上找不到RNFirebase核心模块,确保您拥有   正确地将RNFirebase pod包含在项目的“Podfile”中   已经运行'pod install'。

     

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

我已经完成的步骤:

  1. yarn add react-native-firebase

  2. react-native link react-native-firebase

  3. 在... / myproject / ios / myproject
  4. 下设置我的.plist文件
  5. 确保我使用Ruby 2.5.0
  6. 之后跑pod update
  7. Ran pod install
  8. 我目前使用的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",
    

3 个答案:

答案 0 :(得分:1)

我始终不希望将带Pod的容器与react native一起使用,但是,非pop安装的react-native-firebase指令将不起作用。

这样做的原因是程序包的搜索路径假定/ pods或/ firebase

Source of the problem

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

  1. 下载firebase sdk
  2. 直接在ios下创建一个文件夹,并将其命名为Firebase,在不保留子文件夹的情况下将sdk所需的框架复制到该文件夹​​中(请注意,您尚未输入XCode)
  3. 如果尚未npm install -s react-native-firebase
  4. 打开XCode并将所需的框架拖放到XCode的Frameworks文件夹中(例如,在我的示例中,Analytics,Messaging和DynamicLinks文件夹的内容)。询问时不要复制项目,因为已经存在,然后在ios的Firebase子文件夹中: Add frameworks

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

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

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

更改HEADER_SEARCH_PATHS或对其进行硬编码对我没有帮助。错误再次发生时,既不必rm -rf node_modules也不必删除pod文件等,我发现清除缓存非常有用。