如何在Podfile中指定pod的上限和下限

时间:2014-05-13 11:29:53

标签: objective-c cocoapods

issue在我的Xcode项目中生成了警告。这在2.2.3版本中得到了解决(补丁版本更改,即2.2.2中存在问题)。

以前使用的Podfile:

pod 'AFNetworking', '~> 2.0'

这匹配所有版本2.0+但将匹配限制为小于3.0,即忽略了主要版本更改。

由于我要求的更改很重要(我不希望在编码时警告会延迟)并且仅在2.2.3+版本中可用,我想要我的pod规范

pod 'AFNetworking', '>= 2.2.3 & < 3.0'

请注意,我仍然不希望主要版本出现问题,如果我只使用以下内容,这是可能的:

pod 'AFNetworking', '>= 2.2.3'

因为这也会匹配3.0 ..

问题是Cocoapods不允许这样做,并在解析错误时拒绝它:

ArgumentError - Illformed requirement `">= 2.2.3 & < 3.0"`

参考:

据我所知,在解析Podfile时,版本规范与正则表达式匹配:

quoted_operators = OPS.keys.map { |k| Regexp.quote k }.join '|'
PATTERN = /\A\s*(#{quoted_operators})?\s*(#{Version::VERSION_PATTERN})\s*\z/

文件:cocoapods-core-0.32.1 / lib / cocoapods-core / requirement.rb https://github.com/CocoaPods/Core/blob/master/lib/cocoapods-core/requirement.rb

此模式仅允许一个规范..

1 个答案:

答案 0 :(得分:5)

您应该单独指定每个版本要求,例如pod 'AFNetworking', '>= 2.2.3', '< 3.0'

“Podfile语法指南”中的“可以为更细粒度的控件指定版本要求列表”的含义是什么。