Firebase导致"线程1:信号SIGABRT"

时间:2016-12-25 22:52:05

标签: ios swift xcode firebase

我开始了一个空白的Xcode项目,我所做的就是通过Cocoapods添加Firebase框架并在Appdelegate和viewcontroller中导入。当我将 FIRApp.configure()添加到 didFinishLoadingWithOptions 时,我收到了该错误。如果我删除该行但仍导入框架,则运行时没有错误。这发生在一个空白项目中,故事板中没有任何内容,也没有viewcontroller.swift。

在控制台中它表示libc ++ abi.dylib:以NSException类型的未捕获异常终止 (11分贝)

Xcode 8.2,swift 3

import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
 FIRApp.configure()

    return true
}

func applicationWillResignActive(_ application: UIApplication) {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}

func applicationDidEnterBackground(_ application: UIApplication) {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

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.
}

func applicationWillTerminate(_ application: UIApplication) {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

}

Podfile

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

    target 'dur2' do
      # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
      use_frameworks!

      # Pods for dur2

pod 'Firebase/Core'
pod 'Firebase/AdMob'
pod 'Firebase/Messaging'
pod 'Firebase/Database'
pod 'Firebase/Invites'
pod 'Firebase/DynamicLinks'
pod 'Firebase/Crash'
pod 'Firebase/RemoteConfig' 
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'SDWebImage'

8 个答案:

答案 0 :(得分:3)

我们来试试吧。

按照Firebase网站上的说明创建一个新项目,确保将GoogleService-Info.plist添加到您的项目中。

在创建pod文件的步骤中,确保您位于项目文件夹中并使用此文本:

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

target 'your-project-name' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Firesearch
  pod ‘Firebase/Core’
end

并将您的项目名称替换为 your-project-name

保存文件,然后执行

pod install

然后打开project-name.xcworkspace并构建它。

答案 1 :(得分:3)

为Xcode 9工作

如果没有一个解决方案适用于您,请尝试以下方法:

  1. 关闭Xcode
  2. 在Finder中:

    • 删除 .xcworkspace 文件
    • 删除 Podfile.lock 文件
    • 删除 Pods 文件夹
  3. 在终端(项目文件夹中): pod install

  4. 确保将 GoogleService-Info.plist 添加到您的目标并为您的BUNDLE_ID生成。

  5. 出于未知原因,当您同时使用“Firebase / Admob”“Firebase / Core”时,Xcode可能会破坏工作区并导致错误的构建崩溃在运行时,如果您尝试调用 FirebaseApp.configure() GADMobileAds.configure(withApplicationID:“APP_ID”)

答案 2 :(得分:1)

如果你还没有,

转到firebase中的项目并下载google.plist文件并将其添加到项目中并运行。

答案 3 :(得分:0)

无需将 GoogleService-Info.plist 复制到您的项目中,只需将 GoogleService-Info.plist 拖放到ios / appName,然后根据需要检查复制选项

答案 4 :(得分:0)

我遇到了同样的问题,并通过使用另一个gmail帐户解决了该问题。在Firebase上创建一个新项目,然后创建一个数据库并将ios应用添加到Firebase数据库中(确保将GoogleService-Info.plist添加到您的目标中并为您的BUNDLE_ID生成)。

答案 5 :(得分:0)

我使用“ FirebaseApp.configure()”,但这可能只是新的快速更新的一部分

答案 6 :(得分:0)

我已经拉了2天了...

这是我发现的东西

  1. 确保您拥有正确的GoogleService-info.plist文件 启用.plist文件。
  2. 将文件指向目标应用 plist target to your app

答案 7 :(得分:0)

对于Swift 4和Xcode 10:

删除XC工作区,podfile.lock,podfile和pod文件夹。然后重新安装pod并从新的XC工作区开始。