这让我发疯。我将 FB Login 添加到我的 swift 2.0、XCode 版本 7.3 中。工作正常。但在我实现了 GoogleSingin 登录后,FB 登录停止工作。
这里发生的是 FB SDK,当从身份验证返回时,它调用
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
而Google Sign In,有这个方法:
func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
print("G+ in appdelegate")
return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String,
annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
问题是,如果存在 Google Sign In 方法,FB SDK 登录时,会调用 GoogleSignIn 方法,导致应用程序崩溃。
我尝试过从 G+ 方法直接调用 FB 方法,但这也不起作用。
这是一个 FB 错误吗?我应该向 FB 开发人员报告吗?
非常感谢。
最佳答案
将 Google 和 Facebook 登录添加到第一个方法中,并从应用程序中删除 func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool 。
func application(application: UIApplication,
openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url,
sourceApplication: sourceApplication,
annotation: annotation) || FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
关于swift FB LoginSDK 调用 Google 登录方法而不是它自己的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960603/