iOS Swift:谷歌login错误

我正在按照这个教程来使用swift在我的iOS应用程序中添加谷歌login。 我遵循上述的所有步骤,但是当我尝试构build应用程序时,它在我的appdelegate.swift文件中给了我一个问题。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { var configureError: NSError? GGLContext.sharedInstance().configureWithError(&configureError) assert(configureError == nil, "Error configuring Google services: \(configureError)") GIDSignIn.sharedInstance().clientID = "client id" return true } 

所以下面的代码行

 GGLContext.sharedInstance().configureWithError(&configureError) 

错误文本是“使用未parsing的标识符GGLContext”。 这里可能是什么问题?

我find了解决scheme,可以使用Bridge-Header.h文件并像那样导入

 #ifndef Bridge_header_h #define Bridge_header_h #import "Google/Core.h" #import "GoogleSignIn.h" #endif /* Bridge_header_h */ 

这完全是我的工作。

在Bridging-Header.h中

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

在AppDelegate.swift中

 import Google 

初步:

我已经烦恼了几天,现在我整合了Cocoapod Google / SignIn,我得到了线程警告。 深入挖掘一切后,我可能find了解决办法。 这可能只是值得一看的东西,如果你想要在你的项目login谷歌的唯一方面。如果你有Firebase或谷歌的任何其他部分集成,你可能不会遇到一个问题,导致你到这个线程虽然。

好,在深入研究这个问题之后,我发现我的解决scheme是:

在Bridging Header中只导入#import <GoogleSignIn/GoogleSignIn.h>

在AppDelegate导入只import GoogleSignIn

在Podfile中只导入pod 'GoogleSignIn'

在AppDelegate didFinishLaunchingWithOptions做这样的事情:

 if let path = Bundle.main.path(forResource: "GoogleService-Info", ofType: "plist"), let googleInfo = NSDictionary(contentsOfFile: path), let clientId = googleInfo["CLIENT_ID"] as? String { GIDSignIn.sharedInstance().clientID = clientId } GIDSignIn.sharedInstance().delegate = self 

并删除:

 var configureError: NSError? GGLContext.sharedInstance().configureWithError(&configureError) assert(configureError == nil, "Error configuring Google services: \(configureError!)") 

有了这个设置,一切似乎都很好。 我通过查看下面的链接得到了这个想法。 让我知道这是否适合你。

https://github.com/googlesamples/google-services/blob/master/ios/signin/SignInExampleSwift/AppDelegate.swift