Xcode 8.0でSwift 2.3にした時に困ったこととその解決法

  • 11
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Swift 3.0とSwift 2.3

Swift 3.0でやりたいけど、ライブラリ等が3.0対応していなくて仕方なく2.3に上げることにした

carthage update

TerminalもSwift 3.0になっているので普通にやると失敗する

$ swift --version
Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38)
Target: x86_64-apple-macosx10.9

$ TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 swift --version                  
Apple Swift version 2.3 (swiftlang-800.10.12 clang-800.0.38)
Target: x86_64-apple-macosx10.9

なので、

$ TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage update

こうすれば良い

Module compiled with Swift 3.0 cannot be imported in Swift 2.3

Realmで起きた
RealmはSwift 3.0でビルドされたバイナリをダウンロードしてくるので、--no-use-binariesをつける

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

はにゃーん