Ошибка входа в Google в OS 9.2 Xcode 7.2
Я использую Xcode 7.2, тестирую на iOS 9.2 и использую модуль 'Google/SignIn'
После успешного входа в систему и разрешения разрешения его перенаправить на страницу google.co.in вместо закрытия экрана и вызова их адресатов. То же самое работает нормально в OS 7.0 и 8.0. Ниже приведен код, используемый для входа в систему.
GIDSignIn*sigNIn=[GIDSignIn sharedInstance];
[sigNIn setDelegate:self];
[sigNIn setUiDelegate:self];
sigNIn.shouldFetchBasicProfile = YES;
sigNIn.allowsSignInWithBrowser = NO;
sigNIn.allowsSignInWithWebView = YES;
sigNIn.scopes = @[@"https://www.googleapis.com/auth/plus.login",@"https://www.googleapis.com/auth/userinfo.email",@"https://www.googleapis.com/auth/userinfo.profile"];
sigNIn.clientID =@"77904325793-iqdungs3ugddrf7h767pgagviokfi4cg.apps.googleusercontent.com";
[sigNIn signIn];
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
return [[GIDSignIn sharedInstance] handleURL:url
sourceApplication:options[UIApplicationLaunchOptionsSourceApplicationKey]
annotation:options[UIApplicationLaunchOptionsAnnotationKey]];
}
После входа он перенаправляет на google.co.in вместо закрытия экрана.
1 ответ
Решение
Я думаю, это потому, что функция openUrl была изменена в iOS 9.
Чтобы решить эту проблему, аннотируйте функции в соответствии с доступной версией iOS.
Вот что я сделал, чтобы решить это:
@available(iOS 9.0, *)
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey]! as! String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
@available(iOS 8.0, *)
func application(application: UIApplication,
openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication!, annotation: annotation)
}
Дайте мне знать, если это решило вашу проблему.