Google SignIn: no se puede desconectar la aplicación iOS

He implementado Google SignIn en mi aplicación iOS y puedo iniciar session en una count de google por primera vez. Pero cuando cierro session e bash volver a iniciar session, obtengo la pantalla de permiso de la count como se muestra a continuación con el último usuario en lugar de la pantalla Iniciar session.

introduzca la descripción de la imagen aquí

A continuación se muestra el código que he usado.

var signIn = GIDSignIn.shanetworkingInstance() signIn.delegate = self signIn.uiDelegate = self 

A continuación se muestra el código para cerrar session y desconectarse.

 GIDSignIn.shanetworkingInstance().signOut() GIDSignIn.shanetworkingInstance().disconnect() 

Después de desconectarme, bash de nuevo firmar usando el código siguiente

 GIDSignIn.shanetworkingInstance().signIn() 

¿Cómo puedo mostrar la pantalla de inicio de session después de cerrar session y desconectar?

Me quedé atrapado en esto por un time y se me ocurrió una solución bastante hacky.

Parece que la list de la count de GIDSignIn está utilizando una vista web de Safari, por lo que su logging de las counts utiliza cookies / almacenamiento local y es independiente del llavero iOS (y tokens de OAuth).

Cuando un usuario llega a cerrar session en mi aplicación, estoy abriendo un SFSafariViewController así:

 import SafariServices class MyViewController: SFSafariViewControllerDelegate { ... 

dentro de su acción de button (o donde desea registrar al usuario):

 let logoutUrl = URL(string: "https://www.google.com/accounts/Logout")! let logoutViewController = SFSafariViewController.init(url: logoutUrl) logoutViewController.delegate = self self.present(logoutViewController, animated: true, completion: nil) 

donde implementa el método de delegado didCompleteInitialLoad y descarta el controller de vista como el siguiente:

 func safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) { controller.dismiss(animated: false) { //Switch view controllers } } 

Esta parece ser la única forma en que puedo darme count.