资讯专栏INFORMATION COLUMN

cocoapods 错误之满足不了需求

OnlyMyRailgun / 2712人阅读

摘要:在开头的那段错误想要表达的意思是开发者在中要求是版本,而要求是最新的版本,最要命的竟然要求是大于但是小于的版本,这里和最开始的版本要求起了冲突,导致无法进行正常的库管理。

当我们的项目比较大、使用的第三方的库多了以后,执行pod update命令偶尔就会出现类似这样的错误:

[!] Unable to satisfy the following requirements:
- "A (=2.0)" required by "Podfile"
- "A" required by "B"
- "A (~> 1.4)" required by "C (1.6)"

这个错误信息很简单有很让人费解,我们仅仅知道 pod 无法满足我们的需求,但是是什么需求?没有说啊ಥ_ಥ.

其实事情的真相是各种不同的库以及 podfile 本身对于某一个库的版本要求出现了冲突,导致 pod 不知道应该做些什么,因此启只好无奈的把这些冲突的地方都写出来,让开发者进行处理。

在开头的那段错误 log 想要表达的意思是:开发者在 Podfile 中要求 A 是 2.0 版本,而 B 要求 A 是最新的版本,最要命的 C 竟然要求 A 是大于1.4但是小于2.0的版本,这里和最开始 podfile 的版本要求起了冲突,导致pod 无法进行正常的库管理。

那么在这种情况下我们可以首先尝试把 C 更新到当前最新的版本,因为很有可能 C 库的开发者已经更改了对于 A 的依赖的版本规则;如果不行,我们要么得去 clone 出来一个自己的 C 然后去修改 podspec,要么就是换用其他的和 C 类似的库来解决版本冲突问题,要么就是更改 podfile 以及回退 B 的版本,让A 的某一个版本同时存在于 Podile 、B、C 的版本要求的交集中。

另外,在 pod 的0.35版本中已经做了一些对于冲突解决的优化,举个例子:

pod " A" # Version 2.0.0 activates AFNetworking with: >= 2.0.0 && < 3.0.0
pod "B" # Version 2.1.0 activates AFNetworking with: >= 2.2.0 && < 3.0.0
pod "C" # Version 0.1.2 activates AFNetworking with: >= 1.3.0 && < 2.0.0

这样的版本要求在0.35之前是会报出文章最开头的那个错误的,但是0.35以后,pod 会把 A、B回退到一个要求 AF 的版本范围为 1.x 到 2.x 的版本。

参考:Automatic Conflict Resolution

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15814.html

相关文章

  • 谈谈 DSL 以及 DSL 的应用(以 CocoaPods 为例)

    摘要:与相对,与传统意义上的通用编程语言以及完全不同。在上一节讲到的其实可以被称为外部而这里即将谈到的嵌入式也有一个别名,内部。 最近在公司做了一次有关 DSL 在 iOS 开发中的应用的分享,这篇文章会简单介绍这次分享的内容。 因为 DSL 以及 DSL 的界定本身就是一个比较模糊的概念,所以难免有与他人观点意见相左的地方,如果有不同的意见,我们可以具体讨论。 这次文章的题目虽然是谈谈...

    felix0913 评论0 收藏0
  • Google推出iOS功能性UI测试框架EarlGrey

    摘要:创建与运行第一个测试由于基于,因此在中创建第一个测试就像创建一个新的单元测试用例类一样简单。由于这是个常规的单元测试,因此可以在测试与应用代码中打断点,也可以无缝使用内建工具。 经过了一段时间的酝酿后,Google很高兴地宣布了EarlGrey,一款针对于iOS的功能性UI测试框架。诸如YouTube、Google Calendar、Google Photos、Google Trans...

    pakolagij 评论0 收藏0
  • Google推出iOS功能性UI测试框架EarlGrey

    摘要:创建与运行第一个测试由于基于,因此在中创建第一个测试就像创建一个新的单元测试用例类一样简单。由于这是个常规的单元测试,因此可以在测试与应用代码中打断点,也可以无缝使用内建工具。 经过了一段时间的酝酿后,Google很高兴地宣布了EarlGrey,一款针对于iOS的功能性UI测试框架。诸如YouTube、Google Calendar、Google Photos、Google Trans...

    lemanli 评论0 收藏0
  • iOS 跑马灯 TXScrollLabelView

    摘要:目前已支持,后续会支持。后期会持续增加更多的功能,满足更多的需求。如何接入目前支持两种方式集成使用手动或者至本地,然后手动拖拽文件夹中的文件至项目中,使用的时候即可。如何使用直接上代码获取滚动的内容创建开始滚动更多请详见 前言 前段时间在开发一个广播的功能,网上也自己找了一些库,没有发现非常好用的,于是自己抽时间写了一个,在 Github 上发布一天收获六十多个 star,这里首先感谢...

    codergarden 评论0 收藏0
  • 拥抱 CocoaPods 1.0

    摘要:作为社区应用最广泛的依赖管理工具,终于快要发布版本了。行为改变对于仓库,不再使用,而是使用完整。默认不再进行这是个值得喜大普奔的消息。可能需要手动去改一下,避免错误的库,导致程序行为发生错误。 CocoaPods 作为 iOS 社区应用最广泛的依赖管理工具,终于快要发布 1.0 版本了。虽然我没有找到具体的 roadmap,不过现在已经发布到 1.0.0 Beta8 了,距离正式版应该...

    Ocean 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<