-[GAITrackerImpl setAllowIDFACollection:]:无法识别的选择器发送到实例

4

崩溃

为了跟踪我们的应用程序中的人口统计信息,我添加了Google推荐的allowIDFACollection = YES行。但是,一旦我在没有调试的情况下运行它,我就会在下面的第二行上遇到未识别的选择器崩溃:

gGoogleTracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-99999999-9"];
gGoogleTracker.allowIDFACollection = YES;

程序崩溃原因: -[GAITrackerImpl setAllowIDFACollection:]: unrecognized selector sent to instance 0x170286d10

安装设置

就我所知,GAI已经正确地集成了,但既然会崩溃,那么我肯定遗漏了什么!以下是我能想到的所有相关细节:

该项目包括AdSupport.framework和两个Google Analytics二进制文件:

AdSupport.framework Google Analytics Folder

Google Analytics文件存储在Activehours/frameworks中:

Library Search Paths

两个库libAdIdAccess.alibGoogleAnalyticsServices.a以及AdSupport框架(未显示)都链接到了二进制文件中:

Link Binary With Libraries

其他链接器标记如下,包括-ObjC

Other Linker Flags

你有什么想法?我做错了哪些部分?


你最终解决了这里的问题吗?我也遇到了同样的问题。 - JeffN
不,这对我们的项目并不是关键的,所以我只是暂时将其注释掉,以便尽快完成构建。 :( - clozach
我认为我找到了一个解决方案 [[[GAI sharedInstance] defaultTracker] setAllowIDFACollection:YES]; - JeffN
谢谢,@JeffN。很遗憾,这仍然给了我“未识别的选择器发送到实例”的错误。此外,如果我们在默认跟踪器上设置IDFA集合,而对于其他所有内容都使用具有自定义跟踪ID的跟踪器,我不清楚会产生什么影响。不过,很高兴它在你那里运行良好! - clozach
2个回答

0

解决这个问题有两种方法。你可以写

[[GAI sharedInstance].defaultTracker setAllowIDFACollection:YES];

或者

id <GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
tracker.allowIDFACollection = YES;

我已经不再参与该项目的工作,但如果您阅读评论,这个解决方案仍然会导致崩溃。 - clozach
这段代码与其他代码有些不同,我在两天前实现了它,并且它运行良好。将来如果你要实现它,请尝试使用这个完全相同的代码,或者你可以通过编写演示代码来检查它,这取决于你。 - Rahul Patel
哦,是的,不好意思。我本来想写的是,“仍然导致了我们项目的崩溃。”目前看来,这个问题可能只是多余的噪音了,因为我已经不在相关公司工作了。不管怎样,感谢您的反馈! :) - clozach

0

我找到了问题所在。

GAI *gGoogleTracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-99999999-9"];

你不应该在一行中调用它。请用下面两行替换那一行:

GAI *gGoogleTracker = [GAI sharedInstance]; [gGoogleTracker trackerWithTrackingId:@"UA-99999999-9"];

这是指南中描述的方式,它将正常工作。


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