エラー
carthageで作成したフレームワークのビルド時に以下のエラーが。
Module compiled with Swift 4.0 cannot be imported in Swift 4.0.2
原因
carthageで作成したフレームワークのビルド時のSwiftバージョンと
XcodeプロジェクトのビルドのSwiftバージョンが違う時に発生するもの。
管理人の環境では複数バージョンのXcodeが存在しておりcarthageビルドのSwiftバージョンと
Xcodeプロジェクトのビルドのバージョンが違っていたために発生したようです。
解決策
①まずはcarthageビルドのSwiftのversion確認
ターミナルを起動して以下を実行
$ xcode-select -p
結果
$ /Applications/Xcode_9_0_1.app/Contents/Developer
Xcode_9_0_1.appはXcodeのversionが9.0.1でSwiftのversionが4.0
つまりcarthageビルドしたSwiftのversionは4.0ということ
Xcodeプロジェクトはversionは9.1のXcode.appで起動していたので、Swiftのversionは4.02
※Xcodeのversionは以下のコマンドで確認可能です。
$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -v
②次にSwiftのversionを揃えます
$ sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
これでcarthageビルドもXcodeプロジェクトのビルドもXcode.appのSwiftでビルドするようになる。
③再度carthage update実行
$ carthage update --platform iOS --no-use-binaries
④Xcodeプロジェクトにフレームワークを組み込んでビルド