Swift – “Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift.”

build-errorbuild-settingscompiler-errorsswiftxcode

Ever since I've updated to Xcode 8.2 (GM seed, from the App Store), I have been stuck at the following error:

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.

So I went to my target's Build Settings, and searched for SWIFT_VERSION to see where I was erring. However, I was surprised to find that it was already set to No!

How do I fix this?

Best Answer

Xcode 8 seems to be wrongfully displaying a nonexistent ("phantom", if you will) No. There's a trivial fix for this:

  1. Click the tiny arrow next to SWIFT_VERSION to toggle the drop-down list.
  2. Set the values for Debug and Release to Yes.
  3. Set the values for Debug and Release back to No.

The image below was taken just after setting Debug to No. Xcode shows that both Debug and Release are set to No, however SWIFT_VERSION reads <Multiple Values>:

enter image description here

From this, I can only conclude that it is a bug; and that some value (or more probably a null value) is being misrepresented as No.