【问题标题】:Can't find headers for GoogleAnalytics-iOS-SDK with Cocoapods 0.37, Swift, frameworks找不到带有 Cocoapods 0.37、Swift、框架的 GoogleAnalytics-iOS-SDK 的标头
【发布时间】:2015-07-13 06:35:56
【问题描述】:

在 Swift 项目中使用 cocoa pods 0.37.0 和 use_frameworks!在 podfile 中设置,我无法访问 GoogleAnalytics-iOS-SDK pod 的头文件。

我应该如何在我的应用中访问 Google Analytics 窗格的标题?

我试过了;

import GoogleAnalytics_iOS_SDK

在 Swift 文件中,cocoapods 0.36 样式。但是现在没有创建框架,所以不好。

#import <GoogleAnalytics_iOS_SDK/GAI.h>

在桥接头中,但不起作用(没有模块映射?)


我已经读到,在 cocoapods 0.37 (see this commit) 中,仅在其“sourse_files”中包含标头的 pod 的行为发生了变化。这似乎是为了应对 use_frameworks 在 0.36 (see this SO question) 中对这些 pod 造成的问题。

随着 Cocoapod 行为的这种变化,静态库被正确集成(它不是在 0.36 中),符号被编译到应用程序中并在运行时可用。但我无权访问标题。

【问题讨论】:

  • 你让它工作了吗?我在#import --> 找不到文件 处遇到错误
  • @techsavvy 请阅读接受的答案,它解释了一种解决方法。

标签: ios swift google-analytics cocoapods


【解决方案1】:

我不知道这是否是正确的答案,但我们让它工作的方式是手动导入 libGoogleAnalyticsServices.a 而不是通过 cocoapods。

找到libGoogleAnalyticsServices.a 并将其拖到项目中,然后将其添加到Linked Frameworks and Libraries(如果它还没有的话),你就可以开始了。不要忘记将其从您的 Podfile 中删除。

编辑:
不要忘记将头文件添加到您的 bridging-header

【讨论】:

  • 谢谢,这是我的应急计划。我想让它与 Cocoapods 一起工作,所以我将把这个问题留待更长时间。
【解决方案2】:

这是 Cocoapods 0.37.0 中的一个错误。它已作为issue #3499 登录到他们的跟踪器中。

解决方法

  • $(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK 添加到应用目标的Build Settings 中的User Header Search Paths(设置为递归)。
  • 直接在桥接头中使用 #import "GAI.h" 引用 Google Analytics 标头

【讨论】:

  • 我很不高兴为此添加一个桥接头,但似乎这是目前唯一有效的选项。
  • 谢谢,这为我节省了很多时间!
  • 这个问题可能仍然存在于我目前正在使用的 CocoaPods 0.39.0 中。我添加了用户标题搜索路径并且它可以工作,但我似乎无法让 GGLContext 为错误工作。无论如何,非常感谢,帮我省了很多头发,因为我正要沮丧地撕掉它。
  • 真是一团糟。现在,Fabric 的答案似乎是更好的选择。
  • Google 分析 pod 也会导致 lldb 中断。删除后,对象可以像往常一样被检查和调试。
【解决方案3】:

另一个技巧是向桥接头添加长的相对路径。

这避免了对项目设置进行更改,下次运行“pod install”时可能会覆盖这些设置:

#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h"

在运行单元测试时它也可以工作,而我尝试过的另一个解决方案却没有。

【讨论】:

    【解决方案4】:

    我在 CocoaPods 0.39.0 上遇到了类似的问题。

    $(inherited) in build setting 'OTHER_LDFLAGS' 解决了这个问题。

    https://stackoverflow.com/a/32004207/3129306

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 2017-08-27
      • 2019-03-13
      相关资源
      最近更新 更多