Facebook登录在登录后无法解除登录对话框

时间:2017-08-08 20:57:16

标签: swift firebase-authentication facebook-login facebook-ios-sdk sfsafariviewcontroller

使用Facebook iOS SDK中的LoginManager进行登录:

let loginManager = LoginManager()
loginManager.logIn([.publicProfile, .email], viewController: self) { (loginResult) in

登录对话框通过Safari打开facebook.com,它有一个按钮供我

  

使用Facebook App登录

当我点击"继续"在Facebook应用程序中,我返回到我的应用程序,但即使loginResult返回.success,登录对话框也不会被删除。

这是在成功登录后返回我的应用程序后显示的内容: enter image description here

唯一的选择是我点击“取消”。登录对话框似乎是SFAuthenticationViewController,目前在Google搜索中包含0个结果。

其他人过去遇到的问题似乎是他们的AppDelegate他们没有在application:openURL:options:中调用适当的授权流程处理,但是这样成功被调用:

@available(iOS 9.0, *)
func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
    print("application open url\n\(url)\noptions \(options)")

    if url.absoluteString.hasPrefix("fb") {
       print("Finishing Facebook log in flow")
       return SDKApplicationDelegate.shared.application(application, open: url, options: options)
    } else {
        print("Finishing Google sign in flow")
        return GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: [:])
    }
}

我唯一能想到的是一些不兼容性问题,因为我在iOS 11 Developer测试版上使用Swift 4,而且SFAuthenticationViewController似乎没有在线使用的结果。

我不确定为什么对话框不会自动被解雇。

更新:

我创建了一个全新的空白应用,只有一个按钮,FacebookCoreFacebookLogin依赖关系,问题仍然存在。

遵循的步骤:

  1. https://developers.facebook.com/docs/facebook-login/ios
  2. https://developers.facebook.com/docs/swift/getting-started
  3. https://developers.facebook.com/docs/swift/login

2 个答案:

答案 0 :(得分:2)

<强>更新

现在使用SDK 0.3.0https://github.com/facebook/facebook-sdk-swift/releases

更新,Facebook官方回复:

  

嗨Gareth,

     

感谢举报此举! iOS 11仍处于测试阶段,我们没有   目前支持它。

     

最好的问候,Günay

这是运行iOS 11的设备上的错误。在运行iOS 10的设备上运行良好。

此处提交的错误报告:https://github.com/facebook/facebook-sdk-swift/issues/172

答案 1 :(得分:0)

我在iOS 11上的 Swift 3 也遇到了同样的问题