首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未解析标识符GGLContext和GAI的使用

未解析标识符GGLContext和GAI的使用
EN

Stack Overflow用户
提问于 2016-05-15 17:18:58
回答 4查看 15.7K关注 0票数 25

我有点麻烦。我正在尝试将Google安装到一个应用程序中,并且一直使用未解决的标识符GGLContextGAI错误。无论是否使用CocoaPods,我都会收到相同的错误。错误的位置在这里的AppDelegate.swift中:

代码语言:javascript
复制
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.alibsqlite3.0.tbdlibz.tbdlibsqlite3.tbd (所有这些文件都链接到库以及CoreData和SystemConfiguration)。

您可以在这里看到所有这些文件的布局:

在这里:

我已经创建了-Bridging-Header.h,并在其中包含了这些.h导入。

代码语言:javascript
复制
#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被链接到Build中,我没有收到任何错误。这是我在研究过程中发现的主要解决方案,在这种情况下对我没有任何帮助。

我试着用CocoaPods从头开始两次,但没有(我在开始之前复制了一个项目),每次都收到相同的错误。

如果能提供任何帮助,我们将不胜感激。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-15 22:00:40

看来我能把它平方了。

在这方面的所有尝试都有几个问题。

  1. Cocoapods没有正确安装。我重新安装,然后最好成功导入正确的文件。
  2. 手工操作,就像我上面发布的那样,并不是最好的选择。
  3. 在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个小时在这个问题上。

票数 17
EN

Stack Overflow用户

发布于 2017-11-03 08:54:16

SWIFT4.0和xcode 9.0.1最后我解决了.

对我来说,两天后我决定..。不要遵循谷歌的旧文档,#import <Google/Analytics.h>

  1. 转到终端类型pod init
  2. 在创建了pod工作区之后,打开podfile,重新打开工作空间作为工作空间。在pod 'GoogleAnalytics'文件中写入target 'GoogleAnalytics' do之前
  3. 回到终端pod install,您会发现框架、GAI.h和其他文件都在pods文件夹下
  4. Header.h文件创建到根目录。不要在桥接头文件中单独导入#import <Google/Analytics.h>不要添加

例如,在桥接头文件中,删除#import <Google/Analytics.h>

代码语言:javascript
复制
#import GAI.h
#import "GAITracker.h"
#import "GAIFields.h"
#import "GAIDictionaryBuilder.h"
  1. 指出您的桥梁在构建设置下的目标快速编译器-一般->目标-C桥接头。编写桥接文件名的Header.h
  2. didFinishLaunchingWithOptions 添加来自google的代码,不要忘记替换Google页面中的跟踪id GAI.sharedInstance() gai.tracker(withTrackingId:"YOUR_TRACKING_ID") //可选:自动报告未配置的异常。gai.trackUncaughtExceptions = true //可选:将Logger设置为详细以获取调试信息。//在应用程序发布之前删除。gai.logger.logLevel = .verbose;

塔达..。运行你的项目..。

票数 15
EN

Stack Overflow用户

发布于 2016-07-01 08:21:04

当我使用单例GAI.sharedInstance()时,我的错误是使用未解析的标识符。

我把这一点付诸实施的步骤是:

  1. 添加pod 'Google/Analytics'
  2. 吊舱安装
  3. 重新启动xcode
  4. 在我的项目中创建一个objc类以获得一个桥接头。
  5. #import "GAI.h"添加到桥接头文件中

一切都很完美。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37241346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档