使用未解析的标识符 'FIRApp'

Use of unresolved identifier 'FIRApp'

我在我的 iOS 应用程序中使用 cocoa pods 实施了 Firebase。问题是当我尝试配置 firebase 时,我收到此错误 Use of unresolved identifier 'FIRApp'。当我在 appdelegate 文件中使用代码 FIRApp.configure() 时会发生此错误。谁能帮我解决这个问题?

import UIKit
import AWSCore
import GoogleMaps
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  let defaults = NSUserDefaults.standardUserDefaults()

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    // Use Firebase library to configure APIs
    FIRApp.configure()
    return true
  }
}

我已遵循 Firebase 指南 https://firebase.google.com/docs/ios/setup#initialize_firebase_in_your_app

这是 pod 文件

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
use_frameworks!

target 'xxxx' do
     pod 'SwiftyJSON', :git =>       'https://github.com/SwiftyJSON/SwiftyJSON.git'
     pod 'DKChainableAnimationKit'
     pod 'Charts'
     pod 'JVFloatLabeledTextField'
     pod 'AWSAutoScaling'
     pod 'AWSCloudWatch'
     pod 'AWSCognito'
     pod 'AWSDynamoDB'
     pod 'AWSEC2'
     pod 'AWSElasticLoadBalancing'
     pod 'AWSKinesis'
     pod 'AWSMobileAnalytics'
     pod 'AWSS3'
     pod 'AWSSES'
     pod 'AWSSimpleDB'
     pod 'AWSSNS'
     pod 'AWSSQS'
     pod 'GoogleMaps'
     pod 'Firebase'
end

FIRApp 在 Firebase 3.x 或更高版本中可用。

当您无法从旧版本的 Firebase 更新为 2.x 到 3.x 时,就会发生这种情况。这已经在这里回答了-

关键是-

pod update

在安装 Firebase pod 之前,您需要 运行 pod update 一次,下次安装时它会安装正确的版本。

我找到了导致问题的原因。我使用的是 cocoa pods 的旧版本。当我将 cocoa pods 版本更新到最新版本时,错误已得到纠正。谢谢

就运行这个。

sudo gem update cocoapods

在 Xcode 8 中导入 Firebase 模块存在一个已知问题。import Firebase 可能会导致 'module not found' 错误。如果是这样,您将需要单独导入模块,直到问题得到解决。

FIRApp 在 FirebaseAnalytics 框架中。在导入其他模块的 class 文件的开头添加 import FirebaseAnalytics

包括 Firebase SDK 的 Analytics 文件夹中的所有框架,目前:

  • FirebaseAnalytics
  • FirebaseInstanceID
  • GoogleInterchangeUtilities
  • GoogleSymbolUtilities
  • Google 实用程序

确保您已在项目设置的 other_linker_flags 中添加 -ObjC 标志。

我的问题是在我的播客文件中,我输入了以下行:

pod 'Firebase'

在 "MyApplicationUITests" 而不是 "MyApplication."

还有:

我没放

import Firebase

在我的 AppDelegate 的顶部。

花了我一段时间,但我意识到我在旧 mac 上使用 旧版本的 Xcode (7.3.1)

最初,使用 pod 'Firebase/Core' 安装了 Firebase 4.0。所以,我进入 Podfile 并指定 3.2.1 版本:

pod 'Firebase/Core', '3.2.1'

错误立即消失了。希望这至少能为外面的人节省几个小时!

我可以使用 cocoapods:1.1.1

修复
sudo gem install -n /usr/local/bin cocoapods:1.1.1
sudo gem uninstall -n /usr/local/bin cocoapods # uninstall 1.2.0.beta.1
pod --version # 1.1.1
rm -rf platforms plugins
cordova platform add ios

我已经尝试了所有的答案,但在头痛了 2 个小时之后...我找到了这个

在 AppDelegate.m 文件中,您应该在 #ifdef FB_SONARKIT_ENABLED 行之前像 #import 一样导入 firebase。

据我了解,您可能会在开发构建上取得成功,因为 FlipperKit 库用于调试,如果条件满足,则此#ifdef FB_SONARKIT_ENABLED。当您尝试存档时,它不会被导入并且变量将未声明,因为#import 保留在 if 条件下。

对我有用的是添加:

#import <Firebase.h>

到导入UIKIT

下方AppDelegate.h的顶部

我认为需要在 AppDelegate.m 文件中进行以下设置 ...

 #import <Firebase.h>
  
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      [FIRApp configure];
    }

简单的解决方案就是在这一行之前导入 firebase

#ifdef FB_SONARKIT_ENABLED

检查下面这张图片