使用未解析的标识符' GGLContext'

时间:2016-09-02 18:24:22

标签: ios google-signin

我在我的ios Swift应用中集成了Google Sign-In。我按照谷歌开发者页面上的官方说明(https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift

这是我的桥接标题:

#ifndef Header_h
#define Header_h


#endif /* Header_h */

#import <CommonCrypto/CommonCrypto.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <GoogleSignIn/GoogleSignIn.h>

当我在AppDelegate.swift函数中调用

的行时
    GGLContext.sharedInstance().configureWithError(&configureError)

在里面。它说

 Use of unresolved identifier 'GGLContext'

感谢任何帮助。

3 个答案:

答案 0 :(得分:29)

不推荐使用

Google/*个广告连播,您应该使用pod GoogleAnalyticspod GoogleSignIn。您无法在这些广告连播中找到GGLContext,因为它不再存在,因为它不再需要GoogleInfo-Service.plist文件进行Google Analytics或SignIn。

对于SignIn,您应该使用先前在 GoogleInfo-Service.plist 文件中获取的clientID来初始化

GIDSignIn.sharedInstance().clientID = kClientID

或者如果您使用的是Firebase

GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID

对于Google Analytics,您应使用先前在 GoogleInfo-Service.plist 文件或分析面板中获取的trackerID来初始化

let tracker = GAI.sharedInstance().tracker(withTrackingId: kTrackerID)

Google SignIn docs

Google Analytics docs

答案 1 :(得分:20)

Podfile.h中,

替换

pod 'GoogleSignIn' 

pod 'Google/SignIn'

BridgingHeader.h 文件中添加以下两行:

#import <GoogleSignIn/GoogleSignIn.h>
#import <Google/Core.h>

在AppDelegate.swift内部,

替换

import GoogleSignIn

import Google

这适用于我的情况。

实际上,“Google / SignIn”广告连播具有Google使用GGLContext所需的依赖关系。使用pod'GoogleSignIn'

安装cocoapods时,这些不存在

答案 2 :(得分:4)

Benjamin Jimenez的答案是正确的,而不是标记为“正确”的答案,因为它建议使用已弃用的库版本,而不是继续使用新版本并相应地更新项目: https://stackoverflow.com/a/46858690/3506788

该解决方案的一小部分内容:如果您使用Firebase,请确保在使用此行之前初始化Firebase:

GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID