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
此模式仅允许一个规范..
答案 0 :(得分:5)
您应该单独指定每个版本要求,例如pod 'AFNetworking', '>= 2.2.3', '< 3.0'
。
“Podfile语法指南”中的“可以为更细粒度的控件指定版本要求列表”的含义是什么。