概要
最近Xcode8からXcode8.1にあげましてSwiftのバージョンも3.0から3.0.1に上がっていました。Xcode8,Swift3.0では問題なかったのがXcode8.1,Swift3.0.1にあげたことでCarthageで入れているライブラリが一部エラーになったので解決方法を軽くまとめます。
エラー:Module compiled with swift 3.0 cannot be imported in Swift 3.0.1
このエラーが出ました。
Carthageを使ってい入れているライブラリがSwift3.0.1に対応されてないのかなーと思い、
ライブラリ作成者にissueでも投げようかなーと思ったのですが、どうもその必要はなさそうでした。
対応方法
原因としては読んだ通りで、Swift3.0でコンパイルされたモジュールのためSwift3.0.1では動きませんとのことです。
なのでローカルの3.0.1の環境でライブラリをコンパイルしてあげれば解決するようです。
$ carthage bootstrap --platform iOS --no-use-binaries
or
$ carthage update --platform iOS --no-use-binaries
--no-use-binaries
はビルド済みのバイナリのダウンロードをせず、必ずローカルでビルドさせるとうオプションのようです。
なのでこのオプションをいれてローカルのSwift3.0.1の環境でビルドさせれば大丈夫みたいです。
この後cleanしてビルドしたら無事にビルド通りました
参考
- Carthageについて知りたいn個のこと
- [Module compiled with swift 3.0 cannot be imported in Swift 3.0.1](Module compiled with swift 3.0 cannot be imported in Swift 3.0.1
http://stackoverflow.com/questions/40250381/module-compiled-with-swift-3-0-cannot-be-imported-in-swift-3-0-1)