提问者:小点点

Firebase UI Phone身份验证无法在模拟器上工作


在工作了一年多之后,Firebase UI Phone身份验证停止了工作,但在设备上似乎仍然有效。输入用户电话号码的屏幕会出现,但随后会像屏幕一样崩溃,应用程序变得完全没有响应。但是,在控制台中没有检测到崩溃。控制台以看似随机的顺序重复以下三条类似的消息:

更新选择器失败,错误为:Error domain=nscocoaerrordomain code=4099“到pid 0上名为com.apple.comcenter.coretlephony.xpc的服务的连接无效。”UserInfo={NSDebugDescription=与pid 0上名为com.apple.comcenter.coretlephony.xpc的服务的连接已无效。}

同步远程对象代理返回错误:Error domain=nscocoaerrordomain code=4099“到pid 0上名为com.apple.comcenter.coretlephony.xpc的服务的连接无效。”UserInfo={NSDebugDescription=与pid 0上名为com.apple.comcenter.coretlephony.xpc的服务的连接已无效。}

删除委托后更新选择器失败,原因为:Error domain=nscocoaerrordomain code=4099“与pid 0上名为com.apple.comcenter.coretlephony.xpc的服务的连接从此进程无效。”UserInfo={NSDebugDescription=与pid 0上名为com.apple.comcenter.coretlephony.xpc的服务的连接从此进程无效。}

最后,我在控制台中得到这样的消息:

找不到键盘iPhone-Altraite-NumberPad支持type 4的keyplane;使用25873_PROTACHIT_IPHONE-SIMPLE-PAD_DEFAULT

下面是调用Firebase UI的代码:

@objc func presentRegistration() {
    guard let authUI = FUIAuth.defaultAuthUI() else { handleSignInError(); return }
    let providers: [FUIAuthProvider] = [FUIPhoneAuth(authUI: authUI)]
    authUI.delegate = self
    authUI.providers = providers
    guard let phoneProvider = authUI.providers.first as? FUIPhoneAuth else { handleSignInError(); return }
    phoneProvider.signIn(withPresenting: self, phoneNumber: "")
}

使用此委托函数:

func authUI(_ authUI: FUIAuth, didSignInWith authDataResult: AuthDataResult?, error: Error?) {
    if let _ = error {
        present(message: "There was an error signing in. Please check that there is an active internet connection and that the number entered is correct. Then try again.")
    } else {
        self.loginUser()
    }
}

我尝试更新我的Firebase播客文件,但这没有解决问题。谷歌控制台消息没有帮助。我试着从模拟器中删除这个应用程序,但没有什么区别。有什么建议要怎么做吗?

***我实际上发现它在一些模拟器上工作,而在其他模拟器上不工作。看来它应该对全部或全部有效。例如,它适用于11而不适用于11 Pro。对SE不起作用。


共1个答案

匿名用户

看来转到模拟器的设备部分并点击“擦除所有内容和设置”可以解决这个问题。不确定是什么问题导致了它,但这修复了它。