クリーン インストールの直前に動作していたプロジェクト 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.x
2.6
2.7.x
SwinjectStoryboard
ところで、修正が進行中のようです。マスター ブランチ上にありますが、まだバージョン タグが付けられていません。
このエラーは、2.7.0 リリースの一部として Swinject を Swift 5 に移動したために発生します。これを書いている時点で、既に SwinjectStoryboard のマスター ブランチにマージされているため、修正されています。欠けているのは、新しいバージョンをリリースすることだけです。
したがって、Swinject 2.6 にフォールバックすることを除いて、他の一時的な回避策もあります (公式リリースが行われるまで) - Podfile で定義して master ブランチのコンテンツをフェッチする
pod 'SwinjectStoryboard' , :git => 'https://github.com/Swinject/SwinjectStoryboard.git', :branch => 'master'
これ専用のチケットがあります。