IOS Google Войти Ошибка установки обработчиков входа

Я использую SDK 2.1.0 для входа в Google для iOS.

в моем представлении ViewController для входа в систему я просто добавляю кнопку входа в Google в свое представление

    GIDSignIn.sharedInstance().uiDelegate = self
    self.googleLoginBtn = GIDSignInButton(frame: CGRectMake(0, 0, 200, 60))
    self.view.addSubview(self.googleLoginBtn)

и у меня есть 2 тестовых устройства, на одном из устройств, на котором установлено приложение Youtube, при нажатии кнопки входа в систему откройте приложение Youtube, войдите в систему и вернитесь в мое приложение. Что отлично работает.

на другом устройстве с установленными старыми приложениями отображается эта ошибка

<GIDSignIn: 0x167b97b0> error: Error Domain=com.google.GIDSignIn Code=-3 "No sign-in handlers installed" UserInfo=0x17fe0bf0 {NSLocalizedDescription=No sign-in handlers installed}

так ... какова должна быть обычная практика для решения этой проблемы ??

переопределить его и показать веб-просмотр для пользователя для входа в систему?

или попросить их не использовать приложение-обработчик входа в Google ??

Благодарю.

// Обновление. Я обнаружил, что в симуляторе в работе, даже если другое приложение не установлено, он будет представлять viewController для входа в систему.

но, похоже, они не вызывали мое приложение для обоих iphone (я установил точку останова, чтобы проверить это)

// Present a view that prompts the user to sign in with Google
func signIn(signIn: GIDSignIn!,
    presentViewController viewController: UIViewController!) {
  self.presentViewController(viewController, animated: true, completion: nil)
}

// Dismiss the "Sign in with Google" view
func signIn(signIn: GIDSignIn!,
    dismissViewController viewController: UIViewController!) {
  self.dismissViewControllerAnimated(true, completion: nil)
}

person Siu Chung Chan    schedule 15.07.2015    source источник


Ответы (2)


Если вы посмотрите демо из этого SDK.

- (void)toggleAllowSignInWithBrowser:(UISwitch *)sender {
  [GIDSignIn sharedInstance].allowsSignInWithBrowser = sender.on;
}

- (void)toggleAllowSignInWithWebView:(UISwitch *)sender {
  [GIDSignIn sharedInstance].allowsSignInWithWebView = sender.on;
}

Итак, вы должны включить или выключить состояние BOOL (т.е. ДА или НЕТ)

[GIDSignIn sharedInstance].allowsSignInWithWebView = YES;

person ronan    schedule 15.07.2015
comment
Я установил для allowSignInWithWebView значение true, он все тот же. кстати, даже я не установил для allowSignInWithWebView значение true, веб-просмотр все еще отображается в симуляторе, но это не работает в моем тестируемом iPhone - person Siu Chung Chan; 16.07.2015

Привет, у меня была аналогичная ошибка, и я нашел способ обойти эту проблему. См. Мой ответ на эту другую проблему: Не получать информацию о пользователе Google при входе в систему с помощью другого приложения Google с помощью GIDSignIn

Я обнаружил, что когда мне приходилось использовать свой собственный clientserverid, он выдавал либо вашу ошибку, либо код ошибки -1. Вам нужно использовать clientserverid?

person Diego Watanabe    schedule 03.09.2015