我成功地通过 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 所示)。
- CoreData.framework
- SystemConfiguration.framework
- libz.dylib
- libsqlite3.dylib
- libGoogleAnalyticsServices.a
注意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 Analytics SDK 的头文件。此解决方案并不完美,但避免了要求仅为 Google Analytics 添加桥接头。