LoginSignup
30
26

More than 5 years have passed since last update.

Swift2.3でビルドエラーになったCarthageライブラリのビルドを通す方法

Last updated at Posted at 2016-09-08

Xcode8ではUse Legacy Swift Language VersionというBuild Setting ができようになり、Yesを指定するとSwift2.3でビルドされるようになります。
Swift2.3にして後からSwift3に対応していくという場合に有効です。

無題の画像.png

Carthageで入れているライブラリがビルドエラー

ただこのままだとプロジェクト内のコードはSwift2.3でビルドされるようになりますが、Carthageを使ってライブラリを入れている場合に
Module file was created by an older version of the compiler; rebuild 'Library' and try again: というエラーが起きてしまいます。

Carthageで使ったライブラリをビルドした時のSwiftバージョンが、今使っているXcodeのSwiftバージョンより古いので起きているようです。

Carthageで入れたライブラリをSwiftバージョンを指定してビルドする

carthage bootstrapもしくはcarthage updateの前にTOOLCHAINS=com.apple.dt.toolchain.Swift_2_3とSwiftバージョンを指定する方法を使って
TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage bootstrapとすることで、
Swift2.3でCarthageで入れたライブラリのビルドが可能になります

さいごに

使用ライブラリによってはソース自体がSwift2.3に対応できてなかったりするので、他の理由でビルドできないライブラリは個別にリポジトリのIssueやPRを確認してみましょう。
2.3でリポジトリ内を検索してみると、だいたい知りたい情報が出てきます。
スクリーンショット 2016-09-08 14.26.30.png

「Swift2.3対応するのにもっといいやり方知っているよ!」という方がいれば、ぜひ教えてください!

30
26
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
30
26