Inicio de session de Google plus para la extensión de compartir xcode

Estoy escribiendo una aplicación de iOS para compartir enlaces a la página web por correo electrónico, y como parte de ella quiero que los usuarios puedan iniciar session en google plus. Tengo la aplicación contenedora funcionando bien usando las instrucciones de aquí:

https://developers.google.com/+/mobile/ios/sign-in

y ahora estoy tratando de agregar una extensión compartida que también puede acceder al perfil de Google + del usuario. Empecé tratando de agregar el button de inicio de session en la extensión de compartir, pero no creo que eso funcione porque después de hacer clic en el button, se le retira de la aplicación al browser para aceptar permissions y luego está no hay forma de networkingirigir a la extensión de compartir (o al less no puedo ver una manera).

Lo que espero ahora es que el usuario pueda iniciar session y aceptar permissions en la aplicación principal (que contiene), pero luego usar la extensión compartida y seguir iniciando session con el mismo perfil. Estoy usando un UIViewController personalizado en la extensión compartida y, como primer bash, he intentado usar la misma identificación del cliente en la extensión compartida que la aplicación contenedora y llamar a esto en el método viewDidLoad:

GPPSignIn *signIn = [GPPSignIn shanetworkingInstance]; signIn.shouldFetchGooglePlusUser = YES; signIn.shouldFetchGoogleUserEmail = YES; signIn.clientID = kClientID; signIn.scopes = @[ @"profile" ]; signIn.delegate = self; if ([signIn hasAuthInKeychain]) { NSLog(@"Has auth in keychain"); } else { NSLog(@"No auth in keychain"); } 

en la aplicación que contiene hasAuthInKeychain devuelve true, pero en la extensión share es falso. La identificación del cliente que estoy usando está vinculada al package para la aplicación principal, así que no estoy seguro de poder usarla en la extensión compartida de todos modos, pero si intenté crear un ID de cliente por separado para la aplicación extensión entonces, presumiblemente, necesitaría volver a pasar por el process de autorización?

¿Hay alguna manera de que pueda get acceso a la token de authentication existente de la aplicación principal y usarla en la extensión de compartir?

Estás en el path correcto.

Para acceder al mismo llavero tanto en la aplicación como en la extensión, debe habilitar la function "Compartir llavero" para ambos en Xcode. Cuando haga esto, Xcode probablemente querrá actualizar su ID de aplicación y los perfiles de aprovisionamiento, ya que deben reflejar la nueva capacidad.

Si esto es suficiente depende de cómo el marco de Google maneja el llavero, sin embargo. Probablemente sea todo lo que necesite, porque como indican los documentos para SecItemAdd , los elementos se agregarán al primer grupo de la list por defecto. Pero no sé cómo funciona el código de Google, así que no puedo estar seguro de eso.

Una vez que lo haga, probablemente tendrá que volver a autorizar la aplicación para get las cnetworkingenciales en el grupo correcto. Sin embargo, después de eso, tanto la aplicación como la extensión pueden search valores existentes.