iOS谷歌登录不';不能在新范围内正常工作

iOS谷歌登录不';不能在新范围内正常工作,ios,google-app-engine,oauth-2.0,google-login,gtm-oauth2,Ios,Google App Engine,Oauth 2.0,Google Login,Gtm Oauth2,在中,他们说开发人员需要从以下范围迁移: https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile email profile 而是使用这些作用域: https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile email pro

在中,他们说开发人员需要从以下范围迁移:

https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
email
profile
而是使用这些作用域:

https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
email
profile
但是,在我的应用程序引擎后端执行此操作后,我的iOS应用程序出现了问题。在第一次运行时,它会要求我登录,屏幕会正确显示两个作用域,然后应用程序就会正常运行。在第二次运行时,它应该从受保护的存储中检索授权凭据,但它不工作,因为App Engine服务器正在接收端点中用户参数的
null

appengine端点需要
电子邮件
配置文件
范围。用于检索以前凭据的iOS代码为:

GTMOAuth2Authentication* auth =
[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:AUTH_KEYCHAIN_NAME
                                                      clientID:Constants.IOS_CLIENT_ID
                                                  clientSecret:Constants.IOS_CLIENT_SECRET];
viewController = [[GTMOAuth2ViewControllerTouch alloc]
                  initWithScope:Constants.EMAIL_SCOPE
                  clientID:Constants.IOS_CLIENT_ID
                  clientSecret:Constants.IOS_CLIENT_SECRET
                  keychainItemName:AUTH_KEYCHAIN_NAME
                  delegate:self
                  finishedSelector:@selector(viewController:finishedWithAuth:error:)];
如果没有以前的凭据,则用于身份验证的iOS代码为:

GTMOAuth2Authentication* auth =
[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:AUTH_KEYCHAIN_NAME
                                                      clientID:Constants.IOS_CLIENT_ID
                                                  clientSecret:Constants.IOS_CLIENT_SECRET];
viewController = [[GTMOAuth2ViewControllerTouch alloc]
                  initWithScope:Constants.EMAIL_SCOPE
                  clientID:Constants.IOS_CLIENT_ID
                  clientSecret:Constants.IOS_CLIENT_SECRET
                  keychainItemName:AUTH_KEYCHAIN_NAME
                  delegate:self
                  finishedSelector:@selector(viewController:finishedWithAuth:error:)];
这过去很管用!现在,App Engine服务器将电子邮件范围从
../userinfo.email
更改为
email
,配置文件范围从
../userinfo.profile
更改为
profile
。iPad应用程序对新后端显示相同的行为,并将
常量设置为任意一个值

googleapi objectivec客户端
库是最新的v0510

我的应用程序的Android版本在后端更改后仍然可以正常工作,没有任何代码更改

更新2015-02-26:目前正在使用谷歌api objectivec客户端的r424(2014-12-30)。没有变化。如果AppEngine后端正在使用新的“配置文件”和“电子邮件”作用域,则iOS应用程序无法在第二次(或更高版本)运行时进行身份验证,因为它正在从应用商店加载凭据,而不是通过登录流

第一个(登录凭据)的AppEngine日志显示:

第二个(已加载凭据)的AppEngine日志显示:

此异常不会向上传播<为用户返回code>null

要使
GTMOAuth2ViewControllerTouch
在新范围内正常工作,是否还需要执行其他操作?或者可能是出现了问题