在过去的三天里,我陷入了一个非常令人恼火的问题。我已经实现了Google+登录,它运行得很好,直到我从G+iOS SDK版本1.5.1升级到1.7.1。我做的和谷歌开发者中提到的完全一样。当我按下登录按钮后,它会转到设备上的Safari或Google+应用程序,并切换回我的应用程序,出现一个我无法解决的错误。
这就是我实现的方式,
StartScreenViewController.h
#import <GooglePlus/GooglePlus.h>
@interface StartScreenViewController : UIViewController <GPPSignInDelegate> {
GPPSignIn *signIn;
}
StartScreenViewController.m
#import <GoogleOpenSource/GoogleOpenSource.h>
static NSString * const kClientId = @"********-*************.apps.googleusercontent.com";
- (void)initUI {
btnGooglePlus = [UIButton buttonWithType:UIButtonTypeCustom];
[btnGooglePlus addTarget:self action:@selector(loginWithGooglePlus:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnGooglePlus];
}
- (void)viewDidLoad {
signIn = [GPPSignIn sharedInstance];
signIn.shouldFetchGooglePlusUser = YES;
signIn.shouldFetchGoogleUserEmail = YES;
signIn.clientID = kClientId;
signIn.scopes = @[ kGTLAuthScopePlusLogin ];
signIn.delegate = self;
}
-(void)loginWithGooglePlus:(id)sender {
[signIn authenticate];
}
它切换回应用程序并调用委托方法-(void)finishedWithAuth:(GTMOAuth2Authentication*)auth error:(NSError*)error
我得到的是一条错误消息:错误域=com.google.GTMHTTPetcher代码=-1"操作无法完成。(com.google.GtMHTTPetcher错误-1。)"
我甚至实现了GPPSignInButton,它也给出了相同的结果。我不知道为什么会发生这种事。如果有人能为我指明正确的方向,那将是一个很大的帮助。
谢谢。
几天前我使用G+SDK,一切都很好。我的实现与您的不同之处在于,我没有设置任何作用域,并且只在trySilentAuthentication
之后使用身份验证,如下所示:
-(void)loginWithGooglePlus:(id)sender {
if (![signIn trySilentAuthentication]) {
[signIn authenticate];
}
}
您还应该尝试通过disconnect
删除旧的密钥链数据
我设法解决了这个问题。这不是我的编码问题。事实上,所有的问题都是由斯普伦克号引起的。集成splink后,它会影响Google+的响应。不得不删除并实现另一个崩溃报告工具解决了我的问题。希望这对任何遇到这个问题的人都有帮助。
谢谢。