HOME > > [iOS]Swift2.3にしてビルドしたらCarthageもライブラリでエラー

[iOS]Swift2.3にしてビルドしたらCarthageもライブラリでエラー

事象

Swift2.3でビルドすると、Carthageを使ってライブラリで以下のようなエラーが出る場合があります。

Module file was created by an older version of the compiler; rebuild 'Library' and try again

というエラーが起きてしまいます。。

fe50bcf3f5881b0671e5ae975d1f6053

解決方法ご存知の方返信よろしくお願いします。

回答

このエラーはCarthageで使ったライブラリをビルドした時のSwiftバージョンが、今使っているXcodeのSwiftバージョンより古い場合に出るようです。 1.一度Xcodeの中身をクリーン 1.command + shift + option + kをして完全にXcodeのキャッシュをクリアします。 2.さらに下記のコマンドでDeriveDateの中身も削除します。

rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ./Carthage/

この状態で次の操作でcarthageライブラリを再ビルドします。 2.Swiftバージョンを指定してビルド carthage bootstrapもしくはcarthage updateの前にFとするとSwiftのバージョンを指定してビルドしてくれます。

TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage update --platform iOS --no-use-binaries

これでビルドが通るようになるはずです。