使用GoogleService-Info.plist

时间:2015-07-10 06:22:52

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

我按照此Google developer guide将Google分析添加到使用Cocoa Pods的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我也收到错误,这让我相信我没有添加文件到项目正确。

以下是我在添加文件时检查的内容的屏幕截图:

enter image description here

所以我确保它已添加到所有目标,并且该文件位于项目的根目录中,与xcodeprojxcworkspace文件一起,根据Google上的说明开发者指南。

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

2 个答案:

答案 0 :(得分:6)

我也被这段奇怪的代码困住了。但你不需要它!只需删除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'

有效!

答案 1 :(得分:0)

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