我第一次尝试swift,想要用Facebook和谷歌加登录创建应用程序。
我可以使用swift进行Facebook登录,但没有逐步添加谷歌登录。
到目前为止,我已经编写了如下示例代码:
我有第一个带按钮的屏幕,点击它导致谷歌登录页面 -
import UIKit
class GooglePlusLogin: UIViewController,GPPSignInDelegate {
//var signIn: GPPSignIn?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
var signIn = GPPSignIn.sharedInstance()
//var signIn:GPPSignIn = GPPSignIn.sharedInstance()
signIn.shouldFetchGooglePlusUser = true
signIn?.clientID = "25344945xxxx-u4ou9si6v9qrr1ogmqactepxxxxxbg9s.apps.googleusercontent.com"
signIn?.scopes = [kGTLAuthScopePlusLogin]
signIn?.delegate = self
signIn?.authenticate()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK: G+
func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!) {
}
func didDisconnectWithError(error: NSError!) {
}
}
每当我点击该按钮时,它都会给我一个错误:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSDictionaryM gtm_httpArgumentsString]:发送到实例的无法识别的选择器 0x7fb58a716480'
我做错了什么?我添加了所有具有正确客户端ID的框架。
答案 0 :(得分:0)
您可能没有使用cocoapods来安装库?我得到了同样的错误。
您必须使用-ObjC链接器标志才能使其正常工作,否则会丢失框架中的某些objc类别。但它为我打破了其他库,所以我放弃并使用了pod。
这是一步一步的教程:https://developers.google.com/identity/sign-in/ios/start-integrating