我目前正在尝试首次创建一个包含多个依赖项的pod。
我目前在我的吊舱中包含的吊舱如下
我的podspec
文件看起来像这样
Pod::Spec.new do |s|
s.platform = :ios
s.ios.deployment_target = '8.0'
s.name = "Socializin"
s.version = "0.0.1"
s.summary = "A short description of Socializin."
s.requires_arc = true
s.author = {"MyName" => "MyMail"}
s.homepage = "http://EXAMPLE/Socializin"
s.license = { :type => "MIT", :file => "LICENSE" }
s.source = { :git => "", :tag => "#{s.version}"}
s.framework = "UIKit"
s.dependency 'FacebookCore', '~> 0.2.0'
s.dependency 'FacebookLogin', '~> 0.2.0'
s.dependency 'FacebookShare', '~> 0.2.0'
s.dependency 'Fabric', '~> 1.6.11'
s.dependency 'TwitterKit', '~> 2.8.1'
s.dependency 'Google/SignIn', '~> 3.0.3'
s.dependency 'LinkedinSwift', '~> 1.7.4'
s.source_files = "Socializin/**/*.{swift}"
#s.resources = "Socializin/**/*.{png,jpeg,jpg,storyboard,xib}"
end
但依赖关系会给我以下错误
[!] The 'Pods-socializinTest' target has transitive dependencies that include static binaries: (/Users/x/projects/x/Examples/socializinTest/Pods/Fabric/iOS/Fabric.framework, /Users/x/projects/x/Examples/socializinTest/Pods/Google/Frameworks/GGLCore.framework, and /Users/x/projects/x/Examples/socializinTest/Pods/Google/Frameworks/GGLSignIn.framework)
无论如何确保它确实有效吗?我想做的就是创建一个pod,它可以让所有这些服务轻松使用,并且可以在需要时添加更多服务。
答案 0 :(得分:0)
我希望您仍在寻找解决方案。
这是我做的:
我将Google SignIn框架置于/ Dependency / GoogleDependency下
我把TwitterKit,TwitterCore和Fabric框架放在/ Dependency / TwitterDependency /
Pod::Spec.new do |s|
s.platform = :ios
s.ios.deployment_target = '9.0'
s.name = "Socializin"
s.version = "0.0.1"
s.summary = "A short description of Socializin."
s.requires_arc = true
s.author = {"MyName" => "MyMail"}
s.homepage = "http://EXAMPLE/Socializin"
s.license = { :type => "MIT", :file => "LICENSE" }
s.source = { :git => "", :tag => "#{s.version}"}
s.framework = "UIKit"
s.dependency 'FacebookCore', '~> 0.2.0'
s.dependency 'FacebookLogin', '~> 0.2.0'
s.dependency 'FacebookShare', '~> 0.2.0'
s.dependency 'LinkedinSwift', '~> 1.7.4'
s.source_files = "Socializin/**/*.{swift}"
#s.resources = "Socializin/**/*.{png,jpeg,jpg,storyboard,xib}"
#----------------------------Sub Modules-----------------#
s.subspec 'GoogleAuthentication' do |ss|
ss.ios.deployment_target = '9.0'
ss.source_files = 'Socializin/Dependency/GoogleDependency/**/*.{swift}'
ss.resources = ['Socializin/Dependency/GoogleDependency/**/*.{xib,xcdatamodeld,bundle}']
ss.vendored_frameworks = ['Socializin/Dependency/GoogleDependency/**/*.{framework}']
ss.preserve_paths = ['Socializin/Dependency/GoogleDependency/**/*.{framework}']
frameworkPaths = ''
Dir.glob('Socializin/Dependency/GoogleDependency/**/*.{framework}') do |filename|
filePath = Pathname.new(filename)
newFilename = filePath.dirname
if frameworkPaths != ""
frameworkPaths = "#{frameworkPaths} \"$(PODS_ROOT)/#{newFilename}\""
else
frameworkPaths = "\"$(PODS_ROOT)/#{newFilename}\""
end
end
ss.xcconfig = {
'FRAMEWORK_SEARCH_PATHS' => frameworkPaths,
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Socializin/Dependency/GoogleDependency"',
}
#Authentication
# ss.dependency 'GoogleSignIn'
ss.dependency 'GoogleToolboxForMac/NSDictionary+URLArguments'
ss.dependency 'GoogleToolboxForMac/NSData+zlib'
end
s.subspec 'TwitterAuthentication' do |ss|
ss.ios.deployment_target = '9.0'
ss.source_files = 'Socializin/Dependency/TwitterDependency/**/*.{swift}'
ss.resources = ['Socializin/Dependency/TwitterDependency/TwitterKit/iOS/TwitterKit.framework/*.{xib,xcdatamodeld,bundle}']
ss.vendored_frameworks = ['Socializin/Dependency/TwitterDependency/**/*.{framework}']
ss.preserve_paths = ['Socializin/Dependency/TwitterDependency/**/*.{framework}']
frameworkPaths = ''
Dir.glob('Socializin/Dependency/TwitterDependency/**/*.{framework}') do |filename|
filePath = Pathname.new(filename)
newFilename = filePath.dirname
if frameworkPaths != ""
frameworkPaths = "#{frameworkPaths} \"$(PODS_ROOT)/#{newFilename}\""
else
frameworkPaths = "\"$(PODS_ROOT)/#{newFilename}\""
end
end
ss.xcconfig = {
'FRAMEWORK_SEARCH_PATHS' => frameworkPaths,
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Socializin/Dependency/TwitterDependency"',
}
#Authentication
# ss.dependency 'Fabric'
# ss.dependency 'TwitterKit'
# ss.dependency 'TwitterCore'
end
end