проблема со входом в гугл на ios9

Я работаю над проектом, в котором есть функция входа в Google в приложении. Приложение отлично работает на всех iOS, кроме iOS9 и выше.

ниже приведен код, который я использовал для входа в Google: -

-(void)methodcallwhenclick_ongoogleSigninbutton{
      GIDSignIn *signInInstance = [GIDSignIn sharedInstance];
        signInInstance.delegate = self;
        GIDSignIn *signIn = [GIDSignIn sharedInstance];
        [signIn signOut];
        signIn.shouldFetchBasicProfile = YES;
        signIn.delegate = self;
        signIn.uiDelegate = self;
        [signIn setClientID:@"<Clientkey>.apps.googleusercontent.com"];
        [signIn setScopes:[NSArray arrayWithObject:@"https://www.googleapis.com/auth/plus.login"]];
        [signIn setDelegate: self];
        [signIn signIn];
}

Этот метод вызывается, когда я успешно вхожу в приложение, но в ios9 этот метод не вызывается. Представление входа в Google открывается в веб-просмотре, и после того, как я нажимаю «РАЗРЕШИТЬ», веб-просмотр закрывается. Я не могу получить код авторизации google в ios9. Есть ли способ вызвать этот метод в версии ios9 и выше?

- (void)signIn:(GIDSignIn *)signIn
didSignInForUser:(GIDGoogleUser *)user
     withError:(NSError *)error
{

}

person Developer    schedule 24.11.2015    source источник
comment
Вы следуете новым руководствам по входу в Google developers.google.com/identity/sign- в /ios/start?   -  person ajmccall    schedule 26.11.2015


Ответы (2)


Это сработало для меня. Я столкнулся с тем, что объект GIDGoogleUser стал нулевым. Ошибка была "Пользователь отменил процесс входа". Правильное приведение типов для этого — использовать as!. Это устранило зависание сафари после нажатия «Готово».

В AppDelegate:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

        let result = GIDSignIn.sharedInstance().handle(url,
                //added exclamation mark
                sourceApplication: String(describing: options[UIApplicationOpenURLOptionsKey.sourceApplication]!),
                annotation: options[UIApplicationOpenURLOptionsKey.annotation])

        return result

    }
person A.G    schedule 28.03.2017

person    schedule
comment
Оба предложенных решения не работали для меня: 1. Белый список не требуется. GIDSignin версии 2.3 и выше. 2. Без вызова handleurl() вход в iOS8.3 работает как шарм. Все еще работаю над этим.. - person Apporve Chandra; 04.02.2016
comment
@ApporveChandra Вы нашли решение? - person Shashank Agarwal; 31.05.2017
comment
Интересно, что у меня это сработало, но когда я сделал чистую сборку, снова произошел сбой. любая помощь здесь? - person Sadanand; 18.06.2018