【问题标题】:Google/Analytics.h file not found when adding to AppDelegate添加到 AppDelegate 时找不到 Google/Analytics.h 文件
【发布时间】:2015-07-15 09:52:26
【问题描述】:

我正在尝试使用 Cocoapods 将 Google Analytics 集成到我的 ios 项目中。但是,在按照this 将配置文件添加到我的项目之前的步骤之后,在 AppDelegate 中导入 Google/Analytics.h 时,我收到找不到文件的错误。尝试了以下事情:

  1. 在构建设置的用户标题搜索路径中添加了$(SRCROOT)/Pods/GoogleAnalytics

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

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

真的不想做 2 和 3,因为它们使它从 Cocoapods 中解放出来。

我到底错过了什么?

【问题讨论】:

  • 我想你错过了分析的 .plist 文件
  • 我确实将它拖放到项目中支持的文件中。我正在重新安装项目的 pod 文件。让我回去。
  • 记得打开 *.xcworkspace 而不是 *.xcodeproj
  • 只做了@sahara108
  • 安装 pod 需要很多时间吗?大约多少 MB?

标签: ios objective-c google-analytics cocoapods


【解决方案1】:

斯威夫特 3

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

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

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

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

【讨论】:

  • 为我节省了几个小时。谢谢。
  • 也为我节省了大量时间。
  • 非常感谢!我已经花了几个小时试图找出导入语句失败的原因,但这节省了更多令人头疼的调查。
  • 谷歌文档有多糟糕……我个人不得不添加更多内容#import #import #import
  • 非常感谢 Paul 和 @jeremy-piednoel。我确认我们需要导入其中的 3 行。
【解决方案2】:

问题

  1. the official documentation 上的代码示例建议 安装 1.0.0。甚至没有编译二进制文件 手臂64。
  2. 似乎至少有三个独立的 pod 与 GA。 GoogleAnalytics-iOS-SDK、GoogleAnalytics、Google/Analytics。

解决方案

将此添加到您的 Podfile:pod 'Google/Analytics',然后是 pod install

应该可以。现在您可以按照文档中的建议简单地导入 Google/Analytics.h:

#import &lt;Google/Analytics.h&gt;

进一步讨论

我遇到了两组问题:

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

  2. 在使用其他 pod(GoogleAnalytics-iOS-SDK 和 GoogleAnalytics)时,我抱怨缺少 &lt;Google/Analytics.h&gt; 头文件。 ("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
    • 这个解决方案适用于我(Cocoapods 0.39.0),使用#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
    • @RajatTalwar 谢谢!这对我有帮助。我在 Cocoapods 1.1.1 上。
    【解决方案5】:

    如果其他人在尝试 #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】:
          1. 运行pod update
          2. 清理构建文件
          3. 运行项目

          【讨论】:

            【解决方案9】:

            从构建设置中删除有效的拱门

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-06-24
              • 2019-07-21
              相关资源
              最近更新 更多