类型 'SwinjectStoryboardOption' 不符合协议 'ServiceKeyOption'
Type 'SwinjectStoryboardOption' does not conform to protocol 'ServiceKeyOption'
在我全新安装我的项目 Cocoapods 之后,它在全新安装之前运行,现在当我编译时出现错误:
Type 'SwinjectStoryboardOption' does not conform to protocol 'ServiceKeyOption'
我该如何解决?
TL;DR
非常干净的修复方法是转到 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
版本。所以它错误地选择了与当前 SwinjectStoryboard
版本不兼容的 2.7.x
。
顺便说一句,看起来修复正在进行中,它在 master 分支上但尚未标记版本。
该错误是由于将 Swinject 作为其 2.7.0 版本的一部分移至 Swift 5 引起的。在写这篇文章的时候,它的修复已经合并到主 SwinjectStoryboard 分支中。缺少的只是发布一个新版本。
所以除了回退到 Swinject 2.6 之外还有其他临时解决方法(直到正式发布) - 通过在 Podfile
中定义来获取 master 分支内容
pod 'SwinjectStoryboard' , :git => 'https://github.com/Swinject/SwinjectStoryboard.git', :branch => 'master'
有一个 ticket 专门用于此。
另一个解决方案是添加
func hash(into: inout Hasher) {
}
至internal struct SwinjectStoryboardOption: ServiceKeyOption {<here>}
。
文件的路径应该是Pods -> SwinjectStoryboard -> SwinjectStoryboardOption.swift
在我全新安装我的项目 Cocoapods 之后,它在全新安装之前运行,现在当我编译时出现错误:
Type 'SwinjectStoryboardOption' does not conform to protocol 'ServiceKeyOption'
我该如何解决?
TL;DR
非常干净的修复方法是转到 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
版本。所以它错误地选择了与当前 SwinjectStoryboard
版本不兼容的 2.7.x
。
顺便说一句,看起来修复正在进行中,它在 master 分支上但尚未标记版本。
该错误是由于将 Swinject 作为其 2.7.0 版本的一部分移至 Swift 5 引起的。在写这篇文章的时候,它的修复已经合并到主 SwinjectStoryboard 分支中。缺少的只是发布一个新版本。
所以除了回退到 Swinject 2.6 之外还有其他临时解决方法(直到正式发布) - 通过在 Podfile
中定义来获取 master 分支内容pod 'SwinjectStoryboard' , :git => 'https://github.com/Swinject/SwinjectStoryboard.git', :branch => 'master'
有一个 ticket 专门用于此。
另一个解决方案是添加
func hash(into: inout Hasher) {
}
至internal struct SwinjectStoryboardOption: ServiceKeyOption {<here>}
。
文件的路径应该是Pods -> SwinjectStoryboard -> SwinjectStoryboardOption.swift