谷歌多次登录使用GIDSignin

我可以通过下面的代码使用GIDSignIn对单个帐户进行身份validation。

  GIDSignIn *googleSignIn = [GIDSignIn sharedInstance]; googleSignIn.delegate = self; googleSignIn.uiDelegate = self; googleSignIn.clientID = (NSString*)cGmailAppClientId; googleSignIn.scopes = [self getGmailAuthenticationScopes];; [googleSignIn signIn]; 

但是GIDSignIn是共享实例。 这是一个只有一个帐户。 如何添加多个帐户? 应同时访问多个帐户 (Ex获取访问令牌)。

相关的SO问题没有给出正确的想法。

我不认为GIDSignIn支持多个帐户。 理论上,您可以实例sharedInstance之外的sharedInstance ,但一次只有一个授权将持久保存到iOS Keychain。 (该库需要多个密钥来保存多个授权,但如果您实例化多个实例,它怎么知道冷启动后哪个是哪个?)

幸运的是,有谷歌的GTMAppAuth一个实现相同目的的替代库。 它比GIDSignIn使用GIDSignIn有点复杂,但通常以相同的方式工作。 关键的区别在于:1)您可以一次创建多个授权,以及2)您可以使用您选择的密钥将它们保存到iOS钥匙串。 如果您对访问Gmail有兴趣,那么来自流行的MailCore2库的这些步骤可能会有所帮助。

从这个线程听起来就像公司内不同的团队支持图书馆一样,但我怀疑它们会在融合之前有一段时间,如果有的话。