2015-06-11 27 views

回答

5

的独立的SDK可以在这里找到现在:https://developers.google.com/identity/sign-in/ios/sdk/

正如其他海报所说,你必须添加以下依赖框架:

  • AddressBook.framework
  • StoreKit.framework
  • SystemConfiguration.framework

您可能还需要在项目的构建步骤中设置Other Linker Flags: -ObjC标志。

5

经过一周的这个野兽擒拿,我想更新版本Google Sign-In SDK 4.0.0的答案。在

https://developers.google.com/identity/sign-in/ios/sdk/

的说明似乎是错误的版本4.0.0。他们说,你只需要链接

  • GoogleSignIn.framework
  • GoogleSignIn.bundle

(与AddressBook.frameworkStoreKit.framework,当然SystemConfiguration.framework一起)。然而,你会得到很多神秘

未定义的符号中的建筑x86_64的

错误,如果这就是你有。该CHANGELOG.md文件让你更接近真相本声明:

对于用户的独立拉链现在提供分销,多种框架和所有需要添加到项目中。这种分解在重复的依赖关系的情况下允许更多的灵活性。

所以在现实中你也需要包括:

  • GoogleAppUtilities.framework
  • GoogleAuthUtilities.framework
  • GoogleNetworkingUtilities.framework
  • GoogleSymbolUtilities.framework
  • GoogleUtilities.framework

所以,现在你应该是金色的,对不对?由于所有的好informercials说...

别急,还有更精彩的!

需要包括

  • libz.tbd

This答案给了线索包括图书馆了。不这样做,你会得到错误

无法识别的选择发送到实例

但仅限于这行代码

GIDSignIn.sharedInstance().clientID = "MyClientID" 

如果您remark出该行,该代码将工作罚款,即使这个代码仍然存在

GIDSignIn.sharedInstance().delegate = self 

对我来说这是最误导性部分。大多数网站对于错误的答案会说你需要设置OtherLinkerFlag-ObjC,我敢肯定这是问题的一个常见原因,如果它设置不正确或根本,但对我来说这是明确规定的权利,加上委托的设置工作,这意味着的GIDSignIn其他属性可以设置,那么为什么不ClientID的?我认为或许我的clientID错了,我浪费了很多时间来追逐这个虚假的线索。

所有这些令人头疼的事情可以通过使用CocoaPod来避免,但在我的情况下,我真的希望在不增加CocoaPods带来的复杂性的情况下工作,因为我还包括Facebook的SDK。

P.S.我发现这个教程

http://www.appcoda.com/google-sign-in-how-to/

比谷歌的教程写好多了,特别是你需要使用一个UIView,而不是一个UIButton为谷歌登入按钮的提醒。我花了一些时间搞不清楚为什么,直到我碰到这个教程来了我不可能在按钮的类设置为GIDSignInButton。只要记住,你需要链接库我上面描述而非教程说,因为它现在是不同的方式方法。