[英]Difference between podspec dependency and Podfile pod declaration
我有一个cocoapod的项目(我们称之为“Main”),它与另一个cocoapod有一个依赖关系(我们称之为“Util”)。
我可以通过“pod'Util'”在Main的Podfile中添加Util,并通过“s.dependency'Util'”将其指定为podspec中的依赖项。
只要至少写入其中一个,我的pod测试项目运行正常(如果没有podspec中的依赖项,运行“pod lib lint”命令会返回错误)
在Podfile中指定pod可以让我更精确地了解我希望版本的准确程度,甚至允许我使用:head作为目标。 但是,依赖性似乎更加有限,需要标签。
我想知道这两种方法之间的区别,以及当一个pod依赖于另一个pod时是否有好的做法(特别是因为我最终想要将Main用作其他项目的pod)
如果我理解正确,你需要两者。
您将Util放在Main的Podfile
,以便它可以使用它并进行编译。
你把的Util在.podspec
主要的,使任何人在安装主会自动与主相处的Util。
此外, 本文可能对您有用,因为它显示了如何通过subspec
获得可选的依赖subspec
。
您可以制作包含不同依赖项的pod的多个版本。 例如,从文章中,以下.podspec
:
...
spec.default_subspec = 'Lite'
spec.subspec 'Lite' do |lite|
# subspec for users who don't want the third party PayPal
# & Stripe bloat
end
spec.subspec 'PayPal' do |paypal|
paypal.xcconfig =
{ 'OTHER_CFLAGS' => '$(inherited) -DKITE_OFFER_PAYPAL' }
paypal.dependency 'PayPal-iOS-SDK', '~> 2.4.2'
end
spec.subspec 'ApplePay' do |apple|
apple.xcconfig =
{ 'OTHER_CFLAGS' => '$(inherited) -DKITE_OFFER_APPLE_PAY' }
apple.dependency 'Stripe', '2.2.0'
apple.dependency 'Stripe/ApplePay'
end
允许以下3个pod:
pod "Kite-Print-SDK", "~> 1.0"
pod "Kite-Print-SDK/PayPal", "~> 1.0"
pod "Kite-Print-SDK/ApplePay", "~> 1.0"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.