Swift项目与Cocoapods依赖

3
我有以下的cocoapods Podfile:
platform :ios, '8.0'

use_frameworks!

target 'Foo' do
        pod "SwiftyJSON", '~> 2.2.0'
        pod "Locksmith"
        pod "GoogleMaps"
        pod "RealmSwift"
end

target 'FooTests' do

end

我也使用了cocoapods 0.37.2。出于某些原因,当我尝试运行应用程序时,它会报错,但是很明显我已经指定了我的项目需要SwiftyJSON 2.2.0或更高版本:
 Reason: Incompatible library version: Foo requires version 2.0.0 or later, but SwiftyJSON provides version 1.0.0

我已验证在使用cocoapods-dependencies时,没有其他依赖关系与SwiftyJSON相关:

$pod dependencies

Dependencies
---
- GoogleMaps (1.10.1)
- Locksmith (1.2.2)
- Realm (0.93.2):
  - Realm/Headers (= 0.93.2)
- Realm/Headers (0.93.2)
- RealmSwift (0.93.2):
  - Realm (= 0.93.2)
- SwiftyJSON (2.2.0)

正如您所看到的,没有人正在拉取SwiftyJSON 1.0.0。顺便提一下,我使用cocoapods 0.37.2的原因是因为当我尝试使用0.38.1时出现了这个bug:https://github.com/CocoaPods/CocoaPods/issues/3890

关于SwiftyJSON版本不匹配,我有遗漏什么吗?我已经尝试过清理项目,重新执行pod install等操作,但没有任何结果。

提前致谢!


好的。听起来很疯狂,但我刚刚将SwiftyJSON作为依赖项删除了,将cocoapods升级到0.38.0,再次添加SwiftyJSON,并执行pod install。然后重新打开我的项目。一切看起来都很好。我不知道是因为升级还是因为删除和重新添加解决了我的问题。今天我浪费了大约3个小时来解决这个愚蠢的问题。 - caffeine_inquisitor
我遇到了同样的问题,今天也是这样开始的(在安装cocoapods 0.38.1之后,我已经降级到0.37.2,但问题仍然存在)。 - Steve N
1个回答

1

对我来说(看起来对你也是),以下步骤有效:

  1. 从podfile中删除有问题的pod(在我的情况下,是AFNetworkingAFNetworkActivityLogger
  2. pod install以清除它们
  3. 升级(或降级如果您使用的是0.38.1)到cocoapods 0.38.0
  4. 添加回pod并执行pod install

现在我又回到了正常状态……我相信0.38.1是导致我遇到这个问题的原因。


是的,我也是这样做的。卸载有问题的pods,卸载cocoapods 0.38.1,安装cocoapods 0.38.0,然后重新安装有问题的pods。看起来没问题了。手指交叉! - caffeine_inquisitor
1
如果其他人在执行了上述步骤后仍然遇到问题,可以尝试“清理构建文件夹”。在Xcode中,按住alt键并单击“Product”菜单,然后选择“Clean Build Folder”即可。 - Prine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接