【问题标题】:Google Analytics with Swift 3 iOS 9谷歌分析与 Swift 3 iOS 9
【发布时间】:2017-06-06 12:15:53
【问题描述】:

我试图找到有关如何在 Swift 3 中使用 Google Analytics 的信息,即使看起来有些人成功了,我自己也无法使其工作。

Google Analytics 文档没有帮助,它仅适用于 Swift 2。

我在 3.17.0 版本中使用了 pod“Google/Analytics”,并尝试将这一行添加到桥接头文件中,正如一些人提到的:

#import <Google/Analytics.h>

但是我收到一个错误,关于 Xcode 抱怨桥接头不适用于 Swift 3。

然后我尝试按照另一篇文章的建议在 .h 中添加相同的行,但也不起作用,Xcode 抱怨“在框架模块 XXX 中包含非模块化标头”。

我尝试将“允许框架模块中的非模块化包含”设置为“是”,但它没有改变任何东西,仍然出现同样的错误。

我尝试的最后一件事是添加:

import Google

在我使用 Google Analytics 的文件中,但现在 GAI 无法识别。

// 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

有什么建议吗?

【问题讨论】:

  • imo,您已经完成了尽职调查,框架有些问题。考虑向谷歌提交错误?

标签: ios xcode google-analytics swift3 ios9


【解决方案1】:

按照这些步骤来配置 Google Analytics

  1. 在 Google Analytics 上创建一个项目并下载配置文件 “GoogleService-Info.plist”
  2. 使用 pod 将 Google Analytics 安装到您的项目中(确保知道错误显示在终端中)
  3. 清除并关闭您的项目,然后导航到您的项目文件夹并打开“XXX.xcworkspace”而不是“XXX.xcodeproj”。
  4. 然后将“GoogleService-Info.plist”添加到您的项目中(如果需要,请选中复制选项)。
  5. 在您的项目中创建一个桥接文件,如果已经存在则无需重新创建它。

    5.1。要创建一个桥接文件,最简单的方法是向项目添加/创建新的objective-c 类,然后弹出选项要求您创建一个桥接文件,它默认设置所有设置。

  6. 打开通常命名为“YourProjectName-Bridging-Header.h”的桥接文件并将其复制到其中" #import &lt;Google/Analytics.h&gt; "
  7. 打开“AppDelegate.swift”并将以下代码复制并粘贴到 didFinishLaunchingWithOptions 中以设置 Analytics 跟踪器

    // 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
    
  8. 构建您的项目。

如果有任何问题,我希望它可以工作,然后告诉我。

【讨论】:

  • 我发现了为什么它以前不起作用,我试图在框架中使用它而不是“最终”目标,所以我必须在最终产品中实现 GAI 并将一个类扩展为在框架内使用它(这是我的应用程序的共享部分)。谢谢!
  • 有没有办法在没有桥接头的情况下使用它,而是直接在 swift 类中使用模块导入?
  • 为什么谷歌不能正常支持自己的产品?官方说明只会误导所有必须继续使用 Google Analytics 的人。
  • developers.google.com/analytics/devguides/collection/ios/v3/… 它从来没有提到我们需要这个 plist 文件。但是,实际上,我们需要它。
【解决方案2】:

我遇到了同样的问题。由于 Xcode 生成错误,我无法导入“Google/Analytics.h”标头。因为“Google/Analytics.h”标头在 Google 官方页面中提到的“GoogleAnalytics sdk”中不可用。 所以,我只是在 AppDelegete.m 文件中使用了以下行

#import "AppDelegate.h"
#import "GAI.h"

希望它能正常工作。环境 Xcode:8.2 iOS:10.2

【讨论】:

  • 看起来您使用的是 Obj-C,所以我认为我面临的问题与使用 Swift 3 不同。有时导入 Obj-C 库可能会很痛苦。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多