Я использую Google Sheets API и Drive API и перевел свое приложение на использование Google SignIn вместо встроенной аутентификации webView. Я могу успешно войти в систему и передать аутентификацию службам API, однако всякий раз, когда приложение переходит в фоновый режим, оно не сохраняет учетные данные. Раньше этот код просто перезагружал учетные данные из связки ключей и при необходимости мгновенно обновлял токены:
self.service.authorizer =
[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName
clientID:kClientID
clientSecret:nil];
Но теперь мне нужно проверить, существуют ли учетные данные в цепочке для ключей, используя следующий код в моем AppDelegate:
if ([GIDSignIn sharedInstance].hasAuthInKeychain) {
NSLog(@"Auth exists in keychain!");
[[GIDSignIn sharedInstance] signInSilently];
} else {
NSLog(@"No credentials in keychain!");
[[GIDSignIn sharedInstance] signIn];
}
SignInSilently, похоже, займет некоторое время, и мне нужно приостановить мой код на 3 секунды, прежде чем передавать учетные данные в мои службы API. Из документации кажется невозможным просто сохранить и перезагрузить учетные данные из связки ключей?