添加到 AppDelegate 时找不到 Google/Analytics.h 文件
Posted
技术标签:
【中文标题】添加到 AppDelegate 时找不到 Google/Analytics.h 文件【英文标题】:Google/Analytics.h file not found when adding to AppDelegate 【发布时间】:2015-07-15 09:52:26 【问题描述】:我正在尝试使用 Cocoapods 将 Google Analytics 集成到我的 ios 项目中。但是,在按照this 将配置文件添加到我的项目之前的步骤之后,在 AppDelegate 中导入 Google/Analytics.h 时,我收到找不到文件的错误。尝试了以下事情:
在构建设置的用户标题搜索路径中添加了$(SRCROOT)/Pods/GoogleAnalytics
。
添加了libGoogleAnalyticsServices.a
以在构建阶段将二进制文件与库链接。
在其他链接器标志中添加了-lGoogleAnalyticsServices
。
真的不想做 2 和 3,因为它们使它从 Cocoapods 中解放出来。
我到底错过了什么?
【问题讨论】:
我想你错过了分析的 .plist 文件 我确实将它拖放到项目中支持的文件中。我正在重新安装项目的 pod 文件。让我回去。 记得打开 *.xcworkspace 而不是 *.xcodeproj 只做了@sahara108 安装 pod 需要很多时间吗?大约多少 MB? 【参考方案1】:斯威夫特 3
使用 3.17.0 版(使用 Podfile 中的 pod 'GoogleAnalytics' 安装):
-
打开 yourproject.xcworkspace 而不是 yourproject.xcodeproj
在桥接头文件中使用
#import <GoogleAnalytics/GAI.h>
编辑: 根据 jeremy piednoel 的评论,您可能还需要
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
【讨论】:
为我节省了几个小时。谢谢。 也为我节省了大量时间。 非常感谢!我已经花了几个小时试图找出导入语句失败的原因,但这节省了更多令人头疼的调查。 谷歌文档有多糟糕……我个人不得不添加更多内容#import问题
-
the official documentation 上的代码示例建议
安装 1.0.0。甚至没有编译二进制文件
手臂64。
似乎至少有三个独立的 pod 与
GA。 GoogleAnalytics-iOS-SDK、GoogleAnalytics、Google/Analytics。
解决方案
将此添加到您的 Podfile:pod 'Google/Analytics'
,然后是 pod install
。
应该可以。现在您可以按照文档中的建议简单地导入 Google/Analytics.h:
#import <Google/Analytics.h>
进一步讨论
我遇到了两组问题:
使用不正确的建议 pod 版本 (1.0.0) 时,出现 64 位兼容性问题。 (ld: symbol(s) not found for architecture arm64
)
在使用其他 pod(GoogleAnalytics-iOS-SDK 和 GoogleAnalytics)时,我抱怨缺少 <Google/Analytics.h>
头文件。 ("Google/Analytics.h" not found
)
我发现这位先生的帖子on a mailing list 建议使用没有版本号的 Google/Analytics pod。 (pod 'Google/Analytics'
如上所述。)
【讨论】:
【参考方案3】:这是 cocoapods 中的一个错误。
您需要将带有递归选项的 $(SRCROOT)/Pods/Google 和 $(SRCROOT)/Pods/GoogleAnalytics 添加到您的用户标头搜索路径中。
然后包含#import "Analytics.h" 而不是#import
【讨论】:
如果使用此设置,请使用#import#import "Analytics.h"
Xcode 7.1 (7B91b)
只有在我为此路径设置recursive
后才分叉
它实际上与 xCode 9 和 #import "Analytics.h" 一起在用户标题搜索路径中使用此设置【参考方案4】:
在构建设置中将$(SRCROOT)/Pods/GoogleAnalytics
添加到用户标题搜索路径时,还要选择recursive
选项。它将允许您的项目在 GoogleAnalytics
及其所有子目录中进行搜索。
更新: 我已经尝试了该教程,并且无需任何额外步骤即可正常工作。我的 pod 版本是 0.35.0。创建配置文件时,记得启用 GoogleAnalytics 服务。
更新: 正如@RajatTalwar 指出的那样,您还需要使用递归选项添加 $(SRCROOT)/Pods/Google 。然后包括 #import "Analytics.h" 而不是 #import
【讨论】:
那个...虽然这对 cocoapods 安装分析没有帮助... 您还需要使用递归选项添加 $(SRCROOT)/Pods/Google。然后包括 #import "Analytics.h" 而不是 #import如果其他人在尝试 #import
我遇到了这个问题,我找到的解决方案都无法解决。然后我注意到我的一个目标有效而另一个无效(我在同一个项目中有两个),我试图找出这两个目标之间的区别。
我注意到部署信息下的常规选项卡上的项目有所不同,其中第二个目标(有效的目标)具有单独的 iPhone 和 iPad 选项,但第一个没有。网上还有人说他们复制目标时收到了这两个新选项。我的第二个目标最初也是第一个目标的副本。
长话短说,我发现如果我复制我的目标,那么复制现在突然起作用了。那些单独的 iPhone 和 iPad 选项也神奇地出现了。所以我猜我的项目目标是非标准的并且导致了问题,可能是因为这个项目是很久以前创建的。
然后我只是删除了原始目标并将新目标重命名为相同的名称,尽管在与 plist 文件相关的构建设置中需要进行一些清理工作(它创建了一个 copy.plist 文件)。
希望这对某人有所帮助。
【讨论】:
【参考方案6】:检查您是否有多个目标,在这种情况下,在您的 pod 文件中添加 pod 'Google/Analytics' foreach 目标:
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
【讨论】:
【参考方案7】:这也是我的 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)";
并且繁荣 - Google 建议的所有内容都包括工作
#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
【讨论】:
【参考方案8】:-
运行
pod update
清理构建文件
运行项目
【讨论】:
【参考方案9】:从构建设置中删除有效的拱门
【讨论】:
以上是关于添加到 AppDelegate 时找不到 Google/Analytics.h 文件的主要内容,如果未能解决你的问题,请参考以下文章
出现 404 - 尝试通过 SPWeb 将超过 20MB 的文件添加到 SharePoint 时找不到
作为 sbt 依赖项添加时找不到 jboss 拦截器 api 1.1
错误 [IRForTarget]:在向 MKMapView 添加叠加层时找不到 Objective-C 间接 ivar 符号
部署到 AWS lambda 时找不到模块 ./dist/server