#この記事について
Xcode10とXcode9.4.1を使い分けつつ、Carthageを使ってライブラリをビルドしていたら以下のようなエラーが出た。その時の対処法のメモ。
Module compiled with Swift 4.1.2 cannot be imported by the Swift 4.2 compiler....
##原因
TargetのBuild SettingsでSwift Language Versionを確認すると4.2となっているので、プロジェクト自体はSwift4.2でコンパイルされている模様。しかし、Command Line Toolsを確認すると、Xcode9.4.1となっており、Swift4.1.2でBuildされていた。
すなわち、ターミナルからライブラリをCarthageでBuildしたときに、Swift 4.1.2のモジュールでBuildしてしまっていたのが原因だった。
##解決法
- Xcode > Preference > Locationsを開きCommand Line Toolsから、Xcode10を選択。
- この状態で、ターミナル上で以下をもう一度実行
$ carthage update --platform iOS
3.再びプロジェクトをビルドしたら無事に成功した。
##まとめ
複数のSwiftのバージョンが切り替わりうる環境で開発しているときは、プロジェクトBuild用のSwiftのバージョンとCommand Line ToolsのSwiftのバージョンが違う状態でライブラリをインポートしないように気をつける。