“GIDSignIn”类型的值没有成员“presentingViewController”
Posted
技术标签:
【中文标题】“GIDSignIn”类型的值没有成员“presentingViewController”【英文标题】:Value of type 'GIDSignIn' has no member 'presentingViewController' 【发布时间】:2019-12-31 09:36:28 【问题描述】:我正在学习使用 GoogleSignIn SDK(与 cocoapods 一起安装)的 google 登录应用程序。我没有在 pod 文件中指定版本,它自动安装了 GoogleSignIn (4.4.0)。浏览文档here。 根据文档,要添加登录按钮,我们必须编写
GIDSignIn.sharedInstance()?.presentingViewController = self
// Automatically sign in the user.
GIDSignIn.sharedInstance()?.restorePreviousSignIn()
但在最新的 Xcode 版本 10.3 (10G8) 中出现错误
Value of type 'GIDSignIn' has no member 'presentingViewController'
Value of type 'GIDSignIn' has no member 'restorePreviousSignIn'
我试图搜索这个的更新版本,但不幸的是没有找到。请帮我集成 GoogleSignIn
【问题讨论】:
你在视图控制器中import GoogleSignIn
吗?
是的,我进口了。
如果我们不导入 GoogleSignIn,那么我们的错误将是“使用未解析的标识符 'GIDSignIn'”
@MuhammadDanishQureshi 您可能必须使用哪个版本?谷歌登录(5.0.0)!
@SagarBhut pod 更新对我有用。谢谢你给我的想法。
【参考方案1】:
在ViewController
的viewDidLoad()
中添加以下行:
GIDSignIn.sharedInstance()?.uiDelegate = self
并使ViewController
符合GIDSignInUIDelegate
协议。
【讨论】:
我收到错误,“GIDSignIn”类型的值没有成员“uiDelegate”,我没有使用 cocoapods,并且由于某些项目依赖关系,我无法在项目中使用 cocoapods。你能帮我吗 它对我有用,我尝试下载 5.0 版本,但 pods 说它找不到。因此,我必须坚持这样做【参考方案2】:如果您使用的是 Google 登录 v5.0,则您的代码是正确的:
GIDSignIn.sharedInstance()?.presentingViewController = self
但既然你已经安装了 4.4.0,你应该接受Vitaly Shpinyov's answer。
或者通过编辑您的 podfile 将 Google Sign-In 升级到 5.0 或更高版本:pod 'GoogleSignIn', '~> 5.0'
【讨论】:
GIDSignIn.sharedInstance()?.presentingViewController = self【参考方案3】:在 GoogleSignIn 5.0 版本中,您可以执行以下操作
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
【讨论】:
以上是关于“GIDSignIn”类型的值没有成员“presentingViewController”的主要内容,如果未能解决你的问题,请参考以下文章
“任何”的值类型没有成员 'objectforKey' Swift 3 转换
Swift 3 - 'Any?' 类型的值没有成员“valueForKey”
“String”类型的值没有成员“stringByAppendingPathComponent”[重复]
Xcode 13:`'NSPersistentCloudKitContainerOptions' 类型的值没有成员'databaseScope'`