2014-05-13 82 views
1

issue正在我的Xcode項目中生成警告。這已在2.2.3版中解決(修補程序版本更改,即2.2.2中存在問題)。如何在Podfile中爲Pod指定上限和下限

以前我Podfile使用:

pod 'AFNetworking', '~> 2.0' 

此匹配的所有2.0以上版本,但限於比賽進行到小於3.0,即一個主版本的變化被忽略。

因爲我需要的變化是很重要的(我不想警告縈繞在我的代碼),只有在2.2.3+我要像

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核-0.32.1/LIB /的CocoaPods核/ requirement.rb https://github.com/CocoaPods/Core/blob/master/lib/cocoapods-core/requirement.rb

這種模式只允許一個規範..

回答

4

你應該分別指定每個版本的要求,例如pod 'AFNetworking', '>= 2.2.3', '< 3.0'

這就是「Podfile語法指南」中的「可以爲更細粒度控制指定版本要求列表」的含義。

+0

謝謝!我可以把責任歸咎於我不是來自「紅寶石世界」嗎? :眉開眼笑: –