42
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CarthageでライブラリをビルドしたらModule compiled with Swift 4.1.2 cannot be imported by the Swift 4.2 compilerというエラーが出た。

Last updated at Posted at 2018-10-15

#この記事について
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してしまっていたのが原因だった。

##解決法

  1. Xcode > Preference > Locationsを開きCommand Line Toolsから、Xcode10を選択。
スクリーンショット 2018-10-15 20.31.45.png
  1. この状態で、ターミナル上で以下をもう一度実行
$ carthage update --platform iOS

3.再びプロジェクトをビルドしたら無事に成功した。

##まとめ
複数のSwiftのバージョンが切り替わりうる環境で開発しているときは、プロジェクトBuild用のSwiftのバージョンCommand Line ToolsのSwiftのバージョンが違う状態でライブラリをインポートしないように気をつける。

42
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?