How to fix "SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0" error in Xcode 10.2?

124k Views Asked by At

I'm trying to run downloaded from app, try to open in Xcode and have an error:

" Showing Recent Messages
:-1: SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'SimpleWeather')"

Screenshot added

18

There are 18 best solutions below

1
On

Search for Swift and double click, then change each offending version.

enter image description here

0
On
  1. Select project
  2. Select Build SettingTab
  3. Select Swift Compiler language Option

enter image description here

0
On

We can automate this using a post-install hook installing Cocoapods.

Add this to your Podfile:

    ..
    pod 'Alamofire' # Just an example for the last pod in list.
    post_install do |installer|
        installer.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '5.0'
            end
        end
    end
end

This hook is helpful if you have lots of Pods as dependencies because we don't need to manually change the Build Settings for each pod. However, be sure to manually change some pods to 4.0 or 4.2 as outlined in the earlier answers if they don't support Swift 5 yet.

1
On

Select the target 'SimpleWeather' in the project and change language version Target->build setting -> Swift compiler language -> select 5, 4.2 etc

image of build setting for changing compiler language

0
On

******** Easiest way: **********

1.Click on PODs in the left column.

2.In the centre column select the pod you want, then navigate to "build settings" in the top right panel.

3.Then search "Swift Language Version" and change to a known version.

enter image description here enter image description here

0
On

PLease make sure that the your pod's version is compatiable with your swift's version. I have faced this issue when I had installed wrong version of pod (swift 2.3), But I was using swift 4

0
On
  1. open MyProject.xcodeproj/project.pbxproj in the editor (e.q. Sublime)

example Calculator.xcodeproj

  1. Rename all SWIFT_VERSION = 3.0; Rename all SWIFT_VERSION = 5.0;

enter image description here

6
On

I followed the instructions on this page and the error didn't resolve. Finally, went into

$ vim MyProject.xcodeproj/project.pbxproj

and found two instances where

SWIFT_VERSION = 3.0;

was still being referenced. I changed those to 5.0 and the error was gone. Not sure why those two were still there.

0
On

It seems that the app might have an old Swift version code like Swift 3.0 in your case. In the release of Xcode version 10.2 has launched Swift 5.0 version. Xcode 10.2 does not support compiler for Swift 3.0 version. You can change compiler from Build Settings -> Swift Compiler - Language -> Swift Language Version -> Change it to Swift 5. If your code is compatible with that language version then it will run the code without error.

However, the Swift 3 compatibility mode will not be supported in the Swift 5 compiler. Swift 4.2 is the last release of Swift to support Swift 3 mode. There are important changes to both the surface of the language and the interior of its implementation in the releases following Swift 3 that will be the basis of future (and lasting) source and binary stability.

Refer below link for more details. https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes/swift_5_release_notes_for_xcode_10_2

If you really wish to run the app which has older Swift version code than you must have to use an older version of Xcode. You can use Xcode version 10.1, it's compiler having support for Swift 3.0 version.

Another alternative way is to migrate your old Swift code to the new version of the Swift version. You can migrate you Swift 3.0 to Swift 4.0 in Xcode 10.1 version.

For migration guide refer to this https://swift.org/migration-guide-swift4/

1
On

For Xcode 10.1, select your Pods File

enter image description here

-> Go to Build Settings -> Choose your Pod -> Search "Swift" -> Navigate to "Swift Language version" -> Set to desired language version.

enter image description here

0
On

enter image description hereselect pod like as per image and change swift language version this can save you one day

enter image description here

0
On

Its very simple. Just follow this 2 steps to resolve this issue.

In Step 1:

  • Resolve Build Failed issue.
  • Covert Swift 3.0 to Swift 4.0 enter image description here

In Step 2:

  • Resolve all other warnings
  • Then Covert Swift 4.0 to Swift 5.0

enter image description here

0
On

If you multiple pod files like I did and you're having trouble finding the pod with SWIFT_Version = 3.0 try the search bar

0
On

I opened up the file MyProject.xcodeproj (using VSCode editor)

and I found some lines where

SWIFT_VERSION = 3.0;

(at about line 400 where it says /* Begin XCBuildConfiguration section */)

Modify to SWIFT_VERSION = 5.0 or others. After that I was able build and run the project.

0
On

I am new to iOS development. After I followed all of the above answers, I still got the same error. I was using Xcode 11 and I downloaded the "FoodTracker" sample from Apple Developer web site and I got the same error after trying to build it. I found that the project has several settings referring to Swift language version after VIM the project file content. So, I resolved this by first setting the "Project > FoodTracker", and also "TARGETS > FoodTracker" and "TARGETS > FoodTrackerTests" the Swift Language Version to 5.0. Hope it helps.

Setting Swift Language Version on Project and ALL Targets

0
On

1) change pod's version on podfile (because library wrote old swift version )

2) "pod install" on terminal

0
On
  1. Check this out:
    1. Click on Project name
    2. Click target
    3. Click on Build setting
    4. At the Swift Language Version: Choose Swift 4

enter image description here

enter image description here

0
On

I came across this issue while developing a Cocoapod. I had an old .swift-version file in my repo that specified Swift 3.0.

Running pod lib lint --verbose led me to this helpful response:

Please remove the .swift-version file which is now deprecated and only use the swift_version attribute within your podspec.

I deleted the file and added spec.swift_version = '5.0' to my podspec file to fix the problem.