web-dev-qa-db-ja.com

未解決の識別子「GGLContext」の使用

私はiOSにGoogleサインインを統合していますSwiftアプリ。ここのGoogle開発者ページの公式指示に従っています( 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'

どんな助けでも大歓迎です。

14
Thalatta

_Google/*_ポッドは非推奨です。代わりに、_pod GoogleAnalytics_または_pod GoogleSignIn_を使用する必要があります。 GGLContextは、AnalyticsまたはSignInに_GoogleInfo-Service.plist_ファイルを必要としなくなったため、存在しなくなったため、これらのポッドで見つけることができません。

サインインの場合、GoogleInfo-Service.plistファイルで以前に取得したclientIDを使用して初期化する必要があります

GIDSignIn.sharedInstance().clientID = kClientID

またはFirebaseを使用している場合

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

Analyticsの場合、GoogleInfo-Service.plistファイルまたは分析パネルで以前に取得したtrackerIDを使用して初期化する必要があります

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

Googleサインインドキュメント

Google Analyticsドキュメント

32

内部Podfile.h、

交換

pod 'GoogleSignIn' 

pod 'Google/SignIn'

BridgingHeader.hファイル内に次の2行を追加します。

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

AppDelegate.Swift内

交換

import GoogleSignIn

import Google

私の場合、これはうまくいきました。

実際、ポッド「Google/SignIn」には、GGLContextを使用するために必要なGoogleの必要な依存関係があります。ポッド「GoogleSignIn」を使用してココアポッドをインストールする場合、これらは存在しません

21
Saurabh Bhatia

Benjamin Jimenezの答えは正しいものであり、「正しい」とマークされたものではありませんでした。新しいバージョンに移行してそれに応じてプロジェクトを更新するのではなく、廃止されたバージョンのライブラリを使用することを提案しているためです。 https:// stackoverflow .com/a/46858690/3506788

ただし、ソリューションへの小さな追加が1つあります。Firebaseを使用する場合は、次の行を使用する前にFirebaseを初期化してください。

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