使用Facebook iOS SDK中的LoginManager
进行登录:
let loginManager = LoginManager()
loginManager.logIn([.publicProfile, .email], viewController: self) { (loginResult) in
登录对话框通过Safari打开facebook.com,它有一个按钮供我
使用Facebook App登录
当我点击"继续"在Facebook应用程序中,我返回到我的应用程序,但即使loginResult
返回.success
,登录对话框也不会被删除。
唯一的选择是我点击“取消”。登录对话框似乎是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
似乎没有在线使用的结果。
我不确定为什么对话框不会自动被解雇。
更新:
我创建了一个全新的空白应用,只有一个按钮,FacebookCore
和FacebookLogin
依赖关系,问题仍然存在。
遵循的步骤:
答案 0 :(得分:2)
<强>更新强>
现在使用SDK 0.3.0
:https://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 也遇到了同样的问题