ちょっとしたトラブルがあります。 Googleアナリティクスをアプリにインストールしようとしていますが、未解決の識別子GGLContext
およびGAI
エラーが一貫して使用されています。 CocoaPodsを使用しているかどうかにかかわらず、同じエラーを受け取ります。エラーの場所は次のAppDelegate.Swift
にあります。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
var configureError:NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services: \(configureError)")
// Optional: configure GAI options.
let gai = GAI.sharedInstance()
gai.trackUncaughtExceptions = true // report uncaught exceptions
return true
}
AppDelegate.Swift
(Googleなど)に追加できるものは何もありません。標準のUIKit
だけをインポートできます。
私は多くのチュートリアルや他のSO質問、すべて役に立たなかった。
私がやったこと:
プロジェクトに.h
ファイルとlibGoogleAnalyticsServices.a
、libsqlite3.0.tbd
、libz.tbd
、libsqlite3.tbd
があります(これらはすべてライブラリにリンクされているだけでなく、 CoreDataおよびSystemConfiguration)。
これらすべてのファイルのレイアウトは、ここで確認できます。
そしてここ:
-Bridging-Header.h
を作成し、これらの.h
インポートを含めました。
#import "GAI.h"
#import "GAIDictionaryBuilder.h"
#import "GAIEcommerceFields.h"
#import "GAIEcommerceProduct.h"
#import "GAIEcommerceProductAction.h"
#import "GAIEcommercePromotion.h"
#import "GAIFields.h"
#import "GAILogger.h"
#import "GAITrackedViewController.h"
#import "GAITracker.h"
-Bridging-Header.h
はビルド設定にリンクされており、エラーは表示されません。それが私の研究中に見つけた主な解決策ですが、この状況では私を助けませんでした。
CocoaPodsを使用して、または使用せずに(開始前にプロジェクトのコピーを作成しました)、ゼロから最初からやり直そうとしましたが、毎回同じエラーを受け取りました。
どんな助けも確かにありがたいです。前もって感謝します。
さて、私はそれを取り除けたようです。
これに関するすべての試みにはいくつかの問題がありました。
Cocoapodsが正しくインストールされていませんでした。再インストールしてから、正しいファイルのインポートが成功しました。
上記で投稿したように、手動で行うことは最良の選択肢ではありません。
Cocoapodsを再インストールし、プロジェクトの新しいコピーからやり直した後、_import Google
_を_AppDelegate.Swift
_に入れることができました。
私がいた同じ船に乗り込むかもしれない人々のためのキーポイント:
_-Bridging-Header.h
_の正しいディレクトリを必ず追加してください。これは、プロジェクト-ビルド設定-Swiftコンパイラコード生成。これを使用して、ヘッダーファイル$(Swift_MODULE_NAME)-Bridging-Header.h
を簡単にターゲットにできます。
_-Bridging-Header.h
_では、_#import <Google/Analytics.h>
_ではなく、ファイルを個別にインポートします。インポート可能なファイルの画像を次に示します。
疑わしい場合は、Cocoapodsを再インストールしてください
Googleチュートリアルを信頼して、最も効果的な指示を提供し、トピックに関する多くのSO投稿を利用してください。
これが、私のように誰かが問題に10時間を費やさないようにすることを本当に願っています。
Swift 4.0およびxcode 9.0.1は最終的に解決しました。
2日後の私にとっては解決しました。Googleの古いドキュメント「#import <Google/Analytics.h>
」に従ってください
pod init
に移動しますpod 'GoogleAnalytics'
の前にtarget 'GoogleAnalytics' do
をPodファイルに書き込みますpod install
に戻ります。フレームワークGAI.h
があり、その他のファイルはpodsフォルダーの下にあります。Header.h
ファイルをルートに作成します。 _#import <Google/Analytics.h>
を追加せず、代わりにブリッジングヘッダーファイルに個別に以下をインポートします例えばブリッジングヘッダーファイルの削除#import <Google/Analytics.h>
#import GAI.h
#import "GAITracker.h"
#import "GAIFields.h"
#import "GAIDictionaryBuilder.h"
ターゲットのビルド設定でブリッジを指定しますSwiftコンパイラ-一般-> Objective-Cブリッジングヘッダー。書き込みブリッジングファイル名のHeader.h
]
Swift to didFinishLaunchingWithOptions
にgoogleからコードを追加しますGoogleアナリティクスページのトラッキングIDを置き換えることを忘れないでください
guard let gai = GAI.sharedInstance() else {
assert(false, "Google Analytics not configured correctly")
}
gai.tracker(withTrackingId: "YOUR_TRACKING_ID")
// Optional: automatically report uncaught exceptions.
gai.trackUncaughtExceptions = true
// Optional: set Logger to VERBOSE for debug information.
// Remove before app release.
gai.logger.logLevel = .verbose;
多田....プロジェクトを実行...
私のエラーは、シングルトンGAI.sharedInstance()
を使用していたときの未解決の識別子の使用でした。
これを機能させるための私の手順は次のとおりです。
pod 'Google/Analytics'
を追加#import "GAI.h"
をブリッジングヘッダーファイルに追加しましたすべてが完璧に機能します。
これはSwift 2.3、Swift 3.0およびSwift 4:
これをポッドファイルに追加します:
pod 'Google/Analytics'
ビルド設定の下で、Bridging-Header.hという名前のプロジェクトルートにヘッダーファイルを作成し、ブリッジヘッダーが図のように定義されていることを確認します
bridging-Header.hが次のようになっていることを確認してください。
#ifndef Bridging_Header_h
#define Bridging_Header_h
#import <Google/Analytics.h>
#endif /* Bridging_Header_h */
appDelegateに追加します。
import Google
didFinishLaunchingWithOptionsメソッドでこのコードをAppDelegateに追加します。
// Configure tracker from GoogleService-Info.plist.
var configureError: NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services:\(configureError)")
// Optional: configure GAI options.
guard let gai = GAI.sharedInstance() else {
assert(false, "Google Analytics not configured correctly")
}
gai.trackUncaughtExceptions = true // report uncaught exceptions
gai.logger.logLevel = GAILogLevel.Verbose // remove before app release
エラーがある場合は、DerivedDataを削除してプロジェクトをクリーンアップすると役立ちます。
動作させる唯一の方法は、Google Analyticsポッドバージョンを2.0.4にダウングレードすることでした。
ポッド「Google/Analytics」、「〜> 2.0.4」