【问题标题】:Integrating google analytics into iOS app将谷歌分析集成到 iOS 应用程序中
【发布时间】:2016-03-28 20:34:08
【问题描述】:

我正在按照此处的说明将谷歌分析集成到我的应用中:https://developers.google.com/analytics/devguides/collection/ios/v3/?ver=swift#get-config

我需要为我的应用初始化分析。我在我的 AppDelegate.swift 文件中添加了这段代码:

import UIKit
import <Google/Analytics.h>

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:[NSObject: AnyObject]?) -> Bool {
        **// Configure tracker from GoogleService-Info.plist.
        NSError *configureError;
        [[GGLContext sharedInstance] configureWithError:&configureError];
        NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

        // Optional: configure GAI options.
        GAI *gai = [GAI sharedInstance];
        gai.trackUncaughtExceptions = YES;  // report uncaught exceptions
        gai.logger.logLevel = kGAILogLevelVerbose;  // remove before app release**

    }

我收到以下错误消息。

  1. 对于我的import &lt;Google/Analytics.h&gt; 行,我收到以下消息:'一行上的连续语句必须用';'分隔。

  2. 对于其余的代码,我遇到了几个错误,尽管我只是将教程中的代码复制到我的文件中。看我的截图。

enter image description here

【问题讨论】:

  • 你不能把objective-c代码放到你的swift文件中

标签: ios swift google-analytics


【解决方案1】:

您在 Swift 项目中遇到此问题。您需要创建一个 Objective-C 桥接头,并在其中添加 import 语句。之后,一切都应该正常工作。查看此 SO 答案以了解更多详细信息:

https://stackoverflow.com/a/24005242/1784384

【讨论】:

  • 感谢您的回复。我创建了 Objective-C 文件作为 Header 并将 import 添加到 m 文件中。现在我在 Objective-CBridgingHeader.m 文件上收到一条错误消息,上面写着:'Expected identify or '('。此外,我仍然在我的 AppDelegate.swift 文件中看到与我粘贴的代码相同的错误在之前。
  • 桥接头文件应该是.h文件;确保你把它放在那里。另外:您的代码在 AppDelegate 中失败,因为您在其中粘贴了 Objective-C 代码。在您在 Google 网站上的链接中,有一个框可让您将其更改为 Swift 示例代码。这样做,你应该是金子!
  • 好的,所以我将这行代码“导入 ”移动到我的 .h 文件中。我还更新了 AppDelegate 文件中的代码。最初我在教程中选择了 Swift 单选按钮,但我猜它切换了,或者我在没有注意到的情况下重新打开了一个新页面。无论如何,情况正在好转。我没有看到错误消息。
  • 我的意思是我将导入代码添加到我的 Bridging-Header.h 文件中。我是否必须按照您发送给我的 stackoverflow 响应 (stackoverflow.com/a/24005242/1784384) 中的指示创建第二个 .h 文件?
  • 我很难想象你在问什么。但是您应该能够删除您创建的 .m 和 .h 文件,并保留桥接头。添加 Obj-C 代码时会自动创建桥接头,但在使用 Cocoapods 时不会检测到它。这就是为什么你必须经历这个奇怪的过程。
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多