Ios 尝试显示身份验证选择器时FirebaseUI崩溃
我在我的项目中使用了Firebase和FirebaseUI,并且在尝试登录时经常出现相同的崩溃。用户点击Ios 尝试显示身份验证选择器时FirebaseUI崩溃,ios,swift,firebase,firebase-authentication,firebaseui,Ios,Swift,Firebase,Firebase Authentication,Firebaseui,我在我的项目中使用了Firebase和FirebaseUI,并且在尝试登录时经常出现相同的崩溃。用户点击登录按钮,然后应该显示身份验证选择器,用户可以使用Facebook/Google或电子邮件/密码登录。但是,发生的情况是,除了标记以下行外,它崩溃时没有任何错误消息: struct FIRAuthLogin { private let authUI = FUIAuth.defaultAuthUI() private var viewController: UIViewContr
登录
按钮,然后应该显示身份验证选择器,用户可以使用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)
}
}
即使行中存在异常,让authViewController=authUI?.authViewController()
,authViewController
不是nil
下面是堆栈跟踪的图像(在问题导航器中):
问题是我只是覆盖了FUIPasswordSignUpViewController,所以我有点困惑
每当这种情况发生时,我通常只是从我的项目中删除cocoapod并再次集成它。然后它就可以正常工作了,但是由于我已经多次这样做了,并且错误仍然存在,所以一定有潜在的错误。不幸的是,我无法用FirebaseUI GitHub代码重现错误,所以我猜错误就在我这边。这就是为什么我在这里而不是在FirebaseUI iOS GitHub存储库中提问。它最终得到了修复。我在FirebaseUI iOS存储库中打开了一个,在将我的项目发送给一位谷歌工程师后,他解决了这个问题:
看来你遇到了麻烦。将生成系统设置为使用标准(而不是新生成系统预览)、删除DerivedData并重新生成修复了该问题
目前,您将不得不不使用新的构建系统
终于修好了。我在FirebaseUI iOS存储库中打开了一个,在将我的项目发送给一位谷歌工程师后,他解决了这个问题:
看来你遇到了麻烦。将生成系统设置为使用标准(而不是新生成系统预览)、删除DerivedData并重新生成修复了该问题
目前,您将不得不不使用新的构建系统
尽量使代码更安全,例如为
authViewController
添加if-let
。我猜这不会发生在生产中???我希望不是。我得到这个理论是因为你提到了通过Cocoapods重新安装框架。当通过TestFlight测试你的应用程序时,试着重现崩溃。我正在通过TestFlight进行测试,它工作正常。正如我所说,authViewController
不是nil
。使用if-let
时,我也会遇到同样的异常。请尝试使代码更安全,例如为authViewController
添加if-let
。我猜这不会发生在生产中???我希望不是。我得到这个理论是因为你提到了通过Cocoapods重新安装框架。当通过TestFlight测试你的应用程序时,试着重现崩溃。我正在通过TestFlight进行测试,它工作正常。正如我所说,authViewController
不是nil
。我在使用if let
时也会遇到同样的异常。