carthageで作成したフレームワークのビルド時にSwiftバージョンエラーが発生した場合は

エラー

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プロジェクトにフレームワークを組み込んでビルド

スポンサーリンク
PR
PR

シェアする

  • このエントリーをはてなブックマークに追加

フォローする