How do I see which version of Swift I'm using?

SwiftXcodeTerminal

Swift Problem Overview


I just created a new Swift project within Xcode. I am wondering which version of Swift it's using.

How can I see, in Xcode or the terminal, what version of Swift I am using inside my project?

Swift Solutions


Solution 1 - Swift

What I do is say in the Terminal:

$ xcrun swift -version

Output for Xcode 6.3.2 is:

Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)

Of course that assumes that your xcrun is pointing at your copy of Xcode correctly. If, like me, you're juggling several versions of Xcode, that can be a worry! To make sure that it is, say

$ xcrun --find swift

and look at the path to Xcode that it shows you. For example:

/Applications/Xcode.app/...

If that's your Xcode, then the output from -version is accurate. If you need to repoint xcrun, use the Command Line Tools pop-up menu in Xcode's Locations preference pane.

Solution 2 - Swift

Project build settings have a block 'Swift Compiler - Languages', which stores information about Swift Language Version in key-value format. It will show you all available (supported) Swift Language Version for your Xcode and active version also by a tick mark.

> Project ► (Select Your Project Target) ► Build Settings ► (Type > 'swift_version' in the Search bar) Swift Compiler Language ► Swift Language > Version ► Click on Language list to open it (and there will be a tick mark on any one of list-item, that will be current swift version).

Look at this snapshot, for easy understanding:

xcode with described areas highlighted


With help of following code, programmatically you can find Swift version supported by your project.

#if swift(>=5.3)
print("Hello, Swift 5.3")

#elseif swift(>=5.2)
print("Hello, Swift 5.2")

#elseif swift(>=5.1)
print("Hello, Swift 5.1")

#elseif swift(>=5.0)
print("Hello, Swift 5.0")

#elseif swift(>=4.2)
print("Hello, Swift 4.2")

#elseif swift(>=4.1)
print("Hello, Swift 4.1")

#elseif swift(>=4.0)
print("Hello, Swift 4.0")

#elseif swift(>=3.2)
print("Hello, Swift 3.2")

#elseif swift(>=3.0)
print("Hello, Swift 3.0")

#elseif swift(>=2.2)
print("Hello, Swift 2.2")

#elseif swift(>=2.1)
print("Hello, Swift 2.1")

#elseif swift(>=2.0)
print("Hello, Swift 2.0")

#elseif swift(>=1.2)
print("Hello, Swift 1.2")

#elseif swift(>=1.1)
print("Hello, Swift 1.1")

#elseif swift(>=1.0)
print("Hello, Swift 1.0")

#endif

Here is result using Playground (with Xcode 11.x)

enter image description here

Solution 3 - Swift

Open the Terminal and write:

swift -version

Solution 4 - Swift

From Xcode 8.3 onward Build Settings has key Swift Language Version with a value of swift version your target is using.

For older Xcodes use this solution, open terminal and type following command(s)

Case 1: You have installed only one Xcode App

swift -version

Case 2: You have installed multiple Xcode Apps

  • Switch active developer directory (Replace Xcode_7.3.app from following command with your Xcode app file name from Application directory for which you want to check swift version)

     sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
    
  • Then

      swift -version
    

NOTE: From Xcode 8 to Xcode 8.2.x you can use swift 2.3 even though Xcode 8 uses swift 3.x as default swift version. To use swift 2.3, just turn on flag Use Legacy Swift Language Version to YES from Build Setting and XCode will use Swift 2.3 for that project target.

Solution 5 - Swift

You can see and select which Swift version Xcode is using in:

Target -> Build Settings -> Swift Language Version:

enter image description here

This is available in Xcode 8.3 and Xcode 9 (haven't checked older versions)

Solution 6 - Swift

To see the default version of swift installed on your machine then from the command line, type the following :

swift --version

> Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)

> Target: x86_64-apple-darwin17.6.0

This is most likely the version that is included in the app store version of Xcode that you have installed (unless you have changed it).

If you want to determine the actual version of Swift being used by a particular version of Xcode (a beta, for instance) then from the command line, invoke the swift binary within the Xcode bundle and pass it the parameter --version

/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version

> Apple Swift version 4.2 (swiftlang-1000.0.16.7 clang-1000.10.25.3)

> Target: x86_64-apple-darwin17.6.0

Solution 7 - Swift

This reddit post helped me: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet

> Xcode 8 uses Swift 3.0 as default. But you can turn on Swift 2.3. Go to project's Build Settings and set 'Use Legacy Swift Language Version' to YES.

Good old reddit :)

Solution 8 - Swift

In case anyone is looking for quick one-to-one mapping of Swift version based on Xcode Version:

Xcode 13.2   :      Swift version 5.5.2

Xcode 12.5   :      Swift version 5.4.2

Xcode 12.3   :		Swift version 5.3.2

Xcode 12.2   :		Swift version 5.3.1

Xcode 11.6   :		Swift version 5.2.4

Xcode 11.5   :		Swift version 5.2.4

Xcode 11.4   :		Swift version 5.2

Xcode 11.3   :		Swift version 5.1.3

Xcode 11.2.1 :		Swift version 5.1.2

Xcode 11.1   :		Swift version 5.1

Obtained with running following command as mentioned on different Xcode versions:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version

Solution 9 - Swift

/usr/bin/swiftc --version

and swift version <--> Xcode version

Solution 10 - Swift

I am using Swift from Google Colab. Here's how to check it in Colab.

!/swift/toolchain/usr/bin/swift --version

The result is 5.0-dev

Solution 11 - Swift

hi frind code type in terminal swift -v

print teminal Welcome to Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53).

Solution 12 - Swift

if you want to check the run code for a particular version of swift you can use

#if compiler(>=5.1) //4.2, 3.0, 2.0 replace whatever swft version you wants to check
#endif

Solution 13 - Swift

Updated answer for how to find which version of Swift your project is using in a few click in Xcode 12 to help out rookies like me.

  1. Click on your Project (top level Blue Icon in the left hand pane)
  2. Click on Build Settings (5th item in the Project > Header)
  3. Scroll down to Swift Compiler - Language, and look at the dropdown.

enter image description here

Solution 14 - Swift

Either you can run a command on terminal

xcrun swift -version

or

You can refer below table to check which Xcode is using which version of swift language.

Xcode 13.3   :      Swift version 5.6

Xcode 13.2   :      Swift version 5.5.2

Xcode 12.5   :      Swift version 5.4.2

Xcode 12.3   :      Swift version 5.3.2

Xcode 12.2   :      Swift version 5.3.1

Xcode 11.6   :      Swift version 5.2.4

Xcode 11.5   :      Swift version 5.2.4

Xcode 11.4   :      Swift version 5.2

Xcode 11.3   :      Swift version 5.1.3

Xcode 11.2.1 :      Swift version 5.1.2

Xcode 11.1   :      Swift version 5.1

Solution 15 - Swift

By just entering swift command in the terminal, it will show the version, while logging to Swift console.(something like below)

System-IOSs-MacBook-Air:~ system$ swift
Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7).
Type :help for assistance.

Solution 16 - Swift

Bonus contribution: I'm using a custom node.js script to extract a clean string for use with Jazzy documentation. You might get some use of this if you can find a place to work it into your dev process:

Invoked from a Bash script:

#!/bin/bash
swiftversion=$(node SwiftVerSlicer.js "${xcrun swift -version}");
echo $swiftversion

SwiftVerSlicer.js:

// begin script
const inputString = `${process.argv[2]}`
let searchTerm = (inputString.indexOf('(') - 1)//-1 cause whitespace
let version = inputString.slice(0,searchTerm)
console.log(version)
// end script

You can also use regex of course, but do whatever you like :]

Solution 17 - Swift

  1. Select your project
  2. Build Setting
  3. search for "swift language"
  4. now you can see which swift version you are using in your project

https://i.stack.imgur.com/Ojn3m.png

Solution 18 - Swift

You will get this under the project setting

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDavid SnabelView Question on Stackoverflow
Solution 1 - SwiftmattView Answer on Stackoverflow
Solution 2 - SwiftKrunalView Answer on Stackoverflow
Solution 3 - SwiftAbdulrazzaq AlzayedView Answer on Stackoverflow
Solution 4 - SwiftAditya DeshmaneView Answer on Stackoverflow
Solution 5 - SwiftjoernView Answer on Stackoverflow
Solution 6 - SwiftPaul KingView Answer on Stackoverflow
Solution 7 - SwiftalexisSchreierView Answer on Stackoverflow
Solution 8 - SwiftAlpanaView Answer on Stackoverflow
Solution 9 - SwiftJimmy KDView Answer on Stackoverflow
Solution 10 - SwiftkorakotView Answer on Stackoverflow
Solution 11 - SwiftdeveloperjavadView Answer on Stackoverflow
Solution 12 - SwiftNavdeep PaliwalView Answer on Stackoverflow
Solution 13 - SwiftJoshua DanceView Answer on Stackoverflow
Solution 14 - SwiftRuchin SomalView Answer on Stackoverflow
Solution 15 - SwiftSuperNovaView Answer on Stackoverflow
Solution 16 - Swiftuser3810044View Answer on Stackoverflow
Solution 17 - Swiftviral gotiView Answer on Stackoverflow
Solution 18 - SwiftFaruque HossainView Answer on Stackoverflow