添加到AppDelegate时找不到Google/Analytic.h文件



我正在尝试使用Cocoapods将Google Analytics集成到我的ios项目中。然而,在将配置文件添加到我的项目之前的步骤中,当在AppDelegate中导入Google/Analytic.h时,我收到了找不到文件的错误。尝试了以下内容:

  1. 在生成设置中将$(SRCROOT)/Pods/GoogleAnalytics添加到用户头搜索路径。

  2. 添加了libGoogleAnalyticsServices.a以在构建阶段将二进制文件与库链接起来。

  3. 在其他链接器标志中添加了-lGoogleAnalyticsServices

不要真的想做2和3,因为它们使它不含可可豆。

我到底错过了什么?

Swift 3

版本3.17.0(使用Podfile中的pod"GoogleAnalytics"安装):

  1. 打开你的project.xcworkspace而不是你的project.xscodeproj
  2. 在桥接头文件中使用#import <GoogleAnalytics/GAI.h>

编辑:根据jeremy piednoel的评论,您可能还需要

#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>

问题

  1. 官方文档中的代码示例表明安装1.0.0。它甚至没有为臂64
  2. 似乎至少有三个独立的吊舱与GA.谷歌分析iOS SDK,谷歌分析,谷歌/分析

解决方案

将其添加到您的播客文件中:pod 'Google/Analytics',然后添加到pod install

这应该行得通。现在你可以简单地导入Google/Analytic.h,如文档中所建议的:

#import <Google/Analytics.h>

进一步讨论

我遇到了两组问题:

  1. 使用不正确的建议pod版本(1.0.0)时,存在64位兼容性问题。(ld: symbol(s) not found for architecture arm64)

  2. 在使用其他pod(GoogleAnalytics iOS SDK和GoogleAnalytics)时,我抱怨缺少<Google/Analytics.h>头文件。("Google/Analytics.h" not found)

我在邮件列表上发现了这位先生的帖子,其中建议使用没有版本号的Google/Analytics pod。(如上所述的pod 'Google/Analytics'。)

这是cocoapods中的一个错误。

您需要将$(SRCROOT)/Pods/Google和$(SRCRO OT)/Podes/GoogleAnalytics添加到您的用户标题搜索路径中,并带有递归选项。

然后包括#import"Analytics.h"而不是#import

在"构建设置"中将$(SRCROOT)/Pods/GoogleAnalytics添加到"用户头搜索路径"时,还可以选择recursive选项。它将允许您的项目在GoogleAnalytics及其所有子目录中进行搜索。

更新时间:我试过这个教程,它没有任何额外的步骤,效果很好。我的pod版本是0.35.0。创建配置文件时,请记住启用GoogleAnalytics服务。

更新时间:正如@RajtTalwar所指出的,您还需要添加带有递归选项的$(SRCROOT)/Pods/Google。然后包括#import"Analytics.h"而不是#import

如果其他人在尝试#import<Google/Analytics.h>,以及其他在线解决方案对您没有帮助,您应该继续阅读。

我遇到了这个问题,我找到的任何解决方案都无法解决。然后我注意到我的一个目标有效,而另一个没有(我在同一个项目中有两个),我试图找出这两个目标之间的区别。

我注意到,在部署信息下的"常规"选项卡上的项目存在差异,第二个目标(有效的目标)有单独的iPhone和iPad选项,但第一个没有。网上还有人说,当他们复制目标时,他们收到了这两个新选项。我的第二个目标最初也是第一个目标的重复。

长话短说,我发现如果我复制了我的目标,那么复制现在突然奏效了。那些独立的iPhone和iPad选项也神奇地出现了。所以我想我的项目目标是非标准的,并造成了一个问题,可能是因为这个项目是很久以前创建的。

然后,我删除了原始目标,并将新目标重命名为相同的名称,尽管在与plist文件相关的构建设置中需要一些清理工作(它制作了一个copy.plist文件)。

希望这能帮助到别人。

检查您是否有多个目标,在这种情况下,在您的pod文件中为每个目标添加pod"Google/Analytics":

def google_pods
pod 'Google/Analytics'
end
target 'target 1' do
google_pods
end
target 'target 2' do
google_pods
end
target 'target N' do
google_pods
end

还有我的0.02美元,因为这似乎是一个永无止境的故事。上面的建议都无济于事。我从pod install收到了这个模糊的消息

[!] The `blabla [Release]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-blabla/Pods-blabla.release.xcconfig'. This can lead to problems with the CocoaPods installation

最后,我检查了我的project.pxbproj,发现我有这个条目:

HEADER_SEARCH_PATHS = "";`

显然,这被视为"已定义",所以我将其更改为

HEADER_SEARCH_PATHS = "$(inherited)";

和繁荣-所有谷歌建议包括工作

#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
  1. 运行pod update
  2. 清除生成文件
  3. 运行项目

从构建设置中删除有效的arch

最新更新