我在我的项目中使用Firebase和FirebaseUI,并且在尝试登录时我会遇到同样的崩溃。用户点击Log in
按钮然后认证选择器显示,用户可以使用Facebook / Google或电子邮件/密码登录。但是,除了标记以下行之外,它会因 no 错误消息而崩溃:
struct FIRAuthLogin {
private let authUI = FUIAuth.defaultAuthUI()
private var viewController: UIViewController!
init(delegate: FIRCustomAuthDelegate, viewController: UIViewController) {
self.viewController = viewController
authUI?.delegate = delegate
authUI?.providers = [FUIGoogleAuth(), FUIFacebookAuth()]
}
func present(completion: @escaping () -> Void) {
// Exception on the line below!
let authViewController = authUI?.authViewController()
self.viewController.present(authViewController!, animated: true, completion: completion)
}
}
即使行let authViewController = authUI?.authViewController()
中有例外,authViewController
不 nil
。
下面是堆栈跟踪中的图像(在问题导航器中):
问题是我仅覆盖了FUIPasswordSignUpViewController
,所以我有点困惑。
每当发生这种情况时,我通常只是从项目中删除CocoaPods并再次集成它。然后它会正常工作,但由于我现在多次这样做,并且错误仍然存在,因此必然存在潜在的错误。不幸的是,我无法使用FirebaseUI GitHub代码重现错误,所以我猜错误就在我的最后。这就是为什么我在这里问而不是在FirebaseUI-iOS GitHub存储库中。
答案 0 :(得分:0)
终于修复了。我在FirebaseUI iOS存储库中打开了issue,在将我的项目发送给其中一位Google工程师后,他解决了这个问题:
您似乎已遇到CocoaPods/CocoaPods#6936。将构建系统设置为使用标准(而不是新构建系统预览),删除DerivedData和重建可以解决问题。
目前你不得不使用新的构建系统。