Swift 5 - Facebook 登录:LoginManager() 回调不会在安装 Facebook 应用程序时调用

Swift 5 - Facebook Login: LoginManager() callback doesn't call with Facebook App installed

我已经使用 cocoapods 将 Facebook SDK 更新到最新版本:

安装 Facebook 应用程序时,不会调用 LoginManager() 回调。未安装应用程序并使用浏览器时,它可以工作。

let loginManager = LoginManager()
loginManager.logIn(permissions: [.publicProfile, .email], viewController: self, completion: { loginResult in
    switch loginResult {
    case .failed(let error):
        print("\(error)")
    case .cancelled:
        print("cancelled")
    case .success(let grantedPermissions, let declinedPermissions, let accessToken):
        print("\(grantedPermissions) \(declinedPermissions)")
    }
})

有什么想法吗?

更新到新的 SDK 已解决:

pod 'FBSDKCoreKit/Swift'
pod 'FBSDKLoginKit/Swift'

我遇到了同样的问题。对我来说,它缺少来自 AppDelegate 的代码(我们不使用 SceneDelegate)。除非安装了 FB 应用程序,否则登录将有效。前者使用网络视图类型 UI 但后者切换到 FB 应用程序,然后当返回到我们的应用程序时它挂起。查看 FB 帐户,我可以看到登录成功。

查看 FB 文档:https://developers.facebook.com/docs/facebook-login/ios/

(5. 连接您的 App Delegate 和 Scene Delegate)