我创建了一个静态库,其中包含我的util类(广告,日期,网络等)并调用了库UtilsLib。在UtilsLib podspec中,我依赖于某些库,如Admob(6.8.0),谷歌分析(3.0.3),Toast(2.2)等。这是UtilsLib podspec:
#
Pod::Spec.new do |s|
s.name = "UtilsLib"
s.version = "0.0.1"
s.summary = "Private static library for Ercans ios projects"
s.description = <<-DESC
A longer description of UtilsLib in Markdown format.
* BlockAlerts and ActionSheets
* GDataXML-HTML
* Admob
* Google Analytics
* MMDrawerController
* MMPickerView
* Reachability
* Toast
* UIDevice-Hardware
* ios-linechart
* objc-utils
DESC
s.homepage = "http://iosdeveloper61.blogspot.com.tr/"
s.license = "MIT (example)"
s.author = { "Ercan Celik" => "erceng@gmail.com" }
s.platform = :ios, "6.1"
s.source_files = "UtilsLib", "UtilsLib/**/*.{h,m}"
s.public_header_files = "UtilsLib/**/*.h"
s.requires_arc = true
s.dependency 'UIDevice-Hardware', '~> 0.1.3'
s.dependency 'Reachability', '~> 3.1.1'
s.dependency 'BlockAlertsAnd-ActionSheets', '~> 1.0.6'
s.dependency 'MMDrawerController', '~> 0.4.0'
s.dependency 'MMPickerView', '~> 0.0.1'
s.dependency 'ios-linechart', '~> 1.2.0'
s.dependency 'Toast', '~> 2.2'
s.dependency 'Google-Mobile-Ads-SDK'
s.dependency 'GoogleAnalytics-iOS-SDK'
end
当我构建UtilsLib的工作区时,没有错误。然后我创建了一个项目,并在它的podfile中依赖于UtilsLib,如下所示:
platform :ios, "6.1"
pod 'UtilsLib', :path => '../../../UtilsLib'
我确信,UtilsLib的路径是正确的。当我构建新工作区时,它会给出以下错误:
Undefined symbols for architecture i386:
"_CGSizeFromGADAdSize", referenced from:
+[AdUtils showAdMobBanner:] in libPods.a(AdUtils.o)
"_OBJC_CLASS_$_GADBannerView", referenced from:
objc-class-ref in libPods.a(AdUtils.o)
"_OBJC_CLASS_$_GADRequest", referenced from:
objc-class-ref in libPods.a(AdUtils.o)
"_OBJC_CLASS_$_GAI", referenced from:
objc-class-ref in libPods.a(AdUtils.o)
"_kGADAdSizeBanner", referenced from:
+[AdUtils showAdMobBanner:] in libPods.a(AdUtils.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
AdUtils是UtilsLib中的一个使用google admob sdk的类。当我从UtilsLib中删除admob sdk和AdUtils类时,我的新项目中没有错误。
请帮助,我从昨天起找不到任何解决方案:(