我目前正在开发一个使用CocoaPods的项目。这是我第一次使用它们的经历,并希望得到一些我们遇到的问题的帮助。
我们有多个使用相同数据模型的应用。我们创建了一个单独的项目,而不是复制代码,该项目作为pod文件添加到每个子项目中。在这个项目中,我们还有很多第三方库(Facebook SDK,GoogleAnalytics等),因为它们在我们的多个应用程序中使用。我们使用的2个库是Flurry 5.4.0和Appsflyer。不幸的是,这些人是.a文件而不是其他返回.h文件的pod文件。
我们的基础项目将清理并编译没有问题。但是当我们尝试通过pod将这个项目添加到任何子项目时,会导致编译错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_AppsFlyerTracker", referenced from:
objc-class-ref in libPods.a(SHAnalyticsUtility.o)
"_OBJC_CLASS_$_Flurry", referenced from:
objc-class-ref in libPods.a(SHAnalyticsUtility.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已经尝试了更新Podfile(https://github.com/CocoaPods/CocoaPods/issues/2018)和PodSpec(https://github.com/CocoaPods/Specs/issues/1483)文件的所有不同方法,但到目前为止还没有任何工作。任何和所有建议欢迎:) 的 PODSPEC
Pod::Spec.new do |s|
s.name = 'company-framework-ios'
s.version = '1.13.16'
s.platform = :ios
s.license = 'MIT'
s.summary = 'Framework for all the iOS apps'
s.source_files = 'CompanyFramework/CompanyFramework/*.{h,m}','CompanyFramework/CompanyFramework/**/*.{h,m}'
s.frameworks = 'QuartzCore', 'CoreLocation'
s.dependency 'Masonry'
s.dependency 'Mixpanel'
s.dependency 'GoogleAnalytics-iOS-SDK'
s.dependency 'AFNetworking', '2.4.1'
s.dependency 'NSDate+Calendar'
s.dependency 'RXPromise'
s.dependency 'SAMCategories'
s.dependency 'FlurrySDK'
s.dependency 'AppsFlyer-SDK'
s.dependency 'Facebook-iOS-SDK', '3.18.2'
s.ios.deployment_target = "7.1"
s.requires_arc = true
s.ios.vendored_library = 'Pods/FlurrySDK/Flurry/libFlurry_5.4.0.a'
s.ios.vendored_library = 'Pods/AppsFlyer-SDK/libAppsFlyerLib.a'
end
答案 0 :(得分:1)
因此,答案是当您将.a文件添加到自定义窗格时,还必须在安装自定义窗格后将.a文件添加到项目中。