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!)")
有了这个设置,一切似乎都很好。 我通过查看下面的链接得到了这个想法。 让我知道这是否适合你。