【问题标题】:Error configuring Google analytics for iOS app with GoogleService-Info.plist使用 GoogleService-Info.plist 为 iOS 应用配置 Google 分析时出错
【发布时间】:2015-09-28 19:02:11
【问题描述】:

我按照Google developer guide 使用 Cocoa Pods 将 Google 分析添加到 iOS 应用程序。我添加了GoogleService-Info.plist,并将初始化代码放入didFinishLaunchingWithOptions。该应用程序构建良好,但随后在尝试初始化 GA 时崩溃。具体是这几行代码:

NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

assert 语句失败,控制台输出为:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'Error configuring Google services: 
Error Domain=com.google.greenhouse Code=-200 "Unable to configure GGL."
{NSLocalizedFailureReason=Unable to parse supplied GoogleService-Info.plist. See log for details., 
NSLocalizedRecoverySuggestion=Check formatting and location of GoogleService-Info.plist., 
NSLocalizedDescription=Unable to configure GGL.}'

我可以看到这是由于 GoogleService-Info.plist 文件造成的,经过一番调查,我发现即使删除 GoogleService-Info.plist 也会出现错误,这让我相信我没有正确地将文件添加到项目中.

这是我添加文件时检查的屏幕截图:

因此,我已确保将其添加到所有目标中,并且该文件位于项目的根目录中,与 xcodeprojxcworkspace 文件一起,按照 Google 开发人员指南中的说明进行操作。

我还应该提到这是一个 SpriteBuilder 项目,但我认为这与此无关。这也是我添加的第一个 Cocoa Pod,但随着项目的构建,一切似乎都很好,并且可以找到它需要的所有 Google 标头。

【问题讨论】:

  • 最初告诉你在你的应用中使用 GoogleService-Info.plist 的目的是什么不需要这个,如果你只在分析中使用你就不需要这个
  • 对不起,我不明白你在说什么。 Google Analytics 库希望此文件包含在项目中。它会在调用 [[GGLContext sharedInstance] configureWithError:&configureError]; 时查找它。我遵循的指南创建了这个文件供我下载,并明确指示我将其添加到项目中。这是一个属性文件,其中包含 GA 帐户的 TRACKING_ID
  • 试试这个link可能对你有帮助
  • 是的,我已经尝试过该链接,但他没有使用 Cocoa Pods 方法添加 Google Analytics 库。所以我不相信它的配置方式是一样的。
  • 您是否使用可可豆荚进行分析

标签: ios objective-c xcode google-analytics spritebuilder


【解决方案1】:

如果您已经集成了 google signIn,它会提供用于访问您应用的登录服务详细信息的 plist。这意味着当您尝试集成分析时,您不需要添加新的 GoogleService-Info.plist。您只需添加现有 plist 文件中缺少的以下键。

【讨论】:

    【解决方案2】:

    我也被这段奇怪的代码卡住了。但你不需要它!只需删除 configureWithError 和所有这些东西。

    你只需要:

    [[GAI sharedInstance] trackerWithTrackingId:@"UA-11111111-2"];
    [GAI sharedInstance].trackUncaughtExceptions = YES;
    

    didFinishLaunchingWithOptions 里面的某个地方。 (它来自以前的 GA 版本,对吗?)所以,就是这样!然后,在你的应用中做任何你想做的事情:

    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
    [tracker set:kGAIScreenName value:@"start screen"];
    [tracker send:[[GAIDictionaryBuilder createScreenView] build]];
    

    我的 Podfile 看起来像这样:

    source 'https://github.com/CocoaPods/Specs.git'
    
    pod 'Google/Analytics', '~> 1.0.0'
    

    有效!

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2017-07-27
      • 1970-01-01
      • 2021-01-22
      • 2016-11-27
      • 2018-09-08
      • 2015-11-28
      • 2019-12-07
      • 2017-03-24
      相关资源
      最近更新 更多