Xcode8だけどSwift2.3で実行したい人向け対応


Xcode8が9月13日にとうとう正式にでたので早速インストールしてみました。案の定いろいろエラーが出てきたので即席対応した内容を共有します。

Use Legacy Swift Language Version

起動時にLaterを選択したにもかかわらず、シミュレーターや実機に書き込もうとすると

Use Legacy Swift Language Version

というエラーがでて、Convertを推奨してきます…。
これを解除してSwift2.3で書くには

TARGETS -> Build Setting -> Swift Compiler -> Use Legacy Swift Language Version

をYESに変更します。
これでSwift2.3で書かれたモノでも上記のエラーが出なくなります。

ライブラリを使用していた場合

僕はcarthageで導入していたObjectMapperのimport文で以下のようなエラー文がでました。

Module file was created by an older version of the compiler; rebuild 'ObjectMapper' and try again
Carthage/Build

を削除して

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

Swift2.3を指定して、carthageで導入するライブラリをビルドします。ビルド後に、プロジェクトに追加してください。

以上で、シミュレータに書き込んで実行することができました。