在iOS应用程序中配置Google分析错误,原因是无法正确配置GoogleService-Info.plist文件。

5
我按照这个Google开发者指南使用Cocoa Pods将Google Analytics添加到iOS应用程序中。我添加了GoogleService-Info.plist并将初始化代码放在didFinishLaunchingWithOptions中。应用程序构建正常,但在尝试初始化GA时崩溃。具体来说,是以下代码行:
NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

断言语句失败了,控制台输出如下:
*** 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头文件。

如果您只是在分析中使用GoogleService-Info.plist,则无需在应用程序中使用它,否则不需要。请先说明在您的应用程序中使用GoogleService-Info.plist的目的。 - Anbu.Karthik
抱歉,我不明白你在说什么。Google Analytics库期望该文件在项目中存在。当调用[[GGLContext sharedInstance] configureWithError:&configureError];时,它会查找该文件。我遵循的指南为我创建了这个文件,并明确指示我将其添加到项目中。这是一个包含GA帐户的TRACKING_ID的属性文件。 - Choc13
尝试使用此链接,可能会对您有所帮助。 - Anbu.Karthik
是的,我已经尝试过那个链接了,但他没有使用Cocoa Pods方法来添加Google Analytics库。因此,我不认为它被配置成相同的方式。 - Choc13
你是否使用CocoaPods进行分析? - Anbu.Karthik
请查看此答案:https://dev59.com/Al0Z5IYBdhLWcg3wlBJU,以获取解决此问题的各种解决方案,例如检查构建阶段... - class
2个回答

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

它有效!


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接