Facebooklogin和Googlelogin之间的冲突 – iOS

我已经在我的应用程序中通过Facebook成功部署了一个login。 然后,我试图增加通过Google+login的可能性,但是我经过了几个漫长的夜晚编程,还有几个人的post比我在当前存在的路障上得出的结论要好得多: 我怎么能login谷歌加使用谷歌加Ios-SDK-1.7.1 SDK? 。

我现在正尝试按照Google开发人员网站中看似简单的说明执行Googlelogin。

然而,Google解释这种方式与通过Facebook运行login所需的设置产生了一些冲突。 我试图通过使用Pod重写Facebook代码,并在安装Google Sign In的同时安装它,但是我无法使其工作(仍然阻碍通过Facebook进行身份validation)。

像这样实现。

- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if ([[url scheme] isEqualToString:FBTOKEN]) { return [FBSession.activeSession handleOpenURL:url]; return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:FBSession.activeSession]; } else { [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation]; } return YES; } 

我为Google和Facebook实施了这种方式

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { let options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication!, UIApplicationOpenURLOptionsAnnotationKey: annotation] return FBSDKApplicationDelegate.sharedInstance().application( application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) || GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil) } 

检查你是否在里面实现了GPPURLHandler方法

 -(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { } 

这对我来说,谷歌login版本2.4.0和Facebook的ios SDK 4.10.0

1)删除方法

 func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool 

从AppDelegate

2)执行如下:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { if url.scheme == "fbxxxxxxxxxxxx" { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) } else { let options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication!, UIApplicationOpenURLOptionsAnnotationKey: annotation] return FBSDKApplicationDelegate.sharedInstance().application( application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) || GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil) } } 

fb urlscheme取自Info.plist中的Url Schemes