繁体   English   中英

类型“SwinjectStoryboardOption”不符合协议“ServiceKeyOption”

[英]Type 'SwinjectStoryboardOption' does not conform to protocol 'ServiceKeyOption'

在我对我的项目 Cocoapods 进行全新安装后,该项目在全新安装之前工作,现在当我编译时出现该错误:

Type 'SwinjectStoryboardOption' does not conform to protocol 'ServiceKeyOption'

我如何解决它?

TL; 博士

非常干净的修复是转到Podfile.lock并查找Swinject ,将其版本设置为2.6.0而不是2.7.x 它看起来像这样:

  - Swinject (2.6.0)

一旦SwinjectStoryboard发布修复程序,您只需更新SwinjectStoryboard ,它就会自动将Swinject更新到正确的版本。

问题

看起来 SwinjectStoryboard 在他们的 podspec 文件中有一个错误的依赖描述:

s.dependency 'Swinject', '~> 2.6'

这导致cocoapods选择任何高于2.6 2.x版本。 因此,它错误地挑选2.7.x这是不符合当前的兼容SwinjectStoryboard版本。

顺便说一句,修复程序正在进行中,它在主分支上,但尚未标记版本。

该错误是由将 Swinject 移至 Swift 5 作为其 2.7.0 版本的一部分引起的。 在撰写本文时,它的修复程序已经合并到主 SwinjectStoryboard 分支中。 缺少的只是发布一个新版本。

因此,除了回退到 Swinject 2.6 之外,还有其他临时解决方法(直到正式发布) - 通过在 Podfile 中定义来获取主分支内容

pod 'SwinjectStoryboard' , :git => 'https://github.com/Swinject/SwinjectStoryboard.git', :branch => 'master'

一张专门用于此的

另一种解决方案是添加

func hash(into: inout Hasher) {
    
}

internal struct SwinjectStoryboardOption: ServiceKeyOption {<here>}

该文件的路径应该是Pods -> SwinjectStoryboard -> SwinjectStoryboardOption.swift

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM