使用 Cocoapods 0.37、Swift、框架无法为 GoogleAnalytics-iOS-SDK 找到 headers
Can't find headers for GoogleAnalytics-iOS-SDK with Cocoapods 0.37, Swift, frameworks
在 Swift 项目中使用 cocoa pods 0.37.0,使用 use_frameworks!在 podfile 中设置,我无法访问 GoogleAnalytics-iOS-SDK pod 的 header 文件。
我应该如何在我的应用程序中访问 Google 分析窗格的 header?
我试过了;
import GoogleAnalytics_iOS_SDK
在 Swift 文件中,cocoapods 0.36 样式。但是没有创建框架所以不好。
#import <GoogleAnalytics_iOS_SDK/GAI.h>
在桥接中 header,但不起作用(没有模块映射?)
我读到 pods 的行为在 'sourse_files' 中仅包含 header 已在 cocoapods 0.37 [=15= 中更改].
随着 Cocoapod 行为的这一变化,静态库被正确集成(它不是 0.36),符号被编译到应用程序中并在运行时可用。但我无权访问 headers。
我不知道这是否是正确答案,但我们让它工作的方法是手动导入 libGoogleAnalyticsServices.a
而不是通过 cocoapods。
找到 libGoogleAnalyticsServices.a
并将其拖到项目中,然后将其添加到 Linked Frameworks and Libraries
(如果还没有),就可以了。不要忘记将其从您的 Podfile
.
中删除
编辑:
不要忘记将头文件添加到桥接头
这是 Cocoapods 0.37.0 中的错误。它已在他们的跟踪器中记录为 issue #3499.
解决方法
- 将
$(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK
添加到应用程序目标 Build Settings
中的 User Header Search Paths
(设置为递归)。
- 直接在桥接 Header 与
#import "GAI.h"
中引用 Google 分析 header
另一个技巧是将较长的相对路径添加到桥接 header。
这避免了必须更改项目设置,这些设置可能会在您下次 运行 `pod install' 时被覆盖:
#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h"
它也适用于 运行你的单元测试,我试过的另一个解决方案没有。
我在 CocoaPods 0.39.0 上遇到了类似的问题。
构建设置中的$(inherited) 'OTHER_LDFLAGS' 解决了它。
在 Swift 项目中使用 cocoa pods 0.37.0,使用 use_frameworks!在 podfile 中设置,我无法访问 GoogleAnalytics-iOS-SDK pod 的 header 文件。
我应该如何在我的应用程序中访问 Google 分析窗格的 header?
我试过了;
import GoogleAnalytics_iOS_SDK
在 Swift 文件中,cocoapods 0.36 样式。但是没有创建框架所以不好。
#import <GoogleAnalytics_iOS_SDK/GAI.h>
在桥接中 header,但不起作用(没有模块映射?)
我读到 pods 的行为在 'sourse_files' 中仅包含 header 已在 cocoapods 0.37 [=15= 中更改].
随着 Cocoapod 行为的这一变化,静态库被正确集成(它不是 0.36),符号被编译到应用程序中并在运行时可用。但我无权访问 headers。
我不知道这是否是正确答案,但我们让它工作的方法是手动导入 libGoogleAnalyticsServices.a
而不是通过 cocoapods。
找到 libGoogleAnalyticsServices.a
并将其拖到项目中,然后将其添加到 Linked Frameworks and Libraries
(如果还没有),就可以了。不要忘记将其从您的 Podfile
.
编辑:
不要忘记将头文件添加到桥接头
这是 Cocoapods 0.37.0 中的错误。它已在他们的跟踪器中记录为 issue #3499.
解决方法
- 将
$(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK
添加到应用程序目标Build Settings
中的User Header Search Paths
(设置为递归)。 - 直接在桥接 Header 与
#import "GAI.h"
中引用 Google 分析 header
另一个技巧是将较长的相对路径添加到桥接 header。
这避免了必须更改项目设置,这些设置可能会在您下次 运行 `pod install' 时被覆盖:
#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h"
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h"
它也适用于 运行你的单元测试,我试过的另一个解决方案没有。
我在 CocoaPods 0.39.0 上遇到了类似的问题。
构建设置中的$(inherited) 'OTHER_LDFLAGS' 解决了它。