我编写FirebaseApp.configure()时iOS应用程序崩溃

我有一个ios应用程序,正常和Facebook登录工作正常。 今天我集成了firebase,当我在app delegate中编写FirebaseApp.configure()时,我的应用程序崩溃,此function突出显示错误代码“在解开可选值时意外发现nil”:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) } 

AppDelegate类的代码是:

 // // AppDelegate.swift // // // Created by Macbook on 01/01/2018. // Copyright © 2018 Macbo0k. All rights reserved. // import UIKit import IQKeyboardManagerSwift import FBSDKCoreKit import FBSDKLoginKit import Firebase import UserNotifications import FirebaseInstanceID import FirebaseMessaging @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { let usd = UserDefaults.standard if usd.object(forKey: "loginstatus") != nil && (usd.value(forKey: "loginstatus") != nil) { if usd.value(forKey: "loginstatus") as! Bool != false{ self.window = UIWindow(frame: UIScreen.main.bounds) let storyboard = UIStoryboard(name: "Main", bundle: nil) let initialViewController = storyboard.instantiateViewController(withIdentifier: "tabbarvc") self.window?.rootViewController = initialViewController self.window?.makeKeyAndVisible() } } FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) let newFont = UIFont(name: "BebasNeueLight", size: 20.0)! let color = UIColor(red: 255,green:204, blue:102) UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: color, NSAttributedStringKey.font: UIFont(name: "BebasNeueRegular", size: 20)! ] UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.classForCoder() as! UIAppearanceContainer.Type]).setTitleTextAttributes([NSAttributedStringKey.foregroundColor: color, NSAttributedStringKey.font: newFont], for: .normal) UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.classForCoder() as! UIAppearanceContainer.Type]).setTitleTextAttributes([NSAttributedStringKey.foregroundColor: color, NSAttributedStringKey.font: newFont], for: .highlighted) //print("fonts are: \(UIFont.familyNames)") IQKeyboardManager.sharedManager().enable = true FirebaseApp.configure() return true } func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { let isFacebookURL = url.scheme != nil && url.scheme!.hasPrefix("fb\(FBSDKSettings.appID())") && url.host == "authorize" if isFacebookURL { return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL!, sourceApplication: sourceApplication, annotation: annotation) } return false } func applicationWillResignActive(_ application: UIApplication) { } func applicationDidEnterBackground(_ application: UIApplication) { print("app is in background mode") } func applicationWillEnterForeground(_ application: UIApplication) { // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. } func applicationDidBecomeActive(_ application: UIApplication) { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. FBSDKAppEvents.activateApp() } func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) } func applicationWillTerminate(_ application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } } 

和日志是:

 2018-02-13 14:50:30.070051+0500 Sneakersapp[11075:119374] [MC] Reading from private effective user settings. 2018-02-13 14:50:30.113172+0500 Sneakersapp[11075:119374] Could not successfully update network info during initialization. 2018-02-13 14:50:30.824700+0500 Sneakersapp[11075:119470] TIC TCP Conn Failed [6:0x600000169480]: 12:8 Err(-65554) 2018-02-13 14:50:30.827309+0500 Sneakersapp[11075:119444] Task . HTTP load failed (error code: -1003 [12:8]) 2018-02-13 14:50:30.827738+0500 Sneakersapp[11075:119444] Task . finished with error - code: -1003 2018-02-13 14:50:31.064485+0500 Sneakersapp[11075:119470] TIC Read Status [3:0x0]: 1:57 2018-02-13 14:50:31.064751+0500 Sneakersapp[11075:119470] TIC Read Status [3:0x0]: 1:57 2018-02-13 14:50:31.198410+0500 Sneakersapp[11075:119444] TIC Read Status [1:0x0]: 1:57 2018-02-13 14:50:31.199036+0500 Sneakersapp[11075:119444] TIC Read Status [1:0x0]: 1:57 2018-02-13 14:50:31.808151+0500 Sneakersapp[11075:119469] TIC Read Status [4:0x0]: 1:57 2018-02-13 14:50:31.808292+0500 Sneakersapp[11075:119469] TIC Read Status [4:0x0]: 1:57 (lldb) 

一旦我从didfinishLaunchingWithOptions函数评论FirebaseApp.configure(),应用程序工作正常。

请帮忙。

我知道回答这个问题可能为时已晚,但我遇到了同样的问题并注意到我忘了在应用程序的主目录中导入GoogleService-Info.plist。

如果您未正确配置Firebase应用,则会发生此崩溃。

您是否在Firebase上注册了您的项目? 请找到链接: – https://console.firebase.google.com/?pli=1

在项目设置中,使用firebase注册您的应用后,您将收到Google Info plist 。 下载并将其导入您的项目。