我在我的项目中使用Firebase和FirebaseUI,并且在尝试登录时,我经常会遇到相同的崩溃。用户点击Log in按钮,然后显示身份验证选择器,用户可以从那里登录Facebook/Google或电子邮件/密码。但是,发生的情况是,除了标记以下一行之外,它没有任何错误消息就崩溃了:
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存储库中。
发布于 2017-10-26 23:20:48
终于修好了。我在FirebaseUI iOS存储库中打开了一个FirebaseUI iOS存储库,在将我的项目发送给谷歌的一名工程师之后,他解决了这个问题:
看来你遇到CocoaPods/CocoaPods#6936了。将生成系统设置为使用标准(而不是新的生成系统预览版),删除DerivedData并重新构建修复问题。 就目前而言,您将不得不不使用新的构建系统。
https://stackoverflow.com/questions/46889505
复制相似问题