【问题标题】:How to specify both an upper and lower limit for a pod in the Podfile如何在 Podfile 中同时指定 Pod 的上限和下限
【发布时间】:2014-07-01 01:19:36
【问题描述】:

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

这种模式只允许一种规范..

【问题讨论】:

    标签: objective-c cocoapods


    【解决方案1】:

    您应该分别指定每个版本要求,例如pod 'AFNetworking', '&gt;= 2.2.3', '&lt; 3.0'.

    这就是“可以指定版本要求列表以实现更细粒度的控制”的意思。在 Podfile 语法指南中。

    【讨论】:

    • 谢谢!我能怪我不是来自“红宝石世界”吗? :咧嘴:
    猜你喜欢
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多