我遇到了一点麻烦。我试图将Google Analytics安装到一个应用程序中,但一直收到使用未解析标识符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
。
我已经通过了许多教程和其他如此的问题,都无济于事。我想,有一些小东西,我失踪了,但找不到它。
我做了什么:
我的项目中有.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和没有(我做了一个副本,我的项目开始前),我收到了同样的错误,每次。
任何帮助都将不胜感激。提前感谢。
5条答案
按热度按时间de90aj5v1#
看起来我能搞定了。
在这方面的所有尝试都有几个问题。
1.这样做的手动,因为我张贴以上是不是最好的选择.
1.在重新安装Cocoapods并从我的项目的一个新副本重新开始后,我能够将
import Google
导入我的AppDelegate.swift
。对于那些可能最终与我处于同一条船上的人来说,关键点是:
-Bridging-Header.h
添加正确的目录。您可以在Project - Build Settings - Swift Compiler Code Generation下找到此目录。使用此目录可以轻松地定位您的头文件$(SWIFT_MODULE_NAME)-Bridging-Header.h
-Bridging-Header.h
中,不要使用#import <Google/Analytics.h>
,而是单独导入文件。以下是可导入文件的图像。我真的希望这能帮助有人不像我一样花10个小时在这个问题上。
luaexgnf2#
Swift 4.0和xcode 9.0.1终于解决了。
对我来说,2天后,我解决了。.不要按照谷歌的旧文档说
#import <Google/Analytics.h>
1.转到终端类型
pod init
target 'GoogleAnalytics' do
之前写入pod 'GoogleAnalytics'
1.返回终端
pod install
,您将在pod文件夹下找到框架GAI.h
和其他文件1.在根目录下创建
Header.h
文件***不要添加#import <Google/Analytics.h>
***而是在桥接头文件中单独导入以下内容例如,在桥接头文件中删除
#import <Google/Analytics.h>
1.在目标Swift编译器的构建设置--通用--〉Objective-C桥接头下指向你的桥接器。写入桥接文件名的
Header.h
1.从google为swift添加代码到
didFinishLaunchingWithOptions
别忘了从Google Analytics页面替换您的跟踪ID多田....运行您的项目...
ibps3vxo3#
我的错误是在使用单一
GAI.sharedInstance()
时使用了未解析的标识符。我将其付诸实践的步骤是:
1.将
pod 'Google/Analytics'
相加1.重新启动xcode
1.在我的项目中创建一个objc类以获取桥接头
1.在桥接头文件中添加了
#import "GAI.h"
一切都很完美。
5us2dqdw4#
这适用于swift 2.3、swift 3.0和swift 4:
1.将GoogleService-Info.plist文件添加到项目的根目录
1.将此添加到podfile:
1.退出Xcode,在终端中运行“pod install”,然后再次打开Xcode
1.在项目根目录下创建一个名为Bridging-Header.h的头文件,在构建设置下确保桥接头文件的定义与图片x1c 0d1x中的定义相同
1.请确保您的Bridging-Header.h如下所示:
1.添加到AppDelegate:
1.将以下代码添加到didFinishLaunchingWithOptions方法中的AppDelegate:
如果有错误,删除DerivedData并清除项目可能会有所帮助。
p5fdfcr15#
唯一能让它为我工作的方法是将谷歌分析pod版本降级到2. 0. 4。
pod '谷歌/分析','~〉2.0.4'