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

时间:2016-06-24 08:47:00

标签: ios swift swift2 xcode7 firebase-cloud-messaging

我已经使用可可豆荚在我的iOS应用程序中实现了Firebase。问题是当我尝试配置firebase时,我收到此错误使用未解析的标识符' 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

7 个答案:

答案 0 :(得分:3)

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

如果您无法从旧版本的Firebase更新2.x到3.x,则会发生这种情况。这已在这里得到解答 - Firebase Upgrading From 2.5.1 to 3.2.1

How to upgrade new Firebase app from exist old app?

关键是 -

pod update

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

答案 1 :(得分:2)

我发现导致问题的原因。我使用的是旧版可可豆荚。当我将可可豆荚版本更新为最新版本时,错误得到了纠正。感谢。

跑吧。

sudo gem update cocoapods

答案 2 :(得分:1)

在Xcode 8中导入Firebase模块存在一个已知问题。import Firebase可能导致“找不到模块”错误。如果是这样,您需要单独导入模块,直到问题得到解决。

FIRApp位于FirebaseAnalytics框架中。在您导出其他模块的类文件的开头添加import FirebaseAnalytics

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

  • FirebaseAnalytics
  • FirebaseInstanceID
  • GoogleInterchangeUtilities
  • GoogleSymbolUtilities
  • GoogleUtilities

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

答案 3 :(得分:1)

我已经尝试了所有的答案,但是经过 2 个小时的头痛……我找到了这个

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

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

答案 4 :(得分:0)

我的问题是在我的podfile中,我把这行:

pod 'Firebase'

在" MyApplicationUITests"而不是" MyApplication。"

也:

我没有把

import Firebase

位于AppDelegate的顶部。

答案 5 :(得分:0)

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

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

pod 'Firebase/Core', '3.2.1'

错误立即消失了。希望这可以为那里的人节省至少几个小时!

答案 6 :(得分:0)

我能够使用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