任何人都知道如何使用CocoaPods 0.36编写Swift的桥接头?
我试过这些方法。
(1)
#import <GoogleAnalytics-iOS-SDK/GAI.h>
=&GT;这是cocoapods 0.35风格。无法编译。
(2)
#import <GoogleAnalytics-iOS-SDK/GoogleAnalytics-iOS-SDK/GAI.h>
=&GT;无法编译。
(3)
#import "../Pods/GoogleAnalytics-iOS-SDK/GoogleAnalytics/Library/GAI.h"
=&GT;它可以被遵守。但链接失败。
答案 0 :(得分:15)
我设法通过Cocoapods成功将Google Analytics iOS SDK 3.10包含在我的Swift项目中,并按照这些步骤使用框架。
在Podfile上添加(注意use_frameworks!
):
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target "XXXX" do
pod 'GoogleAnalytics-iOS-SDK', '~> 3.10'
end
target "XXXXTests" do
pod 'GoogleAnalytics-iOS-SDK', '~> 3.10'
end
在AppDelegate
导入部分添加:
import GoogleAnalytics_iOS_SDK
在application didFinishLaunchingWithOptions
方法上添加:
GAI.sharedInstance().trackUncaughtExceptions = true
GAI.sharedInstance().dispatchInterval = 20
GAI.sharedInstance().logger.logLevel = GAILogLevel.Verbose
GAI.sharedInstance().trackerWithTrackingId("XXXX")
GAI.sharedInstance().defaultTracker.allowIDFACollection = true
此时,您的代码将无法编译。您需要手动将其他依赖项添加到目标,包括应用程序和单元测试(如https://developers.google.com/analytics/devguides/collection/ios/v3/#headers所示)。
注意libGoogleAnalyticsServices.a
。出于某种原因,Cocoapods在使用框架时不包含此内容。如果不添加此文件,链接器将失败并显示以下错误:
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_GAI", referenced from: __TMaCSo3GAI in AppDelegate.o
为了添加它,我手动下载了SDK(从此页面https://developers.google.com/analytics/devguides/collection/ios/resources)并将libGoogleAnalyticsServices.a
拖到我的项目中,确保它已添加到两个目标和“复制”复选框被检查了。
在添加文件和其他提到的依赖项之后,项目正确构建。
似乎Cocoapods只包含了Google AnalyticsSDK中的头文件。此解决方案并不完美,但无需为Google Analytics添加桥接标头。
答案 1 :(得分:1)
我在CocoaPods 0.39.0上遇到了类似的问题。
构建设置'OTHER_LDFLAGS'中的$(继承)解决了它。
答案 2 :(得分:0)
目前遇到同样的问题......
我使用以下方法获得了桥接标题:
#import <GoogleAnalytics_iOS_SDK/GAI.h>
#import <GoogleAnalytics_iOS_SDK/GAITrackedViewController.h>
#import <GoogleAnalytics_iOS_SDK/GAIDictionaryBuilder.h>
#import <GoogleAnalytics_iOS_SDK/GAIFields.h>
不幸的是,虽然这传递了构建,但我不能在我的项目中使用它。如果我找到更多......我会更新。
答案 3 :(得分:0)
使用桥接标头时,您应该可以使用以下导入语句导入Google Analytics iOS SDK:
#import <GoogleAnalytics-iOS-SDK/GAI.h>
如果您使用pod作为框架(通过在podfile中设置'use_frameworks!'),则不需要桥接文件。在swift类中,您只需使用以下语句导入它:
import GoogleAnalytics_iOS_SDK
如果这不起作用,我认为你的项目设置有问题。要解决这个问题,我需要更多信息。