我按照此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
我也收到错误,这让我相信我没有添加文件到项目正确。
以下是我在添加文件时检查的内容的屏幕截图:
所以我确保它已添加到所有目标,并且该文件位于项目的根目录中,与xcodeproj
和xcworkspace
文件一起,根据Google上的说明开发者指南。
我还应该提到这是一个SpriteBuilder项目,但我认为这与此无关。这也是我添加的第一个Cocoa Pod,但是随着项目的构建,它可以找到所需的所有Google标题,这一切似乎都很好。
答案 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文件中缺少的以下键。