ios - 即使有较新的固定 podspec 可用,pod lib lint 也会因循环依赖而失败

标签 ios cocoapods

我有两个私有(private) pod:ServicesAppUI。随着新的 Cocoapods 0.35 版本的发布,Service pod 坏了,因为我使用了循环依赖,因为为了修复它,我做了重大更改并将其发布为 v2.0-alpha.1 .

AppUI 有一个名为 Presenters 的子规范,它依赖于 Services/Models:

s.subspec 'Presenters' do |presenters|
  presenters.source_files = 'Classes/Presenters/**/*.{h,m}'

  presenters.dependency 'AppUI/Core'
  presenters.dependency 'Services/Models'
end

当我尝试在其上运行 pod lib lint 时,它因以下错误而失败:

[!] There is a circular dependency between Services/Directors and Services/Models

这正是版本 2.0-alpha.1 修复的问题。运行 pod lib lint --verbose 我发现了这个:

Creating possibility state for Services/Models (4 remaining)
  Attempting to activate Services/Models (2.0-alpha.1)
  Unsatisfied by requested spec
  Unwinding for conflict: Services/Models
Creating possibility state for Services/Models (3 remaining)
  Attempting to activate Services/Models (1.0)

它首先尝试正确的版本,但由于神秘的“请求的规范不满足”而回落到旧的 1.0。请求的规范没有指定版本怎么不满意?我无法指定 '~> 2',因为 AppUI 对旧版本和新版本的支持都很好。

我该如何解决这个问题?

最佳答案

在 CocoaPods 0.35 中,默认情况下预发布版本(即 2.0-alpha.1)将被排除,除非您明确要求它们。

您可以使用以下内容明确解析该版本:

pod 'Services', '2.0-alpha.1'

或者,像这样获取最新版本,预发布与否:

pod 'Services', '> 0.0.0.pre'

关于ios - 即使有较新的固定 podspec 可用,pod lib lint 也会因循环依赖而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069753/

相关文章:

iphone - 关闭模态视图 Controller 时,底层 UIScrollView 会调整为全屏

ios - Facebook iOS SDK 3.1 请求读取和发布权限

iphone - 将多维数组中的图像加载到 UIImageView 中

ios - 删除 pod( cocoa pod )后出现 Apple Mach-O 链接器错误

ios - 在 Custom Cocoapods 中使用 Storyboards 和 Image assets

ios - 从项目中删除 Pod - xcode

ios - 试图给UIButton一个特殊的属性

ios - 如何查看 iPhone 现在处于哪个位置(横向或纵向)?

ios - Twitter.sharedInstance() 不存在 swift TwitterKit

ios - undefined symbol :___ isplatformversionatleast