Firebase代码不会在真正的iPhone设备上执行,只能在模拟器上执行

时间:2016-10-10 12:27:36

标签: ios swift firebase firebase-authentication

我的应用程序上有正常的身份验证代码,代码在模拟器上运行正常。一旦在设备上进行测试,它甚至无法启动。以下是Facebook登录的片段,Twitter或电子邮件/通行证登录也是如此。

if let fbLoginResult : FBSDKLoginManagerLoginResult = result {
            if (fbLoginResult.grantedPermissions.contains("email")){
                print("Facebook Token received!")
                FBSDKAccessToken.setCurrent(fbLoginResult.token)
                let token = FBSDKAccessToken.current().tokenString!
                let credential = FIRFacebookAuthProvider.credential(withAccessToken: token)

                print("Token : \(token)")

                FIRAuth.auth()?.currentUser?.link(with: credential, completion: { (currentUser, linkingError) in
                    if linkingError != nil {
                        print("Linking error: \(linkingError?.localizedDescription)")
                        FIRAuth.auth()?.signIn(with: credential, completion: { (user, error) in
                            if error == nil {
                                self.loginSucceeded(user: user!)
                            }else{
                                print("Error : \(error?.localizedDescription)")
                            }
                        })


                    }else{
                        self.loginSucceeded(user: currentUser!)
                    }
                })

            }
        }

我尝试将构建设置上的Bitcode切换为NO。仍然无法工作。

如何解决这个问题?非常感谢!

1 个答案:

答案 0 :(得分:0)

by"甚至没有开始",这件作品不会开始?您是否设置了调试器以确定哪些代码行未执行?只需查看您提供的代码段,我的猜测就是:

FIRAuth.auth()?.currentUser?.link(with: credential, completion: { (currentUser, linkingError) in

对于之前未经过身份验证的设备,此行可能会失败,因为currentUser将是nil,我相信。我会确保这个变量是非零的,因为这可能导致这个问题。