追記: この問題はXcode8.2.1アップデートで修正されました(Xcode Release Notesより)
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly."
これまでXcode 8.1 (macOS Sierra)まではUse Legacy Swift Language Version
をNO
にしてSwift 3.0をビルドしていました。しかしXcode 8.2へアップデートしたところ上記エラーでビルドできなくなりました。
対処法
Apple Developer Forums - XCode 8.2, does not detect that my project already is migrated to Swift 3
手順
- .xcodeprojフォルダ内やPodsフォルダ内にある.pbxprojファイルの
SWIFT_VERSION
が3.0.1
となっていた場合、すべて3.0
に書き換える - 対象プロジェクトの
Use Legacy Swift Language Version
をNo
からYes
にしてビルドを失敗させる - 対象プロジェクトの
Use Legacy Swift Language Version
を再びNo
に戻してビルドすることで解消する
アップデート後のXcode 8.2はSwift 3.0.1を2.3として認識しエラーを出すようです。
同じくXcode 8.1 -> 8.2とした別Mac(Mac OS X El Captan)ではこの問題は発生しませんでした。